API Gateway の使用を開始する
この入門エクササイズでは、サーバーレス API を作成します。サーバーレス API を使用すると、サーバーのプロビジョニングや管理に時間をとられる事なく、アプリケーションに集中することができます。このエクササイズの所要時間は 20 分未満で、AWS の無料利用枠内
はじめに、AWS Lambda コンソールを使用して Lambda 関数を作成します。次に、API Gateway コンソールを使用して HTTP API を作成します。次に、API を呼び出します。
注記
この演習では、HTTP API を使用します。API Gateway は、より多くの機能を含む REST API もサポートしています。REST API を使用するチュートリアルについては、「REST API コンソールの使用を開始する」を参照してください。
HTTP API と REST API の違いの詳細については、「REST API と HTTP API のどちらかを選択する」を参照してください。
HTTP API を呼び出すと、API Gateway はリクエストを Lambda 関数にルーティングします。Lambda は Lambda 関数を実行し、API Gateway に応答を返します。それから API Gateway はレスポンスを返します。
このエクササイズを完了するには、AWS アカウントと、コンソールへのアクセス権がある AWS Identity and Access Management ユーザーが必要です。詳細については、「API Gateway を使用するようにセットアップする」を参照してください。
ステップ 1: Lambda 関数を作成する
API のバックエンドには Lambda 関数を使用します。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。
この例では、Lambda コンソールから既定の Node.js 関数を使用します。
Lambda 関数を作成するには
Lambda コンソール (https://console.aws.amazon.com/lambda/
) にサインインします。 -
[関数の作成] を選択します。
-
[関数名] に「
my-function
」と入力します。 他のすべてのオプションについては、デフォルトの設定を使用します。
-
[関数の作成] を選択します。
この例の関数は、クライアントへの応答200
とテキストHello from
Lambda!
を返します 。
関数の応答が API Gateway が必要とする形式と一致している限り、Lambda 関数を変更できます。
デフォルトの Lambda 関数コードは、次のようになります。
export const handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };
ステップ 2: HTTP API を作成する
次に、HTTP API を作成します。API Gateway は、REST API と WebSocket API もサポートしますが、このエクササイズでは HTTP API が最適です。REST API は HTTP API よりも多くの機能をサポートしますが、この演習では、これらの機能は必要ありません。HTTP API は低価格で提供できるように最小限の機能で設計されています。WebSocket API は、全二重通信のためにクライアントとの持続的接続を維持します。この例では必須ではありません。
HTTP API は、Lambda 関数の HTTP エンドポイントを提供します。API Gateway は Lambda 関数にリクエストをルーティングし、関数の応答をクライアントに返します。
HTTP API を作成するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
次のいずれかを行ってください。
-
最初の API を作成するには、[ HTTP API ] で [ 構築 ] を選択します。
-
以前に API を作成した場合は、[ API の作成 ] を選択し、[ HTTP API ] の [構築] を選択します。
-
-
[ 統合 ] で、[ 統合の追加 ] を選択します。
-
Lambda を選択します。
-
[Lambda 関数] に「
my-function
」と入力します。 -
[API 名] に「
my-http-api
」と入力します。 -
[Next (次へ)] を選択します。
-
API Gateway が作成したルートを確認し、[ 次へ ] を選択します。
-
API Gateway によって作成されるステージを確認し 、[ Next ] を選択します。
-
[Create] を選択します。
これで、クライアントからのリクエストを受信できる Lambda 統合で HTTP API を作成しました。
ステップ 3: API をテストする
次に、API をテストして作動していることを確認します。シンプルにテストをするため、ウェブブラウザを使用して API を呼び出します。
API をテストするために
API Gateway コンソール (https://console.aws.amazon.com/apigateway
) にサインインします。 API を選択します。
-
API の呼び出し URL を書き留めます。
-
API の呼び出し URL をコピーし、Web ブラウザーに入力します。呼び出し URL に Lambda 関数の名前を追加して、Lambda 関数を呼び出します。デフォルトでは、API Gateway コンソールは Lambda 関数
my-function
と同じ名前のルートを作成します。URL は次のようになります。
https://
abcdef123
.execute-api.us-east-2
.amazonaws.com/my-function
ブラウザが API に
GET
リクエストを送信します。 -
API の応答を確認します。ブラウザにテキスト
"Hello from Lambda!"
が表示されるはずです。
(オプション)ステップ 4: クリーンアップする
不要なコストを回避するには、このエクササイズで作成したリソースを削除します。次の手順では、HTTP API、Lambda 関数、および関連リソースを削除します。
HTTP API を削除するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
[ API ] ページで、API を選択します。[ Actions] を選択して、[Delete] を選択します。
-
[削除] を選択します。
Lambda 関数を削除するには
Lambda コンソール (https://console.aws.amazon.com/lambda/
) にサインインします。 -
[ 関数 ] ページで、関数を選択します。[ Actions] を選択して、[Delete] を選択します。
-
[削除] を選択します。
Lambda 関数のロググループを削除するには
-
Amazon CloudWatch コンソールで、[ ロググループページ
]を開きます。 -
[ロググループ] ページで、関数のロググループ (
/aws/lambda/my-function
) を選択します。[Actions] (アクション) を選択してから、[Delete log group] (ロググループの削除) を選択します。 -
[削除] を選択します。
Lambda 関数の実行ロールを削除するには
-
AWS Identity and Access Management コンソールの [Roles
] (ロール) ページを開きます。 -
関数のロールを選択します (例:
my-function-
)。31exxmpl
-
[ロールの削除] を選択します。
-
[はい、削除します] を選択します。
AWS CloudFormation または AWS SAM を使用して、AWS リソースの作成とクリーンアップを自動化できます。AWS CloudFormation テンプレートの例については、「サンプル AWS CloudFormation テンプレート
次のステップ
この例では、AWS Management Console を使用してシンプルな HTTP API を作成しました。HTTP API は Lambda 関数を呼び出し、クライアントに応答を返します。
API Gateway の使用を続けたまま、次のステップに進んでください。
コミュニティから Amazon API Gateway に関するヘルプを参照するには、API Gateway Discussion Forum
AWS から直接 API Gateway のサポートを得るには、AWS Support ページ
また、よくある質問