AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
Namespace: Amazon.SimpleNotificationService
Assembly: AWSSDK.dll
Version: (assembly version)
public virtual CreateTopicResponse CreateTopic( CreateTopicRequest request )
Container for the necessary parameters to execute the CreateTopic service method.
| Exception | Condition |
|---|---|
| AuthorizationErrorException | Indicates that the user has been denied access to the requested resource. |
| InternalErrorException | Indicates an internal service error. |
| InvalidParameterException | Indicates that a request parameter does not comply with the associated constraints. |
| TopicLimitExceededException | Indicates that the customer already owns the maximum allowed number of topics. |
This example shows how to create, subscribe to, and publish a topic.
var snsClient = new AmazonSimpleNotificationServiceClient();
var topicRequest = new CreateTopicRequest
{
Name = "CodingTestResults"
};
var topicResponse = snsClient.CreateTopic(topicRequest);
var topicAttrRequest = new SetTopicAttributesRequest
{
TopicArn = topicResponse.TopicArn,
AttributeName = "DisplayName",
AttributeValue = "Coding Test Results"
};
snsClient.SetTopicAttributes(topicAttrRequest);
snsClient.Subscribe(new SubscribeRequest
{
Endpoint = "johndoe@example.com",
Protocol = "email",
TopicArn = topicResponse.TopicArn
});
// Wait for up to 2 minutes for the user to confirm the subscription.
DateTime latest = DateTime.Now + TimeSpan.FromMinutes(2);
while (DateTime.Now < latest)
{
var subsRequest = new ListSubscriptionsByTopicRequest
{
TopicArn = topicResponse.TopicArn
};
var subs = snsClient.ListSubscriptionsByTopic(subsRequest).Subscriptions;
var sub = subs[0];
if (!string.Equals(sub.SubscriptionArn,
"PendingConfirmation", StringComparison.Ordinal))
{
break;
}
// Wait 15 seconds before trying again.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(15));
}
snsClient.Publish(new PublishRequest
{
Subject = "Coding Test Results for " +
DateTime.Today.ToShortDateString(),
Message = "All of today's coding tests passed.",
TopicArn = topicResponse.TopicArn
});
.NET Framework:
Supported in: 4.5, 4.0, 3.5