CodePipelineからCodeDeployでECSのBlue/Greenデプロイを実行した時に下記のエラーが発生しました。
Exception while trying to read the task definition artifact file from: config
taskdef.json
やappspec.yaml
の読み込みに失敗するとこのエラーが発生するみたいです。
対処法
自分の場合は下記の方法で対応しました。
taskdef.json
とappspec.yaml
を一つのzipファイル
にする- zipファイルを
S3のバケット
にアップロード CodePipeline
のSource
にアップロードしたzipファイル
を指定し出力アーティファクト
を設定出力アーティファクト名
をDeploy
の入力アーティファクト
に設定- この
入力アーティファクト
からAmazon ECS タスク定義
とAWS CodeDeploy AppSpec ファイル
を設定
ECS Blue/Greenデプロイ
の場合、taskdef.json
やappspec.yaml
を含むアーティファクトの容量を3MB未満にする必要があるみたいです。
通常、プロジェクトを作成すると3MB未満で収まることはあまりなさそうなので、今回のようにtaskdef.json
とappspec.yaml
を別にしてS3
のバケットにアップロードするのが良いと思います。
気になるところ
taskdef.json
とappspec.yaml
を別にするのはいいんですが、コードの管理がちょっと煩雑になりそうなので、そこは良い方法がないか調べてみないといけないかもです。
最後に
今回のエラーはチュートリアルだと発生せず、実際に自分の作成したプロジェクトをデプロイする際に発生しました。最初は何か設定ミスかと思っていたので、対処法が見つかるまでかなり時間がかかってしまいました。
AWS
でアーティファクトのサイズの上限を緩和してくれるとありがたいんですけどねぇ。
コメント