TerraformでEventBridge Schedulerを利用してECSを操作しようと思ったときに困ったのでメモ。
targetのarnについて
ユニバーサルターゲットの場合、targetのarnはService ARNにする必要がある。
ドキュメントにも書いてあったが、最初ECS Serviceのarnを設定していて間違えた。
Service ARNについて
Service ARNの一覧は下記に記載がある。
ECSの場合は
arn:aws:scheduler:::aws-sdk:ecs:[apiAction]
となっている。
apiActionのフォーマットが不明だったが、例えば UpdateService
の場合は、updateService
と最初を小文字にする必要があった。
今回は
arn:aws:scheduler:::aws-sdk:ecs:updateService
で良かった。
inputに渡すjson
jsonは、最初 aws ecs update-service --generate-cli-skeleton
で生成したjsonを加工して設定してみたが、この場合キーの先頭は小文字になる。
{ "cluster" : xxxx, "service" : xxxx, "desiredCount" : 0 }
これではダメで、実際には下記のように先頭を大文字にする必要があった。
{ "Cluster" : xxxx, "Service" : xxxx, "DesiredCount" : 0 }