スキップしてコンテンツを表示

API Gateway REST API を設定し、クエリ文字列のパラメータをバックエンド Lambda 関数または HTTP エンドポイントに渡す方法を教えてください。

所要時間2分
0

バックエンドの AWS Lambda 関数または HTTP エンドポイントにクエリ文字列パラメータを渡すために、Amazon API Gateway REST API が必要です。

簡単な説明

REST API を設定し、クエリ文字列パラメータをバックエンドの AWS Lambda 関数に渡すには、Lambda カスタム統合を使用します。

クエリ文字列パラメータを HTTP エンドポイントに渡すには、HTTP カスタム統合を使用します。

重要: 入力データは、統合リクエストペイロードとして提供する必要があります。ペイロードの提供には、マッピングテンプレートを使用することをおすすめします。詳細については、「API Gateway での REST API パラメータのマッピング例」を参照してください。

解決策

クエリ文字列パラメータをバックエンド Lambda 関数に渡す

次の手順を実行します。

  1. API Gateway コンソールを開き、使用する API を選択します。
  2. [リソース] ペインから、設定した HTTP メソッドを選択します。
    : API に複数の HTTP メソッドが設定されている場合は、各メソッドで手順を繰り返してください。
  3. [メソッドの実行] ペインで [メソッドリクエスト] を選択し、[編集] を選択します。
  4. [URL クエリ文字列パラメータ] ドロップダウンリストを展開し、[クエリ文字列を追加] を選択します。
  5. [名前] フィールドに pet と入力します。
  6. [必須] チェックボックスを選択し、[保存] を選択します。
  7. **[統合リクエスト]タブを選択し、[編集]**を選択します。
  8. [マッピングテンプレート] を展開し、[マッピングテンプレートを追加] を選択します。
  9. [Content-Type] フィールドに application/json を入力します。
  10. マッピングテンプレートエディタで現在のスクリプトをコピーしておき、次のコードで置き換えます。
{     "pet": "$input.params('pet')"
}

: 詳細については、「入力変数」を参照してください。 [保存] を選択し、[API をデプロイ] を選択します。 API の新しいエンドポイントをテストするには、次の curl コマンドを実行します。

curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/lambda-non-proxy?pet=dog

重要: curl コマンドには、pet=dog というクエリ文字列パラメータが必要です。

HTTP エンドポイントにクエリ文字列パラメータを渡す

次の手順を実行します。

  1. API Gateway コンソールを開き、使用する API を選択します。
  2. [リソース] ペインから、設定した HTTP メソッドを選択します。
    : API に複数の HTTP メソッドが設定されている場合は、各メソッドで手順を繰り返してください。
  3. [メソッドの実行] ペインで [メソッドリクエスト] を選択し、[編集] を選択します。
  4. [URL クエリ文字列パラメータ] ドロップダウンリストを展開し、[クエリ文字列を追加] を選択します。
  5. [名前] フィールドに type と入力し、[保存] を選択します。
  6. **[統合リクエスト]タブを選択し、[編集]**を選択します。
  7. [URL クエリ文字列パラメータ] セクションを展開します。
  8. [名前] フィールドに type と入力します。
  9. [マッピング元] フィールドに method.request.querystring.type を入力します。
  10. [保存] を選択し、次に [API をデプロイ] を選択します。
  11. API の新しいエンドポイントをテストするには、次の curl コマンドを実行します。
curl -X GET https://jp58lnf5vh.execute-api.us-west-2.amazonaws.com/dev/http-endpoint?pet=dog

重要: curl コマンドには、pet=dog というクエリ文字列パラメータが必要です。

関連情報

チュートリアル: Lambda プロキシ統合を備えた REST API を作成する

チュートリアル: Lambda 非プロキシ統合を備えた REST API を作成する

チュートリアル: HTTP プロキシ統合を備えた REST API を作成する

チュートリアル: HTTP 非プロキシ統合を備えた REST API を作成する

コメントはありません

関連するコンテンツ