ecspresso v1.6.0 をリリースしました

このブログはすっかり ecspresso のリリースノートとなっている昨今ですが、今回もリリースのお知らせです。

Amazon ECS デプロイツール ecspresso の v1.6.0 をリリースしました。

github.com

非互換変更

これまで GitHub で配布しているリリースバイナリのパッケージが .zip 形式でしたが、リリースを GoReleaser で行うようにした関係で、tar.gz 形式に変更になっています。 (追記: GoReleaserでもzipにはできるのですが、パッケージ内部のファイル名を揃えることが難しかったため、どのみちインストーラーなどの対応が必要になるためtar.gzに変更しました)

手動でインストールしている場合は、zip ではなく tar で展開してください。

CircleCI Orb の場合は、 fujiwara/ecspresso@0.0.15 を使用してください。それ以前のバージョンでは、latest や v1.6.0 以降のバージョンが正しくインストールできません。

GitHub Actions の場合は、kayac/ecspresso@v1 で latest, v1.6.0 以降もインストールできるようになっています。もしまだ @v0 を使用している場合は @v1 へ更新をお願いします。

Homebrew でのインストールは今まで通り行えます。

新機能

ECS サービスなしでのコマンド実行

ecspresso はこれまで、一見 ECS にサービスが存在しなくてもよさそうな操作でも、サービスが存在しないと行えない操作がありました。単体タスクの実行 (run)、タスクの一覧 (tasks)、ECS Exec (exec) の各コマンドは、ECS サービスが存在している状態でないと正常に動作しませんでした。

v1.6.0 ではこれらの機能を、ECS にサービスがなくても実行できるようになりました。

  • run については、実行時の networkConfiguration など、ECS サービス定義と同等の情報が必要なため、サービス定義ファイルが必要です
  • tasks, exec については、サービス定義も不要です。タスク定義の family が同一なものを ECS クラスタ内から検索して操作対象とします

tfstate 参照機能で Terraform Cloud, Terraform Enterprise をサポート

Terraform Cloud で管理している tfstate を参照できるようになりました。URL を指定する場合は remote://app.terraform.io/{myorg}/{myworkspace} という形式で指定してください。

認証情報は TFE_TOKEN 環境変数から読み取ります。

--config のデフォルト値として ecspresso.yml が設定されます

これまで ecspresso の設定ファイルを指定する --config オプションの値はデフォルト値が存在しませんでしたが、ecspresso.yml というデフォルト値が設定されました。

バグ修正

exec コマンドでログ出力を KMS 暗号化する設定の場合動作しないのを修正しました

session-manager-plugin の呼び出し方法の問題でした。

CodeDeploy アプリケーションが100個以上ある場合にデプロイできない問題を修正しました

APIで一度に100個しか取得できない関係で、失敗することがありました。世の中にはいっぱいアプリケーションがある環境があるんですね…

tfstate 参照のキーに - が入っていると panic する問題を修正しました

outputs を定義している場合、リソース名には - が含まれる可能性があります。

CodeDeploy で使用する AppSpec に CapacityProviderStrategy を追加しました

ドキュメントの英語の誤りが修正されました

英語がグダグダなのを直していただいて、ありがとうございます!

短い ARN 形式を利用している場合に ecspresso init が失敗する問題を修正しました


パッケージングが変更になった以外は基本的に互換性を保ったリリースとなっています。Pull Requestをお寄せいただいた皆様、ありがとうございました。

どうぞご利用ください。