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 関数を呼び出すと、エラーメッ...

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント