API Gateway の開始方法 - Amazon API Gateway

API Gateway の開始方法

この入門エクササイズでは、サーバーレス API を作成します。サーバーレス API を使用すると、サーバーのプロビジョニングや管理に時間をとられる事なく、アプリケーションに集中することができます。このエクササイズの所要時間は 20 分未満で、AWS の無料利用枠内で実行できます。

はじめに、AWS Lambda コンソールを使用して Lambda 関数を作成します。次に、API Gateway コンソールを使用して HTTP API を作成します。次に、API を呼び出します。

注記

この演習では、簡略性の目的で HTTP API を使用します。API Gateway は、より多くの機能を含む REST API もサポートしています。詳細については、「REST API と HTTP API 間で選択する」を参照してください。

HTTP API を呼び出すと、API Gateway はリクエストを Lambda 関数にルーティングします。Lambda は Lambda 関数を実行し、API Gateway に応答を返します。それから API Gateway はレスポンスを返します。


      この入門ガイドで作成する API のアーキテクチャの概要。クライアントは、API Gateway HTTP API を使用して Lambda 関数を呼び出します。API Gateway は、クライアントへの Lambda 関数の応答を返します。

このエクササイズを完了するには、AWS アカウントと、コンソールへのアクセス権がある AWS Identity and Access Management ユーザーが必要です。詳細については、「API Gateway の開始方法の前提条件」を参照してください。

ステップ 1: Lambda 関数を作成する

API のバックエンドには Lambda 関数を使用します。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。

この例では、Lambda コンソールから既定の Node.js 関数を使用します。

Lambda 関数を作成するには

  1. Lambda コンソール (https://console.aws.amazon.com/lambda/) にサインインします。

  2. [関数の作成] を選択します。

  3. [関数名] に「my-function」と入力します。

  4. [関数の作成] を選択します。

この例の関数は、クライアントへの応答200とテキストHello from Lambda!を返します 。

関数の応答が API Gateway が必要とする形式と一致している限り、Lambda 関数を変更できます。

デフォルトの Lambda 関数コードは、次のようになります。

exports.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 を作成するには

  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. 次のいずれかを行ってください。

    • 最初の API を作成するには、[ HTTP API ] で [ 構築 ] を選択します。

    • 以前に API を作成した場合は、[ API の作成 ] を選択し、[ HTTP API ] の [構築] を選択します。

  3. [ 統合 ] で、[ 統合の追加 ] を選択します。

  4. Lambda を選択します。

  5. [Lambda 関数] に「my-function」と入力します。

  6. [API 名] に「my-http-api」と入力します。

  7. [Next (次へ)] を選択します。

  8. API Gateway が作成したルートを確認し、[ 次へ ] を選択します。

  9. API Gateway によって作成されるステージを確認し 、[ Next ] を選択します。

  10. [Create] を選択します。

これで、クライアントからのリクエストを受信できる Lambda 統合で HTTP API を作成しました。

ステップ 3: API をテストする

次に、API をテストして作動していることを確認します。シンプルにテストをするため、ウェブブラウザを使用して API を呼び出します。

API をテストするために

  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. API を選択します。

  3. API の呼び出し URL を書き留めます。

    
            APIを作成すると、コンソールに API の呼び出し URL が表示されます。
  4. 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リクエストを送信します。

  5. API の応答を確認します。ブラウザにテキスト"Hello from Lambda!"が表示されるはずです。

(オプション)ステップ 4: クリーンアップする

不要なコストを回避するには、このエクササイズで作成したリソースを削除します。次の手順では、HTTP API、Lambda 関数、および関連リソースを削除します。

HTTP API を削除するには

  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. [ API ] ページで、API を選択します。[ Actions] を選択して、[Delete] を選択します。

  3. [削除] を選択します。

Lambda 関数を削除するには

  1. Lambda コンソール (https://console.aws.amazon.com/lambda/) にサインインします。

  2. [ 関数 ] ページで、関数を選択します。[ Actions] を選択して、[Delete] を選択します。

  3. [削除] を選択します。

Lambda 関数のロググループを削除するには

  1. Amazon CloudWatch コンソールで、[ ロググループページ]を開きます。

  2. [ロググループ] ページで、関数のロググループ (/aws/lambda/my-function) を選択します。[Actions] (アクション) を選択してから、[Delete log group] (ロググループの削除) を選択します。

  3. [削除] を選択します。

Lambda 関数の実行ロールを削除するには

  1. AWS Identity and Access Management コンソールの [Roles] (ロール) ページを開きます。

  2. 関数のロールを選択します (例: my-function-31exxmpl)。

  3. [ロールの削除] を選択します。

  4. [はい、削除します] を選択します。

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 へのサインインが必要になることがあります。

AWS から直接 API Gateway のサポートを得るには、AWS Support ページでサポートオプションを参照してください。

また、よくある質問 (FAQ) を参照したり、直接お問い合わせいただくこともできます。