在亚马逊lex中获得的错误

时间:2017-03-10 07:40:19

标签: amazon-web-services lambda aws-lambda chatbot amazon-lex

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

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

您能否帮我们解决此错误。

2 个答案:

答案 0 :(得分: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工作

答案 1 :(得分:0)

请参阅http://docs.aws.amazon.com/lex/latest/dg/gs-cli-update-lambda.html

Lex正在使用push模型触发lambda函数,基于每个意图函数策略。

"使用Lambda AddPermission函数启用OrderFlowers意图调用Lambda Invoke操作。"

请参阅http://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html

不幸的是,无法通过aws控制台编辑资源策略。