Amazon MWSの「サブスクリプションAPI」を利用することで、特定の情報が更新されることで自動的に配信される「Amazon MWS プッシュ通知」の受信(サブスクライブ)が可能です。
今回は、Amazon Simple Queue Service(Amazon SQS)のキューに配信されたプッシュ通知をアプリケーションから取り込む手順についてご紹介します。
Amazon MWSプッシュ通知
現在サブスクライブできるプッシュ通知は以下の3種類ですが、今後も新たなプッシュ通知が追加されることが予想されます。
通知タイプ | 通知内容 |
---|---|
AnyOfferChangedNotification | 出品者が出品している購入可能な状態の商品について、コンディション別の価格の上位20の出品情報に変更があるたびに送信されます。 |
FulfillmentOrderStatusNotification | FBAマルチチャネルサービス(MCF)の出荷注文のステータスが変更されたときに送信されます。 |
FeePromotionNotification | 期間限定の手数料のプロモーション(割引)が適用された時に送信されます。 |
※サブスクリプションAPIおよびAnyOfferChanged通知については、『サブスクリプションAPIの特徴について』についてもご参照ください。
Amazon SQSのキューの作成とプッシュ通知のサブスクライブ
プッシュ通知の配信先にはAWS(Amazon Web Services)のAmazon SQSのキューが必要となります。
AWSの登録、Amazon SQSのキュー作成、MWSのサブスクリプションAPIを使った受信(サブスクライブ)の設定について詳しくは、過去のブログ記事『サブスクリプションAPI 設定方法について』をご参照ください。
尚、現在のAmazon SQSでは「スタンダード キュー」と「FIFOキュー」の2種類のキューが選択できますが、サブスクリプションAPIで指定できるキューは「スタンダードキュー」のみとなっています。
Amazon SQSからのプッシュ通知の取得
Amazon SQS のキューで受信したメッセージ(プッシュ通知)は、Amazon SQS APIを使用してキューをポーリングすることでアプリケーションに取り込むことが可能です。
Amazon Simple Queue Service API Reference
チュートリアル: Amazon SQS キューからのメッセージの受信および削除
キューをポーリングする代わりに、AWS Lambdaを利用するとキューへの新しいメッセージの受信をトリガーとしてLambda関数を実行してメッセージを処理することも可能です。
AWS Lambda がサポートするイベントソースに Amazon Simple Queue Service を追加
チュートリアル: AWS Lambda 関数をトリガーするように Amazon SQS キューへの着信メッセージを設定する
Amazon SQS APIを利用するためには、Amazon MWSの認証情報とは別に、AWS アカウントと AWS 認証情報が必要となります。アクセスキーの作成とその権限の管理は、AWSのIdentity and Access Management (IAM) コンソールから行えます。
AWSアクセスキーの取得
AWSアカウントにアクセスするIAMユーザーの作成とアクセスキーの取得方法については、アクセスキーの作成をご参照ください。
また、セキュリティ確保のために「AWS アクセスキーを管理するためのベストプラクティス」や「IAM のベストプラクティス」も参照してください。
Amazon SQSキューへのアクセス許可
作成されたIAMユーザーにAmazon SQSキューへのアクセス権を付与するためには、「IAM ポリシー」を利用する方法と「 Amazon SQS ポリシー」を利用する方法があります。
IAMコンソールからのIAMポリシー設定
IAMコンソール では、以下のようにIAMユーザーやグループにAmazon SQSへのアクセスを可能にする管理ポリシー(AmazonSQSReadOnlyAccess やAmazonSQSFullAccess )を設定可能です。
SQSコンソールからのAmazon SQSポリシー設定
SQS Management コンソールでは、プッシュ通知の配信先のキューへのアクセス許可が可能です。以下のようにプリンシパルにIAMユーザーのARNを指定し、許可するアクション(例:ReceiveMessageとDeleteMessage)の設定が可能です。
Amazon SQS でのアイデンティティベース (IAM) のポリシーの使用
Amazon SQS Access Policy Language を使用したカスタムポリシーの使用
アプリケーションからのAmazon SQSへのアクセス
適切にアクセス権が付与されたIAMユーザーのAWSアクセスキーが取得できたら、Amazon SQS APIを利用してメッセージ(プッシュ通知)にアクセスが可能となります。
AWS SDKでは、MWSのクライアントライブラリでサポートされている各言語のサンプルコードも提供されています。
AWS SDK for Javaを利用する場合、開発者ガイドの「開始方法」を参照してSDKのインストールやAWSアクセスキーのセットアップを行い、「AWS SDK for Java を使用した Amazon SQS の例」を参考にAmazon SQSメッセージ(MWSプッシュ通知)の受信や削除などがお試しください。
「Amazon SQS開発者ガイド」では「Amazon SQS コストの削減」など様々な「Amazon SQSのベストプラクティス」も紹介されていますので是非ご参照ください。
以上、開発の参考にして頂けますと幸いです。