コマンドリファレンス

ecspressoは、以下のコマンドを提供しています。各コマンドの詳細については、それぞれのページを参照してください。

設定コマンド

  • init - 既存のECSサービスから設定ファイルを生成
  • verify - 設定ファイルの検証
  • render - 設定ファイルをレンダリングして標準出力に表示

デプロイコマンド

  • deploy - サービスをデプロイ
  • rollback - 以前のタスク定義にロールバック
  • delete - サービスを削除
  • register - タスク定義を登録
  • deregister - タスク定義を登録解除
  • revisions - タスク定義のリビジョンを一覧表示
  • appspec - AWS CodeDeployのAppSpecファイルを生成

モニタリングコマンド

  • status - サービスの状態を表示
  • tasks - タスクの一覧を表示
  • wait - サービスが安定状態になるまで待機
  • exec - タスク内でコマンドを実行

その他のコマンド

  • run - 一時的なタスクを実行
  • scale - サービスのタスク数を変更
  • refresh - サービスのタスクを再起動
  • diff - ローカルの設定ファイルと現在のサービスとの差分を表示
  • version - ecspressoのバージョンを表示

共通オプション

すべてのコマンドで使用できる共通オプションは以下の通りです:

オプション 説明 デフォルト値
--config 設定ファイルのパス ecspresso.yml
--envfile 環境変数ファイルのパス -
--ext-str Jsonnet用の外部文字列値 -
--ext-code Jsonnet用の外部コード値 -
--debug デバッグログを有効化 false
--help ヘルプを表示 false

設定ファイル形式

ecspressoは、以下の形式の設定ファイルをサポートしています:

  1. YAML形式 (.yml, .yaml)
  2. JSON形式 (.json)
  3. Jsonnet形式 (.jsonnet)

基本的な設定ファイル例

region: ap-northeast-1
cluster: default
service: myservice
service_definition: ecs-service-def.json
task_definition: ecs-task-def.json
timeout: 10m

高度な設定ファイル例

region: ap-northeast-1
cluster: default
service: myservice
service_definition: ecs-service-def.jsonnet
task_definition: ecs-task-def.jsonnet
timeout: 10m
plugins:
  - name: tfstate
    config:
      path: terraform.tfstate
      format: tfstate
  - name: ssm
    config:
      path: /path/to/parameters
ignore:
  service:
    - capacityProviderStrategy
    - deploymentConfiguration.deploymentCircuitBreaker
  task_definition:
    - taskDefinitionArn
    - status
    - compatibilities
    - requiresAttributes
    - registeredAt
    - registeredBy
codedeploy:
  application_name: AppECS-default-myservice
  deployment_group_name: DgpECS-default-myservice
  deployment_config_name: CodeDeployDefault.ECSAllAtOnce
  auto_rollback_on_error: true
appspec:
  hooks:
    BeforeInstall:
      - location: scripts/before_install.sh
        timeout: 300
    AfterInstall:
      - location: scripts/after_install.sh
        timeout: 300

Jsonnetサポート

ecspressoは、Jsonnetをサポートしており、より柔軟な設定ファイルを作成できます。Jsonnetファイルを使用するには、拡張子を.jsonnetにして、設定ファイルで指定します。

// ecs-task-def.jsonnet
{
  family: "myservice",
  containerDefinitions: [
    {
      name: "web",
      image: "nginx:" + std.extVar("IMAGE_TAG"),
      essential: true,
      // ...
    }
  ],
  // ...
}

外部変数を渡すには、--ext-strまたは--ext-codeオプションを使用します:

$ ecspresso deploy --config ecspresso.yml --ext-str IMAGE_TAG=v1.2.3

Table of contents