我正在使用Node API AWS.LexModelBuildingService构建一个聊天机器人,我想附加所有新的意图以触发相同的lambda函数。
在控制台中我可以手动完成,但这对我正在处理的项目不起作用,附加lambda必须动态完成。
当我创建意图时,我可以添加连接lambda的行,但是权限不会更新,这会阻止我。
"dialogCodeHook": {
"uri": "arn:aws:lambda:us-east-1:1111111:function:someFunction",
"messageVersion": "1.0"
},
"fulfillmentActivity": {
"type": "CodeHook",
"codeHook": {
"uri": "arn:aws:lambda:us-east-1:1111111:function:someFunction",
"messageVersion": "1.0"
}
}
如何为使用Node AWS LEX API创建的所有当前和未来意图授予权限,以便他们可以调用Lambda?
答案 0 :(得分:0)
aws
命令行实用工具should allow you to automate this:
aws lambda add-permission --function-name [your-lambda-function-name] --statement-id [unique-policy-id] --action "lambda:InvokeFunction" --principal "lex.amazonaws.com"
显然,您需要插入自己的函数名称。
statement-id
可以是您想要的任何内容,但只能用作您帐户上的对帐单ID。它为IAM确定了此规则。
虽然我不必在更新Lambda函数后运行此程序,但我已经看到其他人的报告,他们必须这样做。 YMMV。