Azure Container Apps でリビジョンを管理する

Azure Container Apps を使用すると、コンテナー アプリで複数のリビジョンをサポートできます。 この機能により、リビジョンをアクティブ化および非アクティブ化して、各リビジョンに送信されるトラフィックの量を制御できます。 リビジョンの詳細については、「Azure Container Apps のリビジョン」を参照してください。

リビジョンは、アプリケーションを初めてデプロイするときに作成されます。 リビジョン スコープの変更でアプリケーションを更新すると、新しいリビジョンが作成されます。 特定のリビジョンに基づいてコンテナー アプリを更新することもできます。

この記事では、コンテナー アプリのリビジョンを管理するためのコマンドについて説明します。 Container Apps コマンドの詳細については、「az containerapp」を参照してください。 リビジョンを管理するコマンドの詳細については、「az containerapp revision」を参照してください。

コンテナー アプリの更新

コンテナー アプリを更新するには、az containerapp update コマンドを使用します。 このコマンドを使用すると、環境変数の変更、リソースの計算、パラメーターのスケーリング、および別のイメージのデプロイを行うことができます。 コンテナー アプリの更新にリビジョンスコープの変更が含まれている場合は、新しいリビジョンが生成されます。

この例では、コンテナー イメージを更新します。 <プレースホルダー> は実際の値に置き換えてください。

az containerapp update \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --image <IMAGE_NAME>

リビジョン コピー コマンドを使用してコンテナー アプリを更新することもできます。

リビジョン リスト

az containerapp revision list を使用して、コンテナー アプリに関連付けられているすべてのリビジョンを一覧表示します。 このコマンドの詳細については、「az containerapp revision list」を参照してください。

<プレースホルダー> は実際の値に置き換えてください。

az containerapp revision list \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  -o table

リビジョンの表示

az containerapp revision show コマンドを使用し、特定のリビジョンに関する詳細を表示します。

<プレースホルダー> は実際の値に置き換えてください。

az containerapp revision show \
  --name <APPLICATION_NAME> \
  --revision <REVISION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME>

リビジョンのコピー

既存のリビジョンに基づいて新しいリビジョンを作成するには、az containerapp revision copy を使用します。 Container Apps では既存のリビジョンの構成が使用されます。これは後から変更できます。

このコマンドを使用すると、環境変数の変更、リソースの計算、パラメーターのスケーリング、および別のイメージのデプロイを行うことができます。 YAML ファイルを使用して、これらおよびその他の構成オプションとパラメーターを定義することもできます。 このコマンドの詳細については、「az containerapp revision copy」を参照してください。

次の例では、最新のリビジョンをコピーし、コンピューティング リソース パラメーターを設定します。 (<プレースホルダー> は実際の値に置き換えてください)。

az containerapp revision copy \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --cpu 0.75 \
  --memory 1.5Gi

リビジョンのアクティブ化

az containerapp revision activate コマンドを使用し、リビジョンをアクティブにします。

例: (<プレースホルダー> は実際の値に置き換えてください)。

az containerapp revision activate \
  --revision <REVISION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME>

リビジョンの非アクティブ化

az containerapp revision deactivate コマンドを使用し、使用されなくなったリビジョンを非アクティブ化します。 非アクティブ化すると、リビジョンの実行中のすべてのレプリカが停止します。

例: (<プレースホルダー> は実際の値に置き換えてください)。

az containerapp revision deactivate \
  --revision <REVISION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME>

リビジョンの再起動

az containerapp revision restart コマンドにより、リビジョンが再起動されます。

コンテナー アプリでシークレットを変更する場合は、シークレットにアクセスできるように、アクティブなリビジョンを再起動する必要があります。

例: (<プレースホルダー> は実際の値に置き換えてください)。

az containerapp revision restart \
  --revision <REVISION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME>

リビジョン モードの設定

リビジョン モードでは、コンテナー アプリの 1 つのリビジョンのみ、または複数のリビジョンを同時にアクティブにできるかどうかを制御します。 単一リビジョン モードまたは複数リビジョン モードをサポートするようにコンテナー アプリを設定するには、az containerapp revision set-mode コマンドを使用します。

既定の設定は、"単一リビジョン モード" です。 このコマンドの詳細については、「az containerapp revision set-mode」を参照してください。

モードの値は、single または multiple です。 リビジョン モードを変更しても、新しいリビジョンは作成されません。

例: (<プレースホルダー> は実際の値に置き換えてください)。

例: (<プレースホルダー> は実際の値に置き換えてください)。

az containerapp revision set-mode \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --mode <REVISION_MODE>

リビジョン ラベル

ラベルによって、トラフィックをリビジョンに送信するために使用できる一意の URL が提供されます。 リビジョン間でラベルを移動して、ラベルの URL に送信されたトラフィックを別のリビジョンに再ルーティングできます。 リビジョン ラベルの詳細については、「リビジョン ラベル」を参照してください。

リビジョンにラベルを追加したり、リビジョンからラベルを削除したりできます。 ラベルに関するコマンドの詳細については、「az containerapp revision label」を参照してください。

リビジョン ラベルの追加

リビジョンにラベルを追加するには、az containerapp revision label add コマンドを使用します。

一度にラベルを割り当てられるのは 1 つのリビジョンにのみであり、リビジョンに割り当てられるラベルは 1 つのみです。 指定したリビジョンにラベルがある場合、add コマンドによって既存のラベルが置き換えられます。

次の例では、リビジョンにラベルを追加します (<プレースホルダー> は実際の値に置き換えてください)。

az containerapp revision label add \
  --revision <REVISION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --label <LABEL_NAME>

リビジョン ラベルの削除

リビジョンからラベルを削除するには、az containerapp revision label remove コマンドを使用します。

次の例では、リビジョンのラベルを削除します (<プレースホルダー> は実際の値に置換してください)。

az containerapp revision label remove \
  --revision <REVISION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --label <LABEL_NAME>

トラフィックの分割

割合の値を割り当てると適用されます。異なるリビジョン間でトラフィックを分散する方法を決定できます。 トラフィックの分割ルールは、名前またはラベルを使用して異なるリビジョンに重みを設定することで割り当てられます。 詳細については、「トラフィックの分割」を参照してください。

次のステップ