Я всегда получаю 500 Internal Server Error
, когда пытаюсь вызвать конечную точку GET, которую я определил с помощью SAM.
Я могу определить работающий запрос POST. Для запроса GET он показывает мне: Lambda invocation failed with status: 403
Execution failed due to configuration error:
Я думаю, что что-то не так в том месте, где я определяю свой DefinitionBody моего шлюза API.
Globals:
Api:
Cors:
AllowMethods: "'GET,POST,OPTIONS'"
AllowHeaders: "'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'"
AllowOrigin: "'*'"
Resources:
getFunction:
Type: 'AWS::Serverless::Function'
Properties:
...
Events:
GetApi:
Type: Api
Properties:
Path: /tips
Method: GET
RestApiId: !Ref MyApi
MyApi:
Type: AWS::Serverless::Api
Properties:
StageName: dev
EndpointConfiguration: REGIONAL
DefinitionBody:
swagger: "2.0"
info:
title: "API"
paths:
/tips:
get:
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${getFunction.Arn}/invocations
responses: {}
httpMethod: "POST"
type: "aws_proxy"
Я уже пробовал изменить httpMethod в x-amazon-apigateway-integration на «GET», но это не решает мою проблему.
В консоли AWS Lambda я вижу, что Lambda и Api Gateway связаны, но я не могу вызвать Lambda через API Gateway. Я могу успешно выполнить свою лямбду с помощью тестового события в консоли. Это определенно что-то на стороне шлюза API.
Может кто-нибудь проверить, что я делаю не так?