前提・実現したいこと
今、以下のようなShellを作成しました。
ECSのクラスター内にターゲットは登録されているのですが、タスクロールが生成されていないので自動実行はできないものと思います。
タスクスケジュールのコマンド化はちょっと初めてやっており調べながら進めているのですが、足りていないものなどありますでしょうか?
ご存知の方いましたらご教示いただけますと嬉しいです。
該当のソースコード
Shell
1RULE_NAME=$1 2CLUSTER_NAME=$2 3CRON=$3 4TASK_DEFINITION=$4 5 6read -p " 7Start schedule registration of batch, ok? (y/N): " yn 8case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac 9#!/bin/bash 10export AWS_REGION='ap-northeast-1' 11 12# Cloud Watchルールを作成する。 13aws events put-rule --schedule-expression "${CRON}" --name ${RULE_NAME} 14 15# ClusterのARNを取得する。 16CLUSTER_ARN=aws ecs describe-clusters --clusters "${CLUSTER_NAME}" |jq '.clusters[].clusterArn' 17 18# スケジュールタスクの登録(30秒待機後に実行) 19sleep 30; 20aws events put-targets --rule "${RULE_NAME}" --targets "Id"="${RULE_NAME}","Arn"="arn:aws:ecs:${AWS_REGION}:xxxxxxxxxxxxxxxx:cluster/${CLUSTER_NAME}","RoleArn"="arn:aws:iam::xxxxxxxxxxxxxxxx:role/EcsTaskCommonRole","EcsParameters"="{"TaskDefinitionArn"= "arn:aws:ecs:ap-northeast-1:xxxxxxxxxxxxxxxx:task-definition/${TASK_DEFINITION}:1","TaskCount"= 1}"
不勉強なもので、Shell とは シェルスクリプトとは異なるものですか? shebang が、先頭行でないのに違和感を覚えたのですが・・・。
あなたの回答
tips
プレビュー