コマンドのみのデプロイメントパッケージは、ソースファイルを使用せず、スクリプトのみでアプリケーションをデプロイします。
仕組み
-
Auto Scaling (ESS) グループにデプロイする場合、スケーリングアクティビティはデプロイ中に一時停止し、結果にかかわらずデプロイが完了すると自動的に再開します。
-
各デプロイは、停止してから起動するシーケンスで実行されます。まず停止スクリプトが実行され、次に起動スクリプトが実行されます。
-
デプロイの作成と公開
OSS 内のアプリケーションのソースファイルの場所と、起動スクリリプトおよび停止スクリプトを指定します。
リリースタスクを作成し、リリースモードを選択して、ターゲットのアプリケーション グループにデプロイを公開します。
-
自動デプロイメントプロセスは次のとおりです:
-
サービスは、起動スクリプトとシャットダウンスクリプトを含むデプロイメントパッケージ情報を取得します。
-
サービスは、シャットダウンスクリプトを実行して、既存のアプリケーションバージョンを停止します。
-
サービスは、起動スクリプトを実行して、新しいアプリケーションバージョンを開始します。
-
注意事項
-
デプロイは Linux インスタンスでのみサポートされています。
-
起動スクリプトと停止スクリプトは、シェルスクリプトである必要があります。
操作手順
Java アプリケーションの例
-
アプリケーションを作成し、ECS インスタンスをインポートします。
-
ECS インスタンスがない場合は、[ECS console - Custom Launch] ページに移動して Linux ECS インスタンスを作成します。
以下のサンプルスクリプトは、これらのイメージ用です。別のイメージを使用する場合は、それに応じてスクリプトを修正する必要があります。
-
[ECS console - Application management] ページに移動し、既存のリソースをインポートして作成 をクリックしてアプリケーションとアプリケーション グループを作成し、ECS インスタンスをアプリケーション グループにインポートします。
-
-
デプロイメントパッケージを作成します。
-
[ECS console - Application management] ページに移動します。[My Applications] タブで、対象のアプリケーションの名前をクリックします。
-
アプリケーションの詳細ページで デプロイメント タブを選択し、デプロイメントの作成 をクリックします。
-
デプロイメントの作成 ページで、[デプロイメントパッケージタイプ] を コマンド実行 に設定し、パラメーターを設定してから OK をクリックします。
-
[作業ディレクトリ]: 起動スクリプトとシャットダウンスクリプトの作業ディレクトリを指定します。例:
/root/deploy。 -
Alibaba Cloud Linux
start_application() { set -e curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
start_application() { set -e curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar apt update apt install -y maven java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_application -
### アプリケーションが存在する場合、停止します stop_application() { PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi } stop_application
-
-
-
デプロイリストに戻り、作成したデプロイを見つけて 公開 をクリックします。対象のグループを選択し、OK をクリックしてデプロイを開始します。
-
結果を検証します。
対象インスタンスの詳細ページに移動します。 [Connect] をクリックし、[Workbench] を選択します。 ページ上のプロンプトに従ってターミナルにログインします。
-
curl http://localhost:8080/helloコマンドを実行します。Alibaba Spring Sample!というレスポンスは、デプロイが成功したことを示します。
Docker アプリケーションの例
-
アプリケーション、グループ、および ECS インスタンスを準備します。
デプロイ前に、ECS Application Management でアプリケーションとグループを作成し、ご利用の ECS インスタンスをグループに追加します。
-
ECS インスタンスをお持ちでない場合は、ECS console - Custom Launch ページにアクセスして Linux ECS インスタンスを作成します。
以下のサンプルスクリプトはこれらのイメージ向けです。別のイメージを使用する場合は、スクリプトを適宜修正する必要があります。
-
ECS console - Application management ページにアクセスし、既存のリソースをインポートして作成 をクリックしてアプリケーションとアプリケーショングループを作成し、ECS インスタンスをアプリケーショングループにインポートします。
グループ内の ECS インスタンスに Docker をインストールします。アプリケーショングループの O&M タブで、ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL を選択して Docker を一括インストールします。
カスタムイメージから ECS インスタンスを作成した場合、この方法で拡張機能をインストールすることはできません。リモート接続してDocker を手動でインストールする必要があります。
-
-
デプロイメントパッケージを作成します。
-
サンプルイメージをローカルマシンにプルし、イメージを ACR Personal Edition リポジトリにプッシュします。
docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest -
[ECS console - Application management] ページに移動します。[My Applications] タブで、対象のアプリケーションの名前をクリックします。
-
アプリケーションの詳細ページで、[Parameters] タブを選択し、パラメータの作成 をクリックします。ACR Personal Edition のユーザー名とパスワード用の、
usernameとpasswordの 2 つのパラメーターを作成します。セキュリティを確保するため、passwordパラメーターを暗号化されたパラメーターとして設定します。 -
アプリケーションの詳細ページで デプロイメント タブを選択し、デプロイメントの作成 をクリックします。
-
デプロイメントの作成 ページで、[デプロイメントパッケージタイプ] を コマンド実行 に設定し、パラメーターを設定してから OK をクリックします。
-
[作業ディレクトリ]: 起動スクリプトとシャットダウンスクリプトの実行ディレクトリを指定します。例:
/root/deploy。 -
[アプリケーション起動スクリプト]:
<repo>と<image>のプレースホルダーを、ACR Personal Edition リポジトリとイメージの値に置き換えます。次の図では、最初のフィールドが
repoで、2 番目のフィールドがimageです。起動スクリプト内の対応するパラメーターを、これら 2 つのフィールドの値で置き換えます。
### 現在のバージョンのアプリケーションを起動します start_application() { repo="<repo>" image="<image>" container_name="my-container" docker login --username=${username} --password=${password} $repo docker pull $image docker run -d -p 8080:8080 --name $container_name $image } start_application -
### コンテナが存在する場合、停止します stop_application() { # 名前でコンテナを検索し、存在する場合は削除します。 container_name="my-container" container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker rm -f $container_id fi } stop_application
-
-
-
デプロイリストに戻り、作成したデプロイを見つけて 公開 をクリックします。対象のグループを選択し、OK をクリックしてデプロイを開始します。
-
結果を検証します。
対象インスタンスの詳細ページに移動します。 [Connect] をクリックし、[Workbench] を選択します。 ページ上のプロンプトに従ってターミナルにログインします。
-
curl http://localhost:8080/helloコマンドを実行します。Alibaba Spring Sample!というレスポンスは、デプロイが成功したことを示します。
主要なパラメーター
|
[パラメーター] |
[説明] |
|
[作業ディレクトリ] |
起動スクリプトとシャットダウンスクリプトの作業ディレクトリ。
|
|
[アプリケーション起動スクリプト] |
アプリケーションを起動するシェルスクリプト。 |
|
[アプリケーションシャットダウンスクリプト] |
アプリケーションを停止するためのシェルスクリプトです。 スクリプトは、現在および以前のバージョンのアプリケーションを正しく停止できる必要があります。また、アプリケーションが実行されていない場合でも、エラーを発生させることなく正常に終了する必要があります。 たとえば、次のスクリプトは、
|