[AWS]
このページのヒントとなったスライドは以下
API Gateway
AWSやインターネット上のサービスに対してREST APIを提供するサービス
- Amazon API Gateway
- Amazon API Gateway は全面的に管理されたサービスで、開発者はこれを利用することにより、どのようなスケールであっても、 簡単に API の作成、配布、保守、監視、保護が行えます。AWS マネジメントコンソールで数回クリックするだけで、Amazon Elastic Compute Cloud (EC2) で稼働中のワークロードや、AWS Lambda で稼働中のコード、または任意のウェブアプリケーションといった、バックエンドからのデータ、ビジネスロジック、機能にアクセスする、アプリケーションの玄関として振る舞う API を作成できます。Amazon API Gateway では、最大で数十万の同時 API 呼び出しを受け付け、処理することが可能です。これにはトラフィック管理、認証とアクセス管理、モニタリング、API バージョン管理が含まれます。Amazon API Gateway では最低利用料や初期費用はかかりません。受信した API 呼び出しと、送出したデータ量に対してのみ料金が発生します。
- Amazon API Gateway とは?
- API Gateway で作成する API は、一連のリソースとメソッドで構成されます。リソースは、API を使用してリソースパスを介してアクセスすることのできる論理エンティティです。リソースには、適切な HTTP 動詞 (GET、POST、DELETE など) によって定義される 1 つ以上のオペレーションを含めることができます。リソースパスとオペレーションの組み合わせによって API でメソッドが識別されます。各メソッドは、API のユーザーによって送られる REST API リクエストに対応しており、該当するレスポンスがユーザーに返されます。API Gateway はメソッドをバックエンドと統合します。そのためには、メソッドリクエストを、バックエンドが受け取り可能な統合リクエストにマッピングした後、統合レスポンスを、バックエンドからユーザーに返されるメソッドレスポンスにマッピングします。API 開発者は、メソッドと統合を双方向にマッピングする方法を設定できます。そのためには、使用するパラメーターを定義し、特定のデータモデルのペイロードを変換するためのマッピングテンプレートを指定します。
- APIをプログラミングレス、メンテナンスなしで作成できるのでとてもよさそう
- ただし、UIからそれを設定するのが面倒
そこで…
- Amazon API Gateway Swagger ImporterでAPIを一発で定義する
- AWSのCLIツールを使ってSwaggerの定義を読み込みAPI Gatewayに展開する
- 疑問
- API Gatewayの裏方、API呼んだ後の処理はどこでやるのか
- API Gateway によってメソッドがバックエンドと統合される方法を設定する
- API が Lambda 関数と通信する場合は、[Lambda Function] を選択します。
- API が HTTP エンドポイントと通信する場合は、[HTTP Proxy] を選択します。
- API が AWS サービスと直接通信する場合は、[Show Advanced]、[AWS Service Proxy] の順に選択します。
- API が最終版ではないものの、テスト用に API Gateway から API 応答を生成して関連チームのブロックを解除する場合は、[Mock Integration] を選択します。このオプションを選択する場合は、このトピックの残りの手順をスキップし、「メソッドのモック統合を設定する」を参照してください。
AWS Lambda
- 【AWS発表】AWS Lambdaのアップデート、イベントに応じてJavaコードを実行
- JavaでLambdaファンクションを書くことができる
結論
- アーキテクチャ例
- API Gateway + Lambda + DynamoDB !!
- API Gatewayの作成過程でSwaggerのドキュメントはできている
中身はAPI Gatewayの送り先をLambdaで定義、Lambda側ではJavaコードを設定、JavaコードはDynamoDBを見に行く