別の AWS アカウントの Amazon SQS キューの「削除済み」Amazon SNS トピックサブスクリプションを再作成するにはどうすればいいでしょうか?

所要時間1分
0

別の AWS アカウントの Amazon SQS キューの削除済み Amazon SNS トピックサブスクリプションを再作成したいと考えています。

サブスクリプションを所有していないアカウントから Amazon SNS Unsubscribe API を呼び出すと、サブスクリプションのステータスは 72 時間にわたり削除済みになります。SNS トピックサブスクリプションのステータスが削除済みの場合、サブスクリプションを所有するアカウントでは、同じエンドポイントをトピックに再サブスクライブすることができません。

72 時間が経過したら、Amazon SNS は削除済みサブスクリプションをクリアし、サブスクリプションを所有するアカウントで同じエンドポイントをトピックに再サブスクライブできるようになります。

再サブスクライブするために 72 時間待ちたくない場合は、次のいずれかを実行して手動でサブスクリプションを再作成できます。

注: ベストプラクティスとして、同じ AWS アカウントから Subscribe API コールと Unsubscribe API コールを実行するのがベストプラクティスです。Subscribe API を呼び出す場合、呼び出しに使用する AWS アカウントがサブスクリプションの所有者になります。

解決策

重要: 次の手順は、HTTP および HTTPS エンドポイントのサブスクライバーに適用されます。AWS Lambda 関数のサブスクライバーには適用されません。

受信した UnsubscribeConfirmation メッセージの SubscribeURL に HTTP GET メソッドリクエストを送信する

  1. サブスクリプションを削除した後に SQS キューに送信された UnsubscribeConfirmation メッセージで、SubscribeURL を見つけます。次に、URL をコピーしてテキストドキュメントに貼り付けます。

  2. HTTP GET メソッドリクエストSubscribeURL に送信します。

    HTTP GET メソッドリクエストの例

    curl -X GET "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=<token>"

SNS トピックを所有する AWS アカウントから Amazon SNS Subscribe API を呼び出してサブスクリプションを確認する

  1. SNS トピックを所有する AWS アカウントから Amazon SNS サブスクライブ API を呼び出します
  2. SQS キューからメッセージを読み取るアクセス許可を持つ AWS ユーザーに、サブスクリプションを確認してもらいます。

新しい Amazon SNS トピックを作成して現在のトピックと置き換えて、新しいトピックにサブスクライブする

  1. 新しい SNS トピックを作成して、現在のトピックを置き換えます。
  2. SQS キューを新しいトピックにサブスクライブします

関連情報

Deleting an Amazon SNS subscription and topic

Sending Amazon SNS messages to an Amazon SQS queue in a different account

Fanout to Amazon SQS queues

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ