私はAWS SNS/SQS サブスクリプションの手順を何度も実行しており、いくつかの異なるブログや StackOverflow の投稿でさまざまなことを試してきました。しかし、何度SNSにメッセージを公開してSQSからポーリング・受信しようとしても、一向に飛び出してこない。私が見落としているのは、私よりも経験豊富で新鮮な目を持った誰かであることを非常に明白にしていることを願っています.
背景として、SQS と SNS の両方を同じアカウントで作成しました。両方のアクセス ポリシーを設定した後、サブスクリプションを最後に作成します。そして、サブスクリプションを作成するときに、サブスクリプションが確認されたことを示す小さな緑色のチェックマークが表示されるようにします. 空想は何もなく、FIFO キューもありません。可視性タイムアウトを 1 分に設定し、キューの受信メッセージの待機時間も比較的短くしました。私はアカウントに SQS と SNS を 1 つしか持っていないので、間違ったものにサブスクライブしたり、アクセス権を与えたりすることを台無しにすることはできません。
私の SQS アクセス ポリシーでは、次のようになります。
{
"Version": "2012-10-17",
"Id": "allow_sns_access_policy",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "sqs:SendMessage",
"Resource": "arn:aws:sqs:us-east-1:<my_unique_id>:<name_of_my_queue>",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:sns:us-east-1:<my_unique_id>:<name_of_my_topic>"
}
}
}
]
}
私の SNS アクセス ポリシーは次のとおりです。
{
"Version": "2012-10-17",
"Id": "allow_sqs_access_policy",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sqs.amazonaws.com"
},
"Action": "sns:Subscribe",
"Resource": "arn:aws:sqs:us-east-1:<my_unique_id>:<name_of_my_topic>",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:sns:us-east-1:<my_unique_id>:<name_of_my_queue>"
}
}
}
]
}
つづりの間違いを減らすために、必ずarnリソースをコピーして貼り付けます。私は他のことを試しましたが、それらもすべてうまくいきませんでした。これは私にはうまくいくはずですが、うまくいきません。