2017-12-25 51 views
5

私はECS Fargateでスケジュールされたタスクを設定しようとしていますが、なぜ実行されていないのかわかりません。私は仕事が正しくRunTaskを使用して動作することを確認することができますが、私が得るスケジューリングでそれを起動しようとすると、説明のない「FailedInvocations」がたくさんあります。ECS Fargateスケジュールされたタスクが実行されていません

ルールがトリガーされていることはわかりますが、これは良い兆候です。下のスクリーンショットを参照してください:

enter image description here

をしかし、毎回FailedInvocationはただそこにあるトリガされます。

enter image description here

そして、ちょうどecs:runTaskecsEventRole上のデフォルトのアクセス許可:

enter image description here

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "ecs:RunTask" 
      ], 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 

私の勘では、このecsEventsRoleが十分な権限を持っていないと言う。ここスケジューリングルールです。私はそれにecsTaskExecutionRoleが持っているものを与えるべきですか?ここで

おかげ

+0

任意の更新を?私はちょうど同じ場所にいて、貼り付けています –

+0

いいえ。私はまだ立ち往生しています:(すべてのオプションを与えられました) – coolboyjules

+2

AWSのサポートに話しましたが、まだサポートされていません。ETA –

答えて

0

が可能な回避策です:CloudWatchのルールのターゲットとしてラムダ関数を使用し、ラムダ関数のコードでタスクを作成します。 https://lobster1234.github.io/2017/12/03/run-tasks-with-aws-fargate-and-lambda/

リンクAWSはすでに1.4にラムダのbotoのバージョンを更新してからラムダ関数と新しいのbotoのバージョンをパックする方法について説明しますが、これはもう必要ありません。ここで

は、ラムダ関数のコード例は、 .8

私はテストして動作します。

0

通常のECSスケジュールタスクが実行されていない同様の問題が発生しました。

私は最終的にCloudWatchのイベントはECSのタスクにIAM役割を渡すことができますどのecsEventsRoleに追加のポリシーを追加することによってそれを解決:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "iam:ListInstanceProfiles", 
       "iam:ListRoles", 
       "iam:PassRole" 
      ], 
      "Resource": "*" 
     } 
    ] 
}