AWS CDK (Cloud Development Kit) の小ネタです。

CDK で既存のタスク定義を参照したい場合、ecs.TaskDefinition.fromTaskDefinitionArn で arn からタスク定義がとってこれるわけですが、タスク定義の arn はマネジメントコンソールから確認できる JSON や CLI から参照すると末尾にリビジョン番号がついてきます。

以下は CLI で出力してみた例です。

aws ecs list-task-definitions
{
  "taskDefinitionArns": [
    "arn:aws:ecs:<Region>:<Account>:task-definition/my-taskdef:1",
    "arn:aws:ecs:<Region>:<Account>:task-definition/my-taskdef:2"
  ]
}

では、CDK から deploy する時にタスク定義は常に最新のもの使いたいケースではタスク定義がどのリビジョンまで上がっているか事前に確認しないといけないのでしょうか?これは億劫だなと思っていたのですが、どうやらリビジョンを省いて指定すると最新のタスク定義をとってきてくれるようです。

  const myTaskDef = ecs.TaskDefinition.fromTaskDefinitionArn(this, 'my-taskdef',
    `arn:aws:ecs:${this.region}:${this.account}:task-definition/my-taskdef`);

これであれば、リビジョン気にすることなく参照できますね。

最後に・・・

この投稿は個人的なものであり、所属組織を代表するものではありません。ご了承ください。