🚢
eb deploy には --nohang オプションがある
Elastic Beanstalk の CLI で使える eb deploy
コマンド には --nohang
オプションがあります。現時点ではなぜかドキュメントに書かれていないオプションですが、ヘルプに書かれています。
$ eb --version
EB CLI 3.20.2 (Python 3.7.2)
$ eb deploy --help
usage: eb deploy <environment_name> [options ...]
Deploys your source code to the environment.
positional arguments:
environment_name environment name
optional arguments:
-h, --help show this help message and exit
--debug toggle debug output
--quiet suppress all output
-v, --verbose toggle verbose output
--profile PROFILE use a specific profile from your credential file
-r REGION, --region REGION
use a specific region
--no-verify-ssl don't verify AWS SSL certificates
--modules [MODULES [MODULES ...]]
modules to deploy
-g ENV_GROUP_SUFFIX, --env-group-suffix ENV_GROUP_SUFFIX
group suffix
--version VERSION existing version label to deploy
-l LABEL, --label LABEL
label name which version will be given
-m MESSAGE, --message MESSAGE
description for version
-nh, --nohang return immediately, do not wait for deploy to be
completed
--staged deploy files staged in git rather than the HEAD commit
--timeout TIMEOUT timeout period in minutes
--source SOURCE source of code to deploy directly; example
source_location/repo/branch
-p, --process enable preprocessing of the application version
--nohang
オプションを指定せずに実行すると、Ctrl+C
で抜けない限り、デプロイが完了するかタイムアウトするまで待つことになります。
$ eb deploy environment_name -l label
WARNING: Deploying a previously deployed commit.
2022-01-25 08:54:10 INFO Environment update is starting.
2022-01-25 08:54:16 INFO Deploying new version to instance(s).
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.
一方 --nohang
オプションを指定して実行すると、すぐにコマンド入力待ちの状態に戻ります。デプロイが成功したかどうかは別途確認する必要がありますが、CI/CD でデプロイを実行する場合に便利です。
$ eb deploy environment_name -l label --nohang
Discussion