Решение 500-интеграционной ошибки с Amazon API Gateway и Lambda - PullRequest
1 голос
/ 13 января 2020

Я создал лямбда-экземпляр, затем использовал кнопку «automagi c» в лямбда-выражении для создания шлюза http API. Я изменил вывод журнала в экземпляре шлюза API, но не более того. Когда я вызываю его в своем приложении, я получаю неустойчивую ошибку (журнал шлюза API):

{
    "requestId": "xxxx",
    "ip": "xx.xx.xx.xx",
    "requestTime": "10/Jan/2020:18:47:08 +0000",
    "httpMethod": "GET",
    "routeKey": "/Current",
    "status": "500",
    "protocol": "HTTP/1.1",
    "responseLength": "35",
    "error": "Internal Server Error",
    "error response type": "INTEGRATION_FAILURE"
}

Когда это происходит, похоже, что он не попадает в экземпляр лямбды вообще (дух! сбой интеграции!). Или, по крайней мере, в лямбда-журнале ничего нет.

Но если я перезагружу веб-страницу, которая делает вызов пару раз, ошибка больше не появляется.

Нужно ли экземпляру лямбды 'просыпайся'? Я попытался выполнить предварительный вызов в своем приложении, исходя из предположения, что это так и не помогло.

Что происходит и что я могу сделать, чтобы избежать появления моего клиента на пустом экране

ОБНОВЛЕНИЕ: я проверил разрешения и выполнил команду, необходимую для проверки их правильности:

aws lambda add-permission \
  --statement-id [statement id] \
  --action lambda:InvokeFunction \
  --function-name [lambda function name] \
  --principal apigateway.amazonaws.com \
  --source-arn [source arn]

Это не помогло.

...