[英]python boto3 aws lambda - An error occurred (IncorrectInstanceState) when calling the StartInstances operation:
[英]AWS Lambda: function was created successfully but an error occurred when creating the trigger: Cannot read property 'includes' of undefined
我正在尝试从 AWS 管理的 slack-echo-command-python 蓝图创建一个 Lambda 函数,每当我点击创建时,它都会返回“您的 Lambda 函数“test_lambda_01”已成功创建,但在创建时出现错误触发器:无法读取未定义的属性“包含”。” 我不确定这意味着什么。
触发器应该是自动创建和附加的 AWS API 网关。 我尝试通过管理控制台创建一个,然后手动将其添加到 Lambda 函数上的触发器中。 它已成功添加,但当我尝试使用 Slack 斜杠命令时,我返回“502_service_error”。 它目前应该默认接受所有呼叫类型(稍后会更改,但我想让一些工作正常进行)。
我已将 Slack 设置中的端点更改为正确的端点。 我可以看到它在 CloudWatch 指标中被调用。
我编辑了 Lambda 函数代码以在每次调用时返回它,仅用于测试目的。 我 99% 确信这是对 Slack 的有效回应,因为大部分/全部内容都是从示例中复制的。 根据https://jsonlint.com/,它是有效的 JSON。
{
"body": {
"blocks": [{
"text": {
"text": "*It's 80 degrees right now.*",
"type": "mrkdwn"
},
"type": "section"
},
{
"text": {
"text": "Partly cloudy today and tomorrow",
"type": "mrkdwn"
},
"type": "section"
}
],
"response_type": "ephemeral"
},
"headers": {
"Content-Type": "application/json"
},
"statusCode": "200"
}
我已经用他们的默认测试测试了 Lambda 函数,它返回了上述内容。 API 网关出现在触发器下方。 我是否需要为 API 网关附加更多权限(它已经拥有调用 lambda 函数的权限)? 另外,在尝试从蓝图创建函数时,我做错了什么?
如果您需要任何其他信息,请告诉我。
您需要对响应中的body
参数进行字符串化。
https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
{
"isBase64Encoded": true|false,
"statusCode": httpStatusCode,
"headers": { "headerName": "headerValue", ... },
"multiValueHeaders": { "headerName": ["headerValue", "headerValue2", ...], ... },
"body": "..."
}
如果你看到上面的body
参数,它是一个字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.