はじめに
2021年11月にAzure Container Appsというものがパブリックプレビューとして公開されました。パブリックプレビューなので、まだ色々と環境が整っていない感じがするのですが、試してみました。
前回までの記事は以下のものを参照してください。チュートリアルを実施して、自分で作成したコンテナアプリを動かすことまでを実施しました。
今回は、リビジョンについて実施してみます。
リビジョンとは?
Azure Container Appsのポータルをみると「リビジョン管理」という項目が目につきました。
ドキュメントは以下にあるのですが、あまりピンときませんでした。バージョン管理みたいなものと捉えたら良いのかな?
実際に実行してみることにしました。
最初のアプリをデプロイする
最初のアプリをデプロイします。以下のコマンドは環境変数RESOURCE_GROUP
やCONTAINERAPPS_ENVIRONMENT
を設定しています。これら環境変数は、ドキュメントのチュートリアルにあるものをそのまま使っています。
az containerapp create
コマンドでデプロイします。
az containerapp create \ --name my-container-app \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT \ --image イメージ名:v0.0.1 \ --registry-login-server Azure Container Registryのログインサーバー名 \ --registry-username Azure Container Registryのユーザー名 \ --registry-password Azure Container Registryのパスワード \ --environment-variables 環境変数名1=値1,環境変数名2=値2,環境変数名3=値3 \ --target-port 8080 \ --ingress 'external' \ --query configuration.ingress.fqdn
イメージ名:v0.0.1みたいにlatest
ではなく、バージョン番号を指定しています。このイメージはこんな感じの画面です。
次のバージョンのアプリをデプロイする
バージョンを変えたアプリをデプロイします。このバージョンはこんな感じの画面です。バージョン番号をつけました。
デプロイは、az containerapp update
コマンドで行います。イメージ名のバージョン部分をv0.0.2
にすることを忘れず、そのほかは同じ値で実行します。
az containerapp update \ --name my-container-app \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT \ --image イメージ名:v0.0.2 \ --registry-login-server Azure Container Registryのログインサーバー名 \ --registry-username Azure Container Registryのユーザー名 \ --registry-password Azure Container Registryのパスワード \ --environment-variables 環境変数名1=値1,環境変数名2=値2,環境変数名3=値3 \ --target-port 8080 \ --ingress 'external' \ --query configuration.ingress.fqdn
ポータルのリビジョン管理の画面は2行に増えました。
今回はトラフィックをv0.0.1とv0.0.2それぞれに分けるように50%、50%に設定しました。
これでブラウザをリロードするとv0.0.1とv0.0.2のどちらかにアクセスされます。試したところ、v0.0.1の次は必ずv0.0.2にアクセスされるわけではなく、v0.0.1→v0.0.1→v0.0.2という感じになることがありました。
あとがき
今回試したことは以下のドキュメントに書かれていました。ま、自分で試すことは大事だと思います。