AWS Lambda 测试环境之外的 HTTP API returns 未定义值
HTTP API returns undefined value outside AWS Lambda test environment
我正在尝试通过 HTTP API 向我的 Lambda 函数传递一个简单的 key1
参数。当我进行测试时,当我传递一个简单值 {"key1": "value1"}
时它会工作,但是,当我使用连接到 lambda 函数的 HTTP API 使用 Postman 进行相同的调用时,它 returns undefined
而不是像测试环境那样 value1
。
我的体温API:https://5fitm6ca95.execute-api.us-east-1.amazonaws.com/default/getPresignedURLforEmailAttachments
拉姆达:
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: "They key is " + event.key1 + ". Event console log: " + JSON.stringify(event),
};
return response;
};
我尝试按照 回答所述将 queryStringParameters
添加到事件中,但没有成功。
更新:
以下是 Postman 回复中的内容。我只是不知道如何使用我的 Lambda 访问它。我试过 event.body.key1
但没有成功。响应仍然是 undefined
:
要使 event.queryStringParameters
正常工作,您需要使用带有查询字符串的 GET 请求,而不是带有 JSON 正文的 POST 请求。否则你可以使用 JSON.parse(event.body)
。有关详细信息,请参阅 https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html 上的教程。
我正在尝试通过 HTTP API 向我的 Lambda 函数传递一个简单的 key1
参数。当我进行测试时,当我传递一个简单值 {"key1": "value1"}
时它会工作,但是,当我使用连接到 lambda 函数的 HTTP API 使用 Postman 进行相同的调用时,它 returns undefined
而不是像测试环境那样 value1
。
我的体温API:https://5fitm6ca95.execute-api.us-east-1.amazonaws.com/default/getPresignedURLforEmailAttachments
拉姆达:
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: "They key is " + event.key1 + ". Event console log: " + JSON.stringify(event),
};
return response;
};
我尝试按照 queryStringParameters
添加到事件中,但没有成功。
更新:
以下是 Postman 回复中的内容。我只是不知道如何使用我的 Lambda 访问它。我试过 event.body.key1
但没有成功。响应仍然是 undefined
:
要使 event.queryStringParameters
正常工作,您需要使用带有查询字符串的 GET 请求,而不是带有 JSON 正文的 POST 请求。否则你可以使用 JSON.parse(event.body)
。有关详细信息,请参阅 https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html 上的教程。