REST API コンソールの使用を開始する
この入門演習では、API Gateway REST API コンソールを使用してサーバーレス REST API を作成します。サーバーレス API を使用すると、サーバーのプロビジョニングや管理に時間をとられる事なく、アプリケーションに集中することができます。このエクササイズの所要時間は 20 分未満で、AWS の無料利用枠内
まずはじめに、Lambda コンソールを使用して Lambda 関数を作成します。次に、API Gateway REST API コンソールを使用してREST API を作成します。次に、API メソッドを作成し、Lambda プロキシ統合を使用して Lambda 関数と統合します。最後に、API をデプロイして呼び出します。
REST API を呼び出すと、API Gateway はリクエストを Lambda 関数にルーティングします。Lambda は関数を実行し、API Gateway に応答を返します。それから API Gateway はレスポンスを返します。
この演習を完了するには、AWS アカウント アカウントと、コンソールへのアクセス権がある AWS Identity and Access Management (IAM) ユーザーが必要です。詳細については、「API Gateway を使用するようにセットアップする」を参照してください。
トピック
ステップ 1: Lambda 関数を作成する
API のバックエンドには Lambda 関数を使用します。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。
この演習では、Lambda コンソールで既定の Node.js 関数を使用します。
Lambda 関数を作成するには
Lambda コンソール (https://console.aws.amazon.com/lambda/
) にサインインします。 -
[関数の作成] を選択します。
-
[基本的な情報] の [関数名] に「
my-function
」と入力します。 他のすべてのオプションについては、デフォルトの設定を使用します。
-
[Create function (関数の作成)] を選択します。
デフォルトの Lambda 関数コードは、次のようになります。
export const handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('The API Gateway REST API console is great!'), }; return response; };
この演習の関数の応答が API Gateway が必要とする形式と一致している限り、Lambda 関数を変更できます。
デフォルトのレスポンスの本文 (Hello from Lambda!
) を The API Gateway REST API
console is great!
に置き換えます。サンプル関数を呼び出すと、更新されたレスポンスとともにクライアントに 200
レスポンスが返されます。
ステップ 2: REST API を作成する
次に、ルートリソース (/
) を使用して REST API を作成します。
REST API を作成するには
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
次のいずれかを行います。
-
最初の API を作成するには、[REST API] で [ビルド] を選択します。
-
以前に API を作成した場合は、[API の作成] を選択し、REST API] の [ビルド] を選択します。
-
-
[API 名] に「
my-rest-api
」と入力します。 (オプション) [説明] に説明を入力します。
[API エンドポイントタイプ] を [リージョン別] に設定したままにします。
API の作成 を選択します。
ステップ 3: Lambda プロキシ統合を作成する
次に、ルートリソース (/
) に REST API の API メソッドを作成し、プロキシ統合を使用して Lambda 関数とそのメソッドと統合します。Lambda プロキシ統合では、API Gateway はクライアントからの受信リクエストを直接Lambda関数に渡します。
Lambda プロキシ統合を作成するには
-
/
リソースを選択し、[メソッドの作成] を選択します。 -
[メソッドタイプ] では、
ANY
を選択します。 -
[統合タイプ] で、[Lambda 関数] を選択します。
-
[Lambda プロキシ統合]を有効にします。
-
[Lambda 関数]に「
my-function
」と入力し、Lambda 関数を選択します。 -
[メソッドの作成] を選択します。
ステップ 4: API をデプロイする
次に、API デプロイを作成し、それをステージに関連付けます。
API をデプロイするには
[API のデプロイ] を選択します。
[ステージ] で [新規ステージ] を選択します。
[Stage name (ステージ名)] に
Prod
と入力します。(オプション) [説明] に説明を入力します。
[デプロイ] を選択します。
これで、クライアントは API を呼び出すことができます。API をデプロイする前に API をテストするには、オプションで ANY メソッドを選択し、[テスト] タブに移動して [テスト] を選択することもできます。
ステップ 5: API を呼び出す
API を呼び出すには
-
メインのナビゲーションペインで、[ステージ] を選択します。
-
[ステージの詳細] で、コピーアイコンを選択して API の呼び出し URL をコピーします。
-
ウェブブラウザに呼び出し URL を入力します。
URL は次のようになります。
https://
abcd123
.execute-api.us-east-2
.amazonaws.com/Prodブラウザが API に
GET
リクエストを送信します。 -
API の応答を確認します。ブラウザにテキスト
"The API Gateway REST API console is great!"
が表示されるはずです。
(オプション) ステップ 6: クリーンアップする
AWS アカウント にかかる不要なコストを回避するには、この演習で作成したリソースを削除します。次の手順では、REST API、Lambda 関数、および関連リソースを削除します。
REST API を削除するには
-
[リソース] ペインで、[API アクション]、[API の削除] を選択します。
-
[API の削除] ダイアログボックスに「確認」と入力し、[削除] を選択します。
Lambda 関数を削除するには
Lambda コンソール (https://console.aws.amazon.com/lambda/
) にサインインします。 -
[関数] ページで、関数を選択します。[アクション]、[削除] の順に選択します。
-
[1 関数の削除] ダイアログボックスに「
delete
」と入力し、[削除] を選択します。
Lambda 関数のロググループを削除するには
-
Amazon CloudWatch コンソールで、[Log groups (ロググループ)] ページ
を開きます。 -
[ロググループ] ページで、関数のロググループ (
/aws/lambda/my-function
) を選択します。[アクション] で、[ロググループの削除] を選択します。 -
[ロググループの削除] ダイアログボックスで、[削除] をクリックします。
Lambda 関数の実行ロールを削除するには
-
IAM コンソールのロールページ
を開きます。 -
(オプション) [ロール] ページの検索ボックスに、「
my-function
」と入力します。 -
関数のロール (例:
my-function-
) を選択し、[削除] を選択します。31exxmpl
-
[
my-function-
を削除しますか?] ダイアログボックスにロール名を入力し、[削除] を選択します。31exxmpl
ヒント
AWS CloudFormation または AWS Serverless Application Model (AWS SAM) を使用して、AWS リソースの作成とクリーンアップを自動化できます。いくつかのサンプル AWS CloudFormationテンプレートについては、awsdocs GitHub リポジトリにある API Gateway のサンプルテンプレート