stackoverflow.com/questions/47020436/...

ел код ниже наhttps://forums.aws.amazon.com/thread.jspa?threadID=53629:

AmazonSimpleNotificationService sns = AWSClientFactory.CreateAmazonSNSClient(key, secret);

PublishRequest req = new PublishRequest();
req.WithMessage("This is my test message");
req.WithSubject("The Test Subject");
req.WithTopicArn(topicArn);

PublishResponse result = sns.Publish(req);

Но работает ли он в .NET Core? Если да, то как и для чего используются заявления?

Я использовал эту установку Nuget:

  Install-Package AWSSDK.SimpleNotificationService -Version 3.3.0.23

Методы совершенно разные? Просто осматривая Intellisense, я обнаружил:

  var req = new AmazonSimpleNotificationServiceRequest();
  var client = new AmazonSimpleNotificationServiceClient();

но требуется не показывает никаких свойств.

Я пробовал искать здесь:https://docs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html но он говорит: «Сервис в настоящее время недоступен. Пожалуйста, повторите попытку через некоторое время». (так что да, я попробую позже, но не уверен, что он будет иметь то, что я хочу в любом случае).

--- Обновление 10/30 - это единственный метод публикации класса AmazonSimpleNotificationServiceRequest ()

--- Обновление 2 от 30.10 - нашел этот пост:Отправьте SMS с помощью AWS SNS - .Net Core

Создан новый вопрос для кода, который я пытаюсь, но он не работает:Как вызвать SNS PublishAsync из лямбда-функции?

 NealWalters30 окт. 2017 г., 16:24
Хорошо, я видел этот пример, но это как перечислять темы и управлять SNS. Мне просто нужно отправить сообщение. Я не могу найти пример PublishRequest на 3.0 SDK. Так нужно ли его реконструировать из объектной модели, или он есть - а я просто не могу его найти?
 NealWalters30 окт. 2017 г., 04:57
Спасибо, я пытался получить доступ к документу наdocs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html но он не будет выполнять поиск, так что спасибо за ссылку. Я, наверное, попробую в понедельник и отправлю сюда.
 Mark B29 окт. 2017 г., 16:57
Я думаю, что пример кода для более старой версии SDK. Вот обновленный пример кода, показывающий использование SNS в .NET:docs.aws.amazon.com/sdk-for-net/v3/developer-guide/... Официальные документы SDK будут вашим лучшим выбором для выяснения этого материала.
 NealWalters30 окт. 2017 г., 16:37
Тогда есть эта страница:docs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html (нажмите на PublishRequest слева), но относится ли это к .NET Core?
 Mark B30 окт. 2017 г., 16:38
Этот пример поможет вам начать создаватьAmazonSimpleNotificationServiceClient экземпляр, и он показываетusing заявления вам понадобятся. После этого становится очевидным, если вы посмотрите документацию SDK для клиента здесь:docs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html что вам нужно будет позвонитьAmazonSimpleNotificationServiceClient.publish() метод.

Ответы на вопрос(2)

Решение Вопроса

потому что это то, что поддерживает основной HTTP-клиент в .NET Core. Ваш пример с операциями WithXXX взят из более старой версии SDK V2, а не текущей модульной версии V3.

Единственное отличие, которое вы должны сделать для V3 при использовании .NET Core, это использовать асинхронные операции. Например, вот очень простая консоль

using System;

using Amazon.SimpleNotificationService;
using Amazon.SimpleNotificationService.Model;
using System.Threading.Tasks;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.USEast2);
            SendMessage(client).Wait();
        }

        static async Task SendMessage(IAmazonSimpleNotificationService snsClient)
        {
            var request = new PublishRequest
            {
                TopicArn = "INSERT TOPIC ARN",
                Message = "Test Message"
            };

            await snsClient.PublishAsync(request);
        }
    }
}
 NealWalters05 нояб. 2017 г., 22:53
Прекрасно работает в программе .NET Core Console (после установки учетных данных), но выдает ошибку .MoveNext () в Lambda:stackoverflow.com/questions/47020436/...
 NealWalters31 окт. 2017 г., 18:28
Я знаю, что мне нужно посмотреть видео по команде await (я старая школа). Если асинхронный метод должен возвращать только объект «Задача», как я могу вернуть ответ основной процедуре. На SNS не должно быть большого отклика, но можно ли это сделать?
 NealWalters31 окт. 2017 г., 18:09
Спасибо - я нашел асинхронный ответ, а затем разместил этот отдельный вопрос, потому что этот вопрос не по теме. Скоро попробую!stackoverflow.com/questions/47020436/...

если это работает и какие другие типы примеров вы хотели бы. Я хотел бы улучшить руководство разработчика .NET,https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html.

using System;
using Amazon.SimpleNotificationService;
using Amazon.SimpleNotificationService.Model;

namespace SNSExample
{
    class Program
    {
        static async System.Threading.Tasks.Task SNSAsync()
        {
            try
            {
                AmazonSimpleNotificationServiceClient client = new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.USWest2);

                // Create a topic
                CreateTopicRequest createTopicReq = new CreateTopicRequest("New-Topic-Name");
                CreateTopicResponse createTopicRes = await client.CreateTopicAsync(createTopicReq);
                Console.WriteLine("Topic ARN: {0}", createTopicRes.TopicArn);

                //subscribe to an SNS topic
                SubscribeRequest subscribeRequest = new SubscribeRequest(createTopicRes.TopicArn, "email", "[email protected]");
                SubscribeResponse subscribeResponse = await client.SubscribeAsync(subscribeRequest);
                Console.WriteLine("Subscribe RequestId: {0}", subscribeResponse.ResponseMetadata.RequestId);
                Console.WriteLine("Check your email and confirm subscription.");

                //publish to an SNS topic
                PublishRequest publishRequest = new PublishRequest(createTopicRes.TopicArn, "My text published to SNS topic with email endpoint");
                PublishResponse publishResponse = await client.PublishAsync(publishRequest);
                Console.WriteLine("Publish MessageId: {0}", publishResponse.MessageId);

                //delete an SNS topic
                DeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(createTopicRes.TopicArn);
                DeleteTopicResponse deleteTopicResponse = await client.DeleteTopicAsync(deleteTopicRequest);
                Console.WriteLine("DeleteTopic RequestId: {0}", deleteTopicResponse.ResponseMetadata.RequestId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("\n\n{0}", ex.Message);
            }
        }

        static void Main(string[] args)
        {
            SNSAsync().Wait();
        }
    }
}
 NealWalters05 нояб. 2017 г., 22:54
Прекрасно работает в программе .NET Core Console (после установки учетных данных), но выдает ошибку .MoveNext () в Lambda:stackoverflow.com/questions/47020436/...
 NealWalters31 окт. 2017 г., 18:29
В конце концов я попробовал что-то похожее на выше. Но в лямбде, может ли основная функция возвращать «Task»? Я отправил это позже вчера:stackoverflow.com/questions/47020436/..., И спасибо, выше определенно должен быть документ API. Кроме того, у документа возникают проблемы с функцией поиска, когда вы вводите запрос поиска, он возвращает: «Сервис в настоящее время недоступен. Пожалуйста, повторите попытку через некоторое время».

Ваш ответ на вопрос