※この記事は以下の記事に触発されて書きました。
https://dev.classmethod.jp/articles/describe-task-definition-to-register-task-definition/
上記記事の以下の部分をRubyでやってみた。
既存のタスク定義をdescribe-task-definitionで取得して、register-task-definitionで登録するには、 taskDefinition の中身を取り出して、 status, compatibilities, taskDefinitionArn, requiresAttributes, revision を削除することで、登録する事ができます!
-
describe-task-definition
の標準出力をRubyで処理する。そしてファイル(taskDef.json
)に出力する。
$ aws ecs describe-task-definition --task-definition sampleTask:1 | ruby -r JSON -e 'json_obj = JSON.parse($stdin.read);json_obj["taskDefinition"].delete("revision");json_obj["taskDefinition"].delete("requiresAttributes");json_obj["taskDefinition"].delete("taskDefinitionArn");json_obj["taskDefinition"].delete("compatibilities");json_obj["taskDefinition"].delete("status");puts json_obj.to_json' >> taskDef.json
- 結果を出力したファイルを指定して
register-task-definition
を実施。
$ aws ecs register-task-definition --cli-input-json fileb://taskDef.json
おしまい!