web-dev-qa-db-ja.com

関数に定義されたロールは、Lambdaが引き受けることができません

Create-functionコマンドでラムダ関数を作成しようとすると、「関数に定義されたロールをLambdaが引き継ぐことができません」というエラーが表示されます。

aWSラムダ作成関数
-地域us-west-2
-関数名HelloPython
-Zipファイルfileb://hello_python.Zip
-role arn:aws:iam :: my-acc-account-id:role/default
-ハンドラーhello_python.my_handler
-ランタイムpython2.7
-タイムアウト15
-メモリサイズ512

26
user3045354

ロール「信頼関係」設定ファイルを更新していないため、「関数に定義されたロールをLambdaが引き継ぐことができません」というエラーが表示されました。コメントのリンクされた回答のように、タイムアウトの問題は発生しませんでした。

上記の回答のコメントは、以下を追加する必要があると指摘しました。

  1. 「IAM>ロール> YourRoleName」に移動します。
    • (注:役割がリストされていない場合は、作成する必要があります。)
  2. 「信頼関係」タブを選択します
  3. 「信頼関係の編集」を選択します

鉱山は次のようになりました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      <your other rules>
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
49
Emile

このエラーも発生しています。 (まだ)明確な答えは得られていないが、この問題を解決するのに役立つヒントをいくつかお伝えします。

A)アカウントIDとロール名を組み合わせてロールARNを作成する場合、アカウントIDはダッシュなしである必要があると思います

B)ロールを作成したばかりで、場合によってはポリシーを追加した場合、ロールがこのエラーをトリガーする(わずかな)時間枠があるようです。ロールの最後の操作とcreate-function呼び出しの間で5〜6秒スリープすると、問題を回避できました(もちろん、タイミングは可変であるため、これは最善の回避策です)。

28
FOR

私にとって問題は、役割の名前が不完全だったことです。設定しました

--role arn:aws:iam::000000000000:role/MyRoleName

あるべき時

--role arn:aws:iam::000000000000:role/service-role/MyRoleName

(もちろん私のaws idは実際には000000000000ではありません)

実行してこれを発見しました

aws iam get-role --role-name MyRoleName

"Arn"結果セットのプロパティ。

16
alexanderbird

私にとって問題は、間違ったデフォルトのリージョン環境キーを設定していたことです。

2
jsta

Lambda関数の作成中にCloudFormationで間違ったロールARNを与えるため、ほとんどの人はこのエラーになります。

「DependsOn」を使用して最初に役割が完了していることを確認し、組み込み関数「」「{「Fn :: GetAtt」を使用します。

0
Vignesh

私はterraformでこのエラーに遭遇しましたが、役割引き継ぎポリシーを追加し、lambdaが引き受ける役割に適用する必要がありました。

data "aws_iam_policy_document" "lambda_assume_role_policy" {

  statement {
    actions = ["sts:AssumeRole"]

    principals {
      type        = "Service"
      identifiers = [
        "lambda.amazonaws.com"
      ]
    }
  }

resource "aws_iam_role" "lambda_rotation_role" {
  name               = "lambda-rotation-role"
  assume_role_policy = "${data.aws_iam_policy_document.lambda_assume_role_policy.json}"
}
0
Michael

私のIAMロールには正しいポリシーと信頼関係がありましたが、同じ問題がありました。 IAMロールを作成した後、ラムダモジュールを使用する場合の問題は、CLIを介してLambda作成が正常に機能することでした。

私も数秒間「一時停止」しようとしましたが、助けにはなりませんでした。

RegisterdLambda.codeが定義されるまで、再試行と遅延を追加することになりました。通常、1〜2回試行した後に機能します。

例:

 - name: creating lambda function
   lambda:
     state: present
     name: "{{ lambdaName }}"
     Zip_file: "{{ lambdaZipFile }}"
     runtime: "{{ lambdaRuntime }}"
     role: "{{ lambdaRole }}"
     description: "{{ lambdaDescription }}"
     handler: "{{ lambdaHandler }}"
   register: lambdaFunc
   retries: 3
   delay: 10
   until: "{{ lambdaFunc.code is defined }}"
0
balaganAtomi