別の AWS アカウントの Amazon SQS キューの「削除済み」Amazon SNS トピックサブスクリプションを再作成する方法を教えてください。

最終更新日: 2020 年 3 月 2 日

1 つの AWS アカウントの Amazon Simple Queue Service (Amazon SQS) キューが、別のアカウントの Amazon Simple Notification Service (Amazon SNS) トピックにサブスクライブされました。クロスアカウントサブスクリプションを削除し、ステータスが削除済みになりました。そのサブスクリプションを再作成するにはどうすればよいですか ?

簡単な説明

Amazon SNS Subscribe API を呼び出すと、使用する AWS アカウントがサブスクリプションの所有者になります。サブスクリプションを所有していない別のアカウントから Amazon SNS Unsubscribe API を呼び出してサブスクリプションを削除すると、サブスクリプションは 72 時間削除済み状態になります。

その間、サブスクリプション所有者アカウントは同じエンドポイントをそれぞれの SNS トピックに再サブスクライブすることはできません。Amazon SNS は 72 時間後に「削除済み」のサブスクリプションをクリアし、以前と同じように再びサブスクライブできます。

注: 同じ AWS アカウントから Subscribe および Unsubscribe API コールを実行することをお勧めします。

解決方法

注: この解決法は HTTP/S エンドポイントサブスクライバーにも適用されます。ただし、AWS Lambda 関数のサブスクライバーには適用されません。

72 時間、待たない場合は、次のいずれかを実行してサブスクリプションを再作成します。

  • サブスクリプションを削除した後に SQS キューに送信された UnsubscribeConfirmation メッセージで、 SubscribeURL を見つけます。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=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736"