AWS Lex:作为dialogCodeHook和fulfillmentActivity钩子执行Lambda的Intent权限

时间:2018-06-06 02:56:27

标签: permissions amazon policies aws-lex

我正在使用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?

1 个答案:

答案 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。