翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon API Gateway を Amazon SQS と統合して非同期 REST APIs を処理する
Natalia Colantonio Favero と Gustavo Martim、Amazon Web Services
概要
REST APIsデプロイする場合、クライアントアプリケーションが発行できるメッセージキューを公開する必要がある場合があります。例えば、サードパーティー APIs のレイテンシーやレスポンスの遅延に問題がある場合や、データベースクエリの応答時間を回避したり、多数の同時 APIs がある場合にサーバーをスケーリングしないようにしたい場合があります。このようなシナリオでは、キューに発行するクライアントアプリケーションは、API がデータを受信したことを知るだけで済みます。データの受信後に何が起こるかを知る必要はありません。
このパターンは、Amazon API Gateway
前提条件と制限
アーキテクチャ

この図は、これらのステップを示しています。
- Postman、別の API、またはその他のテクノロジーなどのツールを使用して、POST REST API エンドポイントをリクエストします。 
- API Gateway は、リクエストの本文で受信されるメッセージをキューに投稿します。 
- Amazon SQS はメッセージを受信し、成功コードまたは失敗コードを含む回答を API Gateway に送信します。 
ツール
- 「Amazon API Gateway」は、任意のスケールで REST、HTTP、WebSocket API を作成、公開、維持、監視、保護する上で役立ちます。 
- AWS Identity and Access Management (IAM) は、誰が認証され、誰に使用を許可するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。 
- 「Amazon Simple Queue Service (Amazon SQS) 」は、安全で耐久性があり、配信ソフトウェアシステムとコンポーネントを統合および分離できる利用可能なホスト型キューを提供します。 
エピック
| タスク | 説明 | 必要なスキル | 
|---|---|---|
| キューを作成する。 | REST API からメッセージを受信する SQS キューを作成するには: 
 | アプリ開発者 | 
| タスク | 説明 | 必要なスキル | 
|---|---|---|
| IAM ロールを作成します。 | この IAM ロールは、API Gateway リソースに Amazon SQS へのフルアクセスを付与します。 
 | アプリ開発者、AWS 管理者 | 
| タスク | 説明 | 必要なスキル | 
|---|---|---|
| REST API を作成します。 | これは、HTTP リクエストが送信される REST API です。 
 | アプリ開発者 | 
| API Gateway を Amazon SQS に接続します。 | このステップにより、HTTP リクエストの本文内から Amazon SQS にメッセージが流れるようになります。 
 | アプリ開発者 | 
| タスク | 説明 | 必要なスキル | 
|---|---|---|
| REST API をテストします。 | テストを実行して、設定が欠落していないことを確認します。 
 | アプリ開発者 | 
| API 統合を変更して、リクエストを Amazon SQS に適切に転送します。 | 設定を完了して、統合エラーを修正します。 
 | アプリ開発者 | 
| Amazon SQS でメッセージをテストおよび検証します。 | テストを実行して、テストが正常に完了したことを確認します。 
 | アプリ開発者 | 
| 特殊文字を使用して API Gateway をテストします。 | メッセージで受け入れられない特殊文字 (& など) を含むテストを実行します。 
 これは、メッセージ本文で特殊文字がデフォルトでサポートされていないためです。次のステップでは、特殊文字をサポートするように API Gateway を設定します。コンテンツタイプの変換の詳細については、API Gateway ドキュメントを参照してください。 | アプリ開発者 | 
| 特殊文字をサポートするように API 設定を変更します。 | メッセージで特殊文字を受け入れるように設定を調整します。 
 新しいメッセージには特殊文字が含まれている必要があります。 | アプリ開発者 | 
| タスク | 説明 | 必要なスキル | 
|---|---|---|
| API をデプロイします。 | 
 REST API をデプロイするには: 
 | アプリ開発者 | 
| 外部ツールを使用してテストします。 | 外部ツールを使用してテストを実行し、メッセージが正常に受信されたことを確認します。 
 | アプリ開発者 | 
| タスク | 説明 | 必要なスキル | 
|---|---|---|
| API を削除します。 | API Gateway コンソール | アプリ開発者 | 
| IAM ロールを削除します。 | IAM コンソール | アプリ開発者 | 
| SQS キューを削除します。 | Amazon SQS コンソール | アプリ開発者 | 
関連リソース
- SQS-SendMessage (API Gateway ドキュメント) 
- API Gateway でのコンテンツタイプの変換 (API Gateway ドキュメント) 
- $util 変数 (API Gateway ドキュメント) 
- API Gateway REST API を Amazon SQS と統合して一般的なエラーを解決するにはどうすればよいですか? - (AWS re:Post 記事)