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 を使用するチュートリアルについては、「REST API コンソールの開始方法」を参照してください。

HTTP API と REST API の違いの詳細については、「REST API と HTTP API 間で選択する」を参照してください。

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

このチュートリアルで作成する HTTP API の概要。

このエクササイズを完了するには、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 関数コードは、次のようになります。

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 を作成するには
  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. API Gateway コンソール (https://console.aws.amazon.com/apigateway) にサインインします。

  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) を参照したり、直接お問い合わせいただくこともできます。