API Gatewayデプロイ時にバックエンドがLambdaの時はhttpMethodはPOSTにする

API Gatewayデプロイ時にバックエンドがLambdaの時はhttpMethodはPOSTにする

Swaggerファイルを使ってAPI Gatewayデプロイするときに、x-amazon-apigateway-integrationがあります。

x-amazon-apigateway-integration:
  uri: "arn:aws:apigateway:ap-northeast-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ap-northeast-1:999999999999:function:get-func/invocations"
  responses:
    default:
      statusCode: "200"
  passthroughBehavior: "when_no_match"
  httpMethod: "POST" # ここはPOSTにしておくこと
  contentHandling: "CONVERT_TO_TEXT"
  type: "aws_proxy"

APIのメソッドがGETであっても、バックエンドがLambdaの場合は、httpMethodはPOSTにしておく必要があります。この部分をAPIのHTTPメソッドに合わせてPUTやDELETEなど、`POST以外を指定してしまうと、500エラー(403 Access Denied)が返ってきてしまいます。

Lambda 統合で API Gateway が「Execution failed due to configuration」エラーを返す場合の解決策
AWS CloudFormation テンプレートを使用して、AWS Lambda 統合で Amazon API Gateway REST API を作成しました。その API メソッドを使用して Lambda 関数を呼び出すと、エラーメッ...

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました