0

Amazon lex でチャットボットを作成しました。ボットがラムダ関数にアクセスしようとすると、次のエラーが表示されます。

エラーが発生しました: ラムダ関数の呼び出し中にアクセスが拒否されました。ボットの作成に使用された IAM ポリシーのアクセス許可を確認してください

このエラーの修正にご協力いただけますでしょうか。

4

2 に答える 2

3

この問題の根本は、Lex ボットに関連付けられている IAM ロールにあるようです。Lex は、Lambda 関数を呼び出すときにこのロールを引き受けます。1) ロールが Lambda を呼び出すことを許可するポリシーと、2) Amazon Lex がユーザーに代わってそのロールを引き受けることを許可する信頼ポリシーの両方が必要です。表示されているエラー メッセージから、ボットのロールで構成されている可能性があるのは信頼ポリシーであると予想されます。

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 に答える