3ヶ月ぶりの ecspresso リリースのお知らせです。
Amazon ECS デプロイツール ecspresso の v1.7.0 をリリースしました。
新機能
定義ファイル (サービス / タスク / run --overrides-file) で Jsonnet の直接読み込みをサポートしました
これまで JSON 形式が要求されていた各種定義ファイルで、Jsonnet の読み込みがサポートされました。
ファイルの拡張子が .jsonnet の場合、ecspresso 内部で先に Jsonnet を処理して JSON に変換後、これまで通り (テンプレート記法による env, tfstate の展開などが行われて) 読み込まれるようになります。
JSON は人が読み書きするのは不便なことが多いため、 ecspresso advent calendar 2020 day 20 - Jsonnetによる定義ファイル生成 の記事などで Jsonnet 形式をお勧めしていました。これまでは事前に自分で jsonnet コマンドを実行して JSON に変換してから ecspresso を起動する必要がありましたが、その処理が不要になりました。
github.com/google/go-jsonnet をライブラリとして組み込んでいるため、jsonnet コマンドは不要です。CI/CD 環境でも jsonnet のインストールが不要になって嬉しいですね。
各種定義ファイルで使用できない key を発見すると警告を表示するように
ecspresso が使用するタスク/サービス定義のファイルは aws-sdk-go で定義している構造体にマッピングされます。
これまでは JSON ファイル中の要素名(key) を間違った場合など、構造体に対応するものがない場合は、単に無視されていました。そのため要素名を typo した場合など、気が付かないうちに要素自体が省略されてしまい、意図しない構成がデプロイされてしまうことがありました。
v1.7 では、構造体に対応する要素が存在しない場合は warning を表示するようになりました。
タスク定義リビジョンを取り扱う revisions, deregister コマンド追加
revisons コマンドは、存在しているタスク定義のリビジョンを表示できます。 IN USE の欄には、現在サービス内で利用しているタスクの情報が表示されます。単体タスクが使用している場合は RUNNING task
, サービスに設定されているものは *** deployment
となります。
$ ecspresso revisions ecspresso --envfile envfile revisions | NAME | IN USE | +--------------------+--------------------+ | ecspresso-test:386 | | | ecspresso-test:387 | | | ecspresso-test:388 | | | ecspresso-test:389 | ACTIVE deployment | | ecspresso-test:390 | RUNNING task | | ecspresso-test:391 | | | ecspresso-test:392 | PRIMARY deployment |
古い revision を登録解除する、deregsiter コマンドも追加されました。
deregister コマンドでは以下のオプションのどちらかが必要です。
--revision=リビジョン番号
を指定すると指定したリビジョンを登録解除します--keeps=保持する数
現在利用中のものを除いて指定した数だけリビジョンを保持し、古いリビジョンを登録解除します- 「現在利用中のものを除いて」= revisions コマンドで IN USE の欄が空欄のものが対象
revision が増えすぎて困る!とか、間違って動作しない revision を登録してしまったのでうっかり使わないようにしたい、という場合にご利用ください。
Fargate Windows Containers 対応
先日リリースされたばかりの、Fargate での Windows Containers の起動に対応しました。
タスク定義の image, runtimePlatform を適切に指定すると起動できます。
// せっかくなので Jsonnet 形式で { image: 'mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019', runtimePlatform: { operatingSystemFamily: 'WINDOWS_SERVER_2019_CORE', }, // .... }
バグ修正
サービス定義の desiredCount が設定されている(未定義ではない) 場合に create を行うと、その設定を無視して desiredCount=1 を設定してしまうバグを修正しました。
おしらせ
ecspresso handbook で、コマンドリファレンスの章も追加で無料公開しました。
現在 v1.5 対応版ですが、近日中に v1.7 対応に更新予定です。