2017-01-20 12 views
0

я должен делать что-то ужасно неправильно, но когда я пытаюсь подписаться на тему SNS с помощью AWS CLI, например, так:Почему подписка с AWS CLI на тему SNS порождает неожиданную полезную нагрузку?

aws sns subscribe --topic-arn <valid-arn> --protocol http --endpoint-url <valid, accessible URL>

я получаю совершенно неожиданный полезный груз POST:

POST /api/aws/sns HTTP/1.1 
Host: <censored> 
Accept-Encoding: identity 
User-Agent: aws-cli/1.11.38 Python/3.6.0 Linux/4.8.13-1-ARCH botocore/1.5.1 
X-Amz-Date: 20170120T140758Z 
Authorization: <censored> 
Content-Length: 127 
Content-Type: application/x-www-form-urlencoded 

Action=Subscribe&Version=2010-03-31&TopicArn=censored&Protocol=http[!http] 

Когда согласно the documentation:

Ваш код должен прочитать HTTP-заголовки запросов на HTTP POST, что Amazon SNS отправляет вашу конечную точку. Ваш код должен искать поле заголовка x-amz-sns-message-type, в котором указывается тип сообщения , который отправил вам адрес Amazon SNS.

Таким образом, это должен быть документ JSON с по крайней мере заголовком x-amz-sns-message-type.

Кроме того, запрос POST проверки выполняется с моего хоста на конечную точку URL, что кажется странным.

Есть ли принципиальная разница между подпиской на тему SNS из AWS CLI и веб-консолью?

ответ

2

Вы должны использовать --notification-endpoint не --endpoint-url. Параметр endpoint-url используется, чтобы сообщить AWSCLI, куда отправить фактический запрос subscribe. Это то, что вы видите.

aws sns subscribe --topic-arn <valid-arn> --protocol http --notification-endpoint <valid, accessible URL> 
+0

Ух, спасибо! Я слишком долго смотрел на него ... –

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

  • Нет связанных вопросов^_^