copilot deploy
$ copilot deploy
コマンドの概要
このコマンドはローカル Manifest から Service 及び Environment をデプロイするために使用されます。このコマンドはデプロイされたインフラストラクチャとローカル Manifest をチェックし、Environment の初期化とデプロイ、およびワークロードのデプロイを支援します。
ワークロードが初期化されていない場合、--init-wkld
フラグでワークロードをデプロイする前に初期化することができます。
必要な Environment が初期化されていない場合は、--init-env
フラグで初期化することができます。
--deploy-env
フラグを指定して Environment のデプロイの確認をスキップするか、false (--deploy-env=false
) に設定して Environment のデプロイ自体をスキップできます。
copilot deploy
に含まれる手順は次のとおりです。
- Service が存在しない場合は、必要に応じて Service を初期化
- ターゲット Environment が存在しない場合は、必要に応じてカスタム認証情報を使用して初期化
- 必要に応じて Service をデプロイする前に Environment をデプロイ
- Manifest に
image.build
が存在する場合- ローカルの Dockerfile からコンテナイメージを作成
--tag
で指定された値、または最新の git sha を利用してタグ付け(git 管理されている場合)- コンテナイメージを ECR に対してプッシュ
- Manifest ファイルと Addon をまとめて CloudFormation テンプレートにパッケージ
- ECS タスク定義を作成/更新し、Job や Service を作成/更新
フラグ
--allow-downgrade Optional. Allow using an older version of Copilot to update Copilot components
updated by a newer version of Copilot.
-a, --app string Name of the application.
--aws-access-key-id string Optional. An AWS access key for the environment account.
--aws-secret-access-key string Optional. An AWS secret access key for the environment account.
--aws-session-token string Optional. An AWS session token for temporary credentials.
--deploy-env bool Deploy the target environment before deploying the workload.
--detach bool Optional. Skip displaying CloudFormation deployment progress.
-e, --env string Name of the environment.
--force Optional. Force a new service deployment using the existing image.
Not available with the "Static Site" service type.
-h, --help help for deploy
--init-env bool Confirm initializing the target environment if it does not exist.
--init-wkld bool Optional. Initialize a workload before deploying it.
-n, --name string Name of the service or job.
--no-rollback bool Optional. Disable automatic stack
rollback in case of deployment failure.
We do not recommend using this flag for a
production environment.
--profile string Name of the profile for the environment account.
--region string Optional. An AWS region where the environment will be created.
--resource-tags stringToString Optional. Labels with a key and value separated by commas.
Allows you to categorize resources. (default [])
--tag string Optional. The tag for the container images Copilot builds from Dockerfiles.
Info
--no-rollback
フラグは、サービスのダウンタイムを招く可能性があるため、本番環境にデプロイする場合は お勧めしません 。
自動スタックロールバックが無効になっている場合に、デプロイに失敗すると、手動でスタックを開始する必要があります。次のデプロイの前に AWS コンソールまたは AWS CLI を利用してスタックのスタックロールバックを手動で開始する必要があります。
実行例
"frontend" という名前の Service を "test" Environment にデプロイします。
$ copilot deploy --name frontend --env test
"mailer" という名前の Job を、追加のリソースタグを付加して、"prod" Environment にデプロイします。
$ copilot deploy -n mailer -e prod --resource-tags source/revision=bb133e7,deployment/initiator=manual
us-west-2 リージョンの "test" という名前の Environment をローカル Manifest を使用して "default" プロファイルの下に初期化してデプロイし、"api" という名前の Service をデプロイします。
$ copilot deploy --init-env --deploy-env --env test --name api --profile default --region us-west-2
"backend" という名前の Service を初期化し、"prod" Environment にデプロイします。
$ copilot deploy --init-wkld --deploy-env=false --env prod --name backend