Подтвердить что ты не робот

Amazon Simple Notification Service AWSSDK С# - S.O.S

Я пытаюсь опубликовать с Amazon AWSSDK для С# и Simple Notification Service.

Нет образцов, которые поставляются с SDK, и нет образцов в Интернете, которые я мог найти после 2 часов Googling. Я придумал это, но он бросает исключение, которое не дает больше информации, чем одна строка, "TopicARN" - никакого внутреннего исключения - nuffin!
Если кто-то успешно отправил сообщение с SNS через С#, используя AWSSDK, мне бы хотелось увидеть даже самый элементарный рабочий пример. Я использую последнюю версию SDK 1.5x

Здесь код:

string resourceName = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:StackOverFlowStub";
AmazonSimpleNotificationServiceClient snsclient = new AmazonSimpleNotificationServiceClient(accesskey,secretkey);
AddPermissionRequest permissionRequest = new AddPermissionRequest()
                .WithActionNames("Publish")
                .WithActionNames(accesskey)
                .WithActionNames("PrincipleAllowControl")
                .WithActionNames(resourceName);
snsclient.AddPermission(permissionRequest);

PublishRequest pr = new PublishRequest();
pr.WithMessage("Test Msg");
pr.WithTopicArn(resourceName);
pr.WithSubject("Test Subject");
snsclient.Publish(pr);
4b9b3361

Ответ 1

Вот пример, который создает тему, устанавливает отображаемое имя темы, подписывается на адрес электронной почты в теме, отправляет сообщение и удаляет тему. Обратите внимание, что есть два места, где вы должны подождать или проверить электронную почту, прежде чем продолжить. Client - это клиентский экземпляр, topicName - произвольное имя темы.

// Create topic
string topicArn = client.CreateTopic(new CreateTopicRequest
{
    Name = topicName
}).CreateTopicResult.TopicArn;

// Set display name to a friendly value
client.SetTopicAttributes(new SetTopicAttributesRequest
{
    TopicArn = topicArn,
    AttributeName = "DisplayName",
    AttributeValue = "StackOverflow Sample Notifications"
});

// Subscribe an endpoint - in this case, an email address
client.Subscribe(new SubscribeRequest
{
    TopicArn = topicArn,
    Protocol = "email",
    Endpoint = "[email protected]"
});

// When using email, recipient must confirm subscription
Console.WriteLine("Please check your email and press enter when you are subscribed...");
Console.ReadLine();

// Publish message
client.Publish(new PublishRequest
{
    Subject = "Test",
    Message = "Testing testing 1 2 3",
    TopicArn = topicArn
});

// Verify email receieved
Console.WriteLine("Please check your email and press enter when you receive the message...");
Console.ReadLine();

// Delete topic
client.DeleteTopic(new DeleteTopicRequest
{
    TopicArn = topicArn
});