register

registerコマンドは、タスク定義を登録するためのコマンドです。サービスをデプロイせずに、タスク定義のみを登録したい場合に使用します。

基本的な使い方

$ ecspresso register [オプション]

オプション

オプション 説明 デフォルト値
--config 設定ファイルのパス ecspresso.yml
--dry-run 実際に登録せずに実行内容を表示 false
--envfile 環境変数ファイルのパス -
--ext-str Jsonnet用の外部文字列値 -
--ext-code Jsonnet用の外部コード値 -
--output 登録されたタスク定義のARNを出力するファイルパス -

出力例

2023/01/01 12:00:00 [info] myservice/default Starting register
2023/01/01 12:00:00 [info] myservice/default Registering task definition: myservice
2023/01/01 12:00:00 [info] myservice/default Task definition is registered: arn:aws:ecs:ap-northeast-1:123456789012:task-definition/myservice:4

使用例

基本的な使用方法

$ ecspresso register --config ecspresso.yml

ドライラン

$ ecspresso register --config ecspresso.yml --dry-run

環境変数ファイルを使用

$ ecspresso register --config ecspresso.yml --envfile production.env

Jsonnet用の外部変数を指定

$ ecspresso register --config ecspresso.yml --ext-str IMAGE_TAG=v1.2.3 --ext-str ENV=production

登録されたタスク定義のARNを出力

$ ecspresso register --config ecspresso.yml --output task-definition-arn.txt

登録プロセス

registerコマンドは、以下のプロセスでタスク定義を登録します:

  1. 設定ファイルからタスク定義ファイルのパスを読み込む
  2. タスク定義ファイルを読み込み、テンプレート変数を展開する
  3. AWS ECSにタスク定義を登録する
  4. 登録されたタスク定義のARNを表示する
graph TD
    A[開始] --> B[設定ファイルを読み込む]
    B --> C[タスク定義ファイルを読み込む]
    C --> D[テンプレート変数を展開する]
    D --> E{ドライラン?}
    E -->|はい| F[登録内容を表示]
    E -->|いいえ| G[タスク定義を登録]
    G --> H[ARNを表示]
    F --> I[完了]
    H --> I

タスク定義の登録と使用

タスク定義を登録すると、以下のことが可能になります:

  1. runコマンドで一時的なタスクを実行
  2. deployコマンドでサービスをデプロイ(--skip-task-definitionオプションを使用)
  3. AWS Management Consoleからタスク定義を確認

タスク定義のリビジョンは自動的に管理され、新しいタスク定義を登録するたびにリビジョン番号が増加します。

CI/CDパイプラインでの使用

registerコマンドは、CI/CDパイプラインでタスク定義のみを登録するのに役立ちます。以下は、GitHub Actionsでの使用例です:

jobs:
  register:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: kayac/ecspresso@v2
        with:
          version: v2.3.0
      - run: |
          ecspresso register --config ecspresso.yml --output task-definition-arn.txt
          TASK_DEFINITION_ARN=$(cat task-definition-arn.txt)
          echo "TASK_DEFINITION_ARN=$TASK_DEFINITION_ARN" >> $GITHUB_ENV
      - run: |
          # 登録されたタスク定義を使用して何か処理を行う
          echo "Registered task definition: $TASK_DEFINITION_ARN"

注意事項

  • registerコマンドは、タスク定義を登録するだけで、サービスをデプロイするわけではありません
  • 登録されたタスク定義を使用してサービスをデプロイするには、deployコマンドを使用します
  • --dry-runオプションを使用すると、実際に登録せずに実行内容を確認できます
  • テンプレート変数を使用している場合は、--envfileまたは--ext-strオプションで値を指定する必要があります
  • Jsonnetファイルを使用している場合は、--ext-strまたは--ext-codeオプションで外部変数を渡すことができます
  • --outputオプションを使用すると、登録されたタスク定義のARNをファイルに出力できます
  • タスク定義のリビジョンは自動的に管理され、新しいタスク定義を登録するたびにリビジョン番号が増加します

関連コマンド

  • deploy - サービスをデプロイ
  • deregister - タスク定義の登録を解除
  • revisions - タスク定義のリビジョンを一覧表示
  • run - 一時的なタスクを実行