0

我们在 Amazon lex 中创建了一个聊天机器人。机器人在尝试访问 lambda 函数时显示以下错误。

发生错误:调用 lambda 函数时拒绝访问。请检查用于创建机器人的 IAM 策略的权限

你能帮助我们解决这个错误吗?

4

2 回答 2

3

看起来这个问题的根源在于与您的 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 担任产品经理

于 2017-03-23T22:48:48.640 回答
0

请参阅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 控制台编辑资源策略。

于 2017-07-25T15:52:51.893 回答