AWSでSQSキューとSNSトピックの間にサブスクリプションを作成する方法

SNSでSQSをサブスクライブする背後にある考え方は、SNSからSQSにメッセージを送信することです。 生のメッセージとSNSメッセージに含まれる他のメッセージ属性の両方を送信できます。 この記事を進める前に、アカウントにSNSとSQSがあることを前提としています。 SNSとSQSの作成は、この記事の範囲外です。

SNSは複数のSQSキューをサブスクライブすることができ、SNSはすべてのサブスクリプションに同じメッセージを公開します。

AWSの公式ページにアクセスして、 SNS そして SQS

前提条件

  1. AWSアカウント(作成する お持ちでない場合)。
  2. SNSトピック(SNSトピックの作成方法については、ここをクリックしてください)
  3. SQSトピック

何をしたらいいでしょう?

  1. AWSにログインします。
  2. SNSを確認してください。
  3. SQSを確認し、そのアクセスポリシーを変更します。
  4. SNSからSQSへのサブスクリプションを作成します。
  5. SQSでメッセージをポーリングし、SNSからメッセージを送信します。
  6. サブスクリプションを削除します。

AWSにログインします

AWSアカウントにログインするには、 ここに 資格情報を入力します

ログインページ

アカウントに正常にログインすると、次のようなメインのAWS管理コンソールが表示されます。

AWSメインコンソール

SNSをチェック

画面上部の検索ボックスでSNSを検索します。

SNSを検索

SNSダッシュボードは次のように表示されます。 左側のパネルの「トピック」をクリックします。

SNSダッシュボード

ここでは、選択したリージョンの下のアカウントにある既存のSNSトピックが表示されます。 「sns-test」SNSトピックを使用します。 目的のトピックをクリックして、詳細を確認してください。

SNSトピック

ここでは、トピックにはサブスクリプションがありません。

SNSトピックの詳細

SQSを確認し、アクセスポリシーを変更します

画面上部の検索ボックスでSQSを検索します。

SQSを検索

AWSアカウントの選択したリージョンで利用可能なSQSキューのリストを含むSQSのメインダッシュボードが次のように表示されます。 ここでは、「sqs-test」キューを使用します。 SQSトピックをクリックして詳細を確認し、アクセスポリシーを変更します。

SQSリスト

[アクセスポリシー]タブに移動してデフォルト/既存のポリシーを変更し、[編集]ボタンをクリックします。

SQSアクセスポリシーの詳細

アクセスポリシーで、潜在的なアクセスの問題を回避し、変更を保存するために、プリンシパルブロックの下のアカウントarnを*に置き換えます。 これは、本番アカウントでは推奨されません。

SQSポリシーを編集する

SNSからSQSへのサブスクリプションを作成する

SNSトピックに移動し、[サブスクリプションの作成]ボタンをクリックしてサブスクリプションを作成します。

SNSトピックの概要

ここで、プロトコルをAmazon SQSに変更し、エンドポイントフィールドにSQSトピックのARNを指定します。[生のメッセージ配信を有効にする]チェックボックスをオンにして、[サブスクリプションの作成]ボタンをクリックします。

SQSサブスクリプションを作成する

ここで、SNSトピックに移動すると、サブスクリプションが正常に作成され、ステータスが確認されたことがわかります。

SNSでのSQSサブスクリプション

SQSでメッセージをポーリングし、SNSからメッセージを送信します。

SNSトピックから送信されたときにメッセージがSQSに到着するかどうかをテストできます。 これをテストするには、SQSトピックに移動し、[メッセージの送受信]ボタンをクリックします。

SQSの概要

ここで「メッセージのプール」ボタンをクリックします。

SQSポーリングメッセージ

「メッセージのポーリング」ボタンをクリックしたらすぐに、SNSトピックに移動し、「メッセージの公開」ボタンをクリックします。

SNSがメッセージを公開する

ここで、メッセージに件名を追加し、「各配信プロトコルのカスタムペイロード」オプションを選択します。

SNSメッセージ詳細

少し下にスクロールして、[メッセージの公開]ボタンをクリックします。

SNSがメッセージを公開

ここで、SQSページに戻ると、メッセージがSQSによって受信されたことがわかります。

メッセージIDをクリックして、SNSから送信されたものを確認します。

SQSで受信したメッセージ

本文セクションでは、SNSによって送信されたメッセージがSQSによって正常に受信されたことがわかります。

メッセージの詳細

サブスクリプションを削除します

サブスクリプションが不要になった場合は、SNSトピック自体から簡単に削除できます。 サブスクリプションを選択し、「削除」ボタンをクリックします。

SQSサブスクリプションエンドポイントを削除します

削除を確認するためのポップアップ画面が表示されます。 サブスクリプションが削除されると、復元することはできません。 本番アカウントで削除操作を実行するときは注意してください。

削除の確認

結論

この記事では、SNSトピックからSQSトピックへのサブスクリプションを作成する手順について説明しました。 SQSでポーリングされたSNSからサンプルメッセージを送信しました。 また、SNSからサブスクリプションを簡単に削除できることも確認しました。

Hope this helps!

Source link