internal void setupTopicAndQueue()
{
var guidStr = Guid.NewGuid().ToString("N");
this.topicArn = this.snsClient.CreateTopic(new CreateTopicRequest() { Name = "GlacierDownload-" + guidStr }).TopicArn;
this.queueUrl = this.sqsClient.CreateQueue(new CreateQueueRequest() { QueueName = "GlacierDownload-" + guidStr }).QueueUrl;
this.queueArn = this.sqsClient.GetQueueAttributes(new GetQueueAttributesRequest() { QueueUrl = this.queueUrl, AttributeNames = new List<string> { SQSConstants.ATTRIBUTE_QUEUE_ARN } }).Attributes[SQSConstants.ATTRIBUTE_QUEUE_ARN];
this.snsClient.Subscribe(new SubscribeRequest()
{
Endpoint = this.queueArn,
Protocol = "sqs",
TopicArn = this.topicArn
});
var policy = SQS_POLICY.Replace("{QuereArn}", this.queueArn).Replace("{TopicArn}", this.topicArn);
var setQueueAttributesRequest = new SetQueueAttributesRequest()
{
QueueUrl = this.queueUrl
};
setQueueAttributesRequest.Attributes.Add("Policy", policy);
this.sqsClient.SetQueueAttributes(setQueueAttributesRequest);
}