1

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

4

1 回答 1

0

aws命令行实用程序应该允许您自动执行此操作

aws lambda add-permission --function-name [your-lambda-function-name] --statement-id [unique-policy-id] --action "lambda:InvokeFunction" --principal "lex.amazonaws.com"

显然你需要插入你自己的函数名。

可以是您想要的statement-id任何东西,但它只能用作您帐户上的 statement-id 一次。它为 IAM 标识此规则。

虽然在更新我的 Lambda 函数后我不必运行它,但我看到其他人的报告说他们必须这样做。YMMV。

于 2018-08-28T14:43:18.930 回答