ソフトウェア開発プログラミング

[AWS]CodeDeploy実行時にtaskdef.jsonとappspec.yamlが読み込めない時の対処法

ソフトウェア開発
この記事は約2分で読めます。
スポンサーリンク

CodePipelineからCodeDeployでECSのBlue/Greenデプロイを実行した時に下記のエラーが発生しました。

Exception while trying to read the task definition artifact file from: config

taskdef.jsonappspec.yamlの読み込みに失敗するとこのエラーが発生するみたいです。

スポンサーリンク

対処法

自分の場合は下記の方法で対応しました。

  1. taskdef.jsonappspec.yaml一つのzipファイルにする
  2. zipファイルをS3のバケットにアップロード
  3. CodePipelineSourceアップロードしたzipファイルを指定し出力アーティファクトを設定
  4. 出力アーティファクト名Deploy入力アーティファクトに設定
  5. この入力アーティファクトからAmazon ECS タスク定義AWS CodeDeploy AppSpec ファイルを設定

ECS Blue/Greenデプロイの場合、taskdef.jsonappspec.yamlを含むアーティファクトの容量を3MB未満にする必要があるみたいです。

通常、プロジェクトを作成すると3MB未満で収まることはあまりなさそうなので、今回のようにtaskdef.jsonappspec.yamlを別にしてS3のバケットにアップロードするのが良いと思います。

気になるところ

taskdef.jsonappspec.yamlを別にするのはいいんですが、コードの管理がちょっと煩雑になりそうなので、そこは良い方法がないか調べてみないといけないかもです。

最後に

今回のエラーはチュートリアルだと発生せず、実際に自分の作成したプロジェクトをデプロイする際に発生しました。最初は何か設定ミスかと思っていたので、対処法が見つかるまでかなり時間がかかってしまいました。

AWSでアーティファクトのサイズの上限を緩和してくれるとありがたいんですけどねぇ。

スポンサーリンク
スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました