import json
def lambda_handler(event, context):
return {
"statusCode": 200,
"headers": {"Content-Type": "application/json"},
"body": json.dumps(event['param'])
}
Я не уверен, что делаю не так. Я успешно настроил API-шлюз, лямбда-функцию Python, правильный DNS через Route53 и действительный сертификат TLS ...
Я могу получить доступ к своей лямбде через вызов mydomain.com/lambda, но я не получаю никаких параметров дляпройти, только эта ошибка. Уже пять часов пытаюсь.
При вызове через mydomain.com/lambda
errorMessage "'param'"
errorType "KeyError"
stackTrace
0 " File \"/var/task/lambda_function.py\", line 7, in lambda_handler\n \"body\": json.dumps(event['param'])\n"
При вызове через "Тест" API шлюза (все здесь хорошо)
Execution log for request
Tue Nov 05 22:42:47 UTC 2019 : Starting execution for request:
Tue Nov 05 22:42:47 UTC 2019 : HTTP Method: GET, Resource Path: /
Tue Nov 05 22:42:47 UTC 2019 : Method request path: {}
Tue Nov 05 22:42:47 UTC 2019 : Method request query string: {}
Tue Nov 05 22:42:47 UTC 2019 : Method request headers: {}
Tue Nov 05 22:42:47 UTC 2019 : Method request body before transformations:
Tue Nov 05 22:42:47 UTC 2019 : Endpoint request URI:
Tue Nov 05 22:42:47 UTC 2019 : Endpoint request headers: {x-amzn-lambda-integration-tag=Authorization=...[TRUNCATED]
Tue Nov 05 22:42:47 UTC 2019 : Endpoint request body after transformations:
{
"param" : "foo"
}
Tue Nov 05 22:42:47 UTC 2019 : Sending request to
Tue Nov 05 22:42:47 UTC 2019 : Received response. Status: 200, Integration latency: 36 ms
Tue Nov 05 22:42:47 UTC 2019 : Endpoint response headers: [...]
Tue Nov 05 22:42:47 UTC 2019 : Successfully completed execution
Tue Nov 05 22:42:47 UTC 2019 : Method completed with status: 200
И, наконец, успех (через «Тест» API Gateway)
{
"statusCode": 200,
"headers": {
"Content-Type": "application/json"
},
"body": "\"foo\""
}
Как заставить его работать через URL? Я пытаюсь получить некоторые параметры заголовка от клиента (браузера), но пошагово учиться. Кажется, я даже не могу получить что-либо, чтобы пройти от API Gateway к Lambda при вызове через URL, но почему? Что я не получаю здесь концептуально? (