【发布时间】:2020-08-18 15:08:19
【问题描述】:
需要你的帮助!我有以下 Lambda 函数,它将从 API Gateway 获取输入(使用 RestAPI Post 方法)并将与 Payload 相同的内容传递给第二个 Lambda 函数。
def lambda_handler(event, context):
customerName = event['Name']
customerEmail = event['EmailAddress']
input = {"Name": customerName, "EmailAddress": customerEmail}
response = lambda_client.invoke(
FunctionName='arn_of_the_lambda_to_be_invoked',
InvocationType='Event',
Payload=json.dumps(input))
以下是我对 API 网关的 JSON 格式输入 -
{
"Name": "TestUser",
"EmailAddress": "test@abc.com"
}
已尝试 Lambda 代理集成和通用正文映射模板(来自 here)。在这两种情况下,API Gateway 都会返回以下错误 -
响应正文:
{
"errorMessage": "'Name'",
"errorType": "KeyError",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 7, in lambda_handler\n customerName = event['Name']\n"
]
}
当我从 Lambda 控制台直接调用 Lambda 时,使用相同的 JSON 输入,它可以工作。我知道 API Gateway 和 JSON 主体一起推动了许多其他事情。但是,我无法弄清楚。
我如何让它工作?
【问题讨论】:
-
不要发布文字图片
-
事件映射似乎没有名为“名称”的键。您能
print(event)并检查这些值是否存在吗?
标签: python amazon-web-services aws-lambda aws-api-gateway