我们在 Amazon lex 中创建了一个聊天机器人。机器人在尝试访问 lambda 函数时显示以下错误。
发生错误:调用 lambda 函数时拒绝访问。请检查用于创建机器人的 IAM 策略的权限
你能帮助我们解决这个错误吗?
我们在 Amazon lex 中创建了一个聊天机器人。机器人在尝试访问 lambda 函数时显示以下错误。
发生错误:调用 lambda 函数时拒绝访问。请检查用于创建机器人的 IAM 策略的权限
你能帮助我们解决这个错误吗?
看起来这个问题的根源在于与您的 Lex Bot 关联的 IAM 角色。Lex 在调用您的 Lambda 函数时代入此角色,并且需要 1) 允许该角色调用 Lambda 的策略,以及 2) 允许 Amazon Lex 代表您代入该角色的信任策略。从您看到的错误消息中,我希望它是可以在您的 Bot 角色上配置的信任策略。
1.在 IAM 角色的权限选项卡中,选择内联策略,然后附加以下自定义策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"lambda:InvokeFunction",
"polly:SynthesizeSpeech"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
2.在信任关系选项卡中,选择编辑信任关系,并指定 Amazon Lex 服务委托人(“lex.amazonaws.com”)。更新后的策略应如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lex.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
请参阅我们的入门文档 ( http://docs.aws.amazon.com/lex/latest/dg/gs-bp-prep.html ) 中的第 2 项作为参考
全面披露:我在 Amazon Lex 担任产品经理
请参阅http://docs.aws.amazon.com/lex/latest/dg/gs-cli-update-lambda.html
Lex 正在使用推送模型来触发 lambda 函数,基于每个意图函数策略。
“使用 Lambda AddPermission 函数启用 OrderFlowers 意图以调用 Lambda Invoke 操作。”
请参阅http://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html
遗憾的是,无法通过 aws 控制台编辑资源策略。