2015-12-28 2 views
0

У меня есть простой сценарий публикации сообщения в тему SNS, подписанной очередью SQS, но так или иначе очередь не получает сообщений (т. Е. Не отображается в SQS консоль). Вот коды в Ruby:SQS не получает сообщений, отправленных через SNS

sns = Aws::SNS::Client.new; 
sqs = Aws::SQS::Client.new; 
q1 = sqs.create_queue({queue_name: "queue1”}); 
t1 = sns.create_topic({name: "topic1"}); 
q1_attr = sqs.get_queue_attributes({queue_url: q1.queue_url,attribute_names: ["All"]}); 
s1 = sns.subscribe({topic_arn: t1.topic_arn, protocol: "sqs", endpoint: q1_attr.attributes['QueueArn']}); 
resp = sns.publish({topic_arn: t1.topic_arn, message: "Test message"}); 

Есть что-то не хватает?

+0

Вы не подтвердили подписку –

+0

Фред: какая подписка? Я не вижу никаких –

+0

. После подписания очереди на тему (предпоследняя строка) вам необходимо подтвердить подписку –

ответ

1

Вторая цитата в этой строке:

q1 = sqs.create_queue({queue_name: "queue1”}); 

это 'фантазии' цитата вместо ". Измените его так:

q1 = sqs.create_queue({queue_name: "queue1"}); 
+0

да, вы правы. Я исправил это в своем тесте, но так или иначе попал в сообщение здесь. Так что это не проблема. –

+0

Я решил проблему и сделал сценарий работы! Отсутствует, после подписки на тему, мне нужно установить политику для очереди, чтобы она могла получать сообщения, опубликованные в теме SNS. –

Смежные вопросы