Azure CLI を使用してワークロード プロファイルを管理する

Azure CLI でワークロード プロファイル環境を管理する方法について説明します。

プロファイルでコンテナー アプリを作成する

既定では、Container Apps 環境は、自動的に生成されるマネージド VNet を使用して作成されます。 生成される VNet は、Microsoft のテナント内に作成されるため、ユーザーはアクセスできません。

一方、以下のいずれかの機能が必要な場合は、カスタム VNet を使用して環境を作成できます。

  • ユーザー定義ルート
  • Application Gateway との統合
  • ネットワーク セキュリティ グループ
  • 仮想ネットワーク内のプライベート エンドポイントの背後にあるリソースとの通信

カスタム VNet を使用して環境を作成するときには、VNet の構成を完全に制御できます。 この多大な制御により、以下の機能を実装する選択肢が用意されています。

  • ユーザー定義ルート
  • Application Gateway との統合
  • ネットワーク セキュリティ グループ
  • 仮想ネットワーク内のプライベート エンドポイントの背後にあるリソースとの通信

以下のコマンドを使用してワークロード プロファイル環境を作成します。

  1. VNet を作成する。

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. Microsoft.App/environments に委任されるサブネットを作成します。

    az network vnet subnet create \
      --address-prefixes 13.0.0.0/23 \
      --delegations Microsoft.App/environments \
      --name "<SUBNET_NAME>" \
      --resource-group "<RESOURCE_GROUP>" \
      --vnet-name "<VNET_NAME>" \
      --query "id"
    

    ID 値をコピーし、次のコマンドに貼り付けます。

    Container Apps ランタイムに、Container Apps 環境でワークロード プロファイルを実行するために必要な VNet に対する制御を付与するには、Microsoft.App/environments の委任が必要です。

    サブネットには、/27 CIDR (32 IP - 8 個が予約済み) のように小さな値を指定できます。 /27 CIDR を指定する場合は、以下の点を考慮に入れてください。

    • Container Apps インフラストラクチャ用に予約されている IP アドレスが 11 個あります。 そのため、/27 CIDR には使用可能な IP アドレスが最大 21 個あります。

    • IP アドレスの割り当ては、従量課金プランと専用プランでは異なる方法で行われます。

      消費量のみ 専用
      すべてのレプリカに 1 つの IP が必要です。 ユーザーは、アプリ全体で 21 個より多いレプリカを使用するアプリを持つことができません。 ダウンタイムなしのデプロイでは、新しいリビジョンが正常にデプロイされるまで古いリビジョンが実行中であるため、2 倍の IP が必要です。 すべてのインスタンス (VM ノード) に必要なのは 1 つの IP です。 すべてのワークロード プロファイルで最大 21 個のインスタンスを使用でき、これらのワークロード プロファイルでは数百個以上のレプリカを実行できます。
  1. "ワークロード プロファイル" 環境を作成します

    Note

    コンテナー アプリで、パブリック イングレスを許可するか、環境レベルで VNet 内からのイングレスのみを許可するかを構成できます。 お使いの VNet のみにイングレスを制限するには、--internal-only フラグを設定します。

    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    
    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    このコマンドが完了するまでに最大で 10 分かかります。

  2. お使いの環境の状態を確認します。 次のコマンドでは、環境が正常に作成されているかどうかが報告されます。

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    provisioningState は、次のコマンドに進む前に Succeeded を報告する必要があります。

  3. 新しいコンテナー アプリを作成します。

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

    このコマンドは、組み込みの従量課金ワークロード プロファイルにアプリケーションをデプロイします。 専用プロファイルでアプリを作成する場合は、まず、環境にプロファイルを追加する必要があります。

    このコマンドでは、特定のワークロード プロファイルを使用して、環境内に新しいアプリケーションを作成します。

プロファイルを追加する

既存の環境に新しいワークロード プロファイルを追加します。

az containerapp env workload-profile add \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

<WORKLOAD_PROFILE_NAME> プレースホルダーに選択する値は、ワークロード プロファイルの "フレンドリ名" です。

フレンドリ名を使用すると、同じ種類の複数のプロファイルを環境に追加できます。 フレンドリ名は、ワークロード プロファイルでコンテナー アプリのデプロイと管理を行うときに使用する名前です。

プロファイルの編集

update コマンドを介して、ワークロード プロファイルによって使用されるノードの最小数と最大数を変更できます。

az containerapp env workload-profile update \
  --resource-group <RESOURCE_GROUP> \
  --name <ENV_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

プロファイルを削除

次のコマンドを使用してワークロード プロファイルを削除します。

az containerapp env workload-profile delete \
  --resource-group "<RESOURCE_GROUP>" \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

Note

"従量課金" ワークロード プロファイルは削除できません。

プロファイルを検査する

次のコマンドでは、ユーザーのリージョンで使用可能なプロファイルと、特定の環境で使用されているプロファイルを一覧表示できます。

使用可能なワークロード プロファイルを一覧表示する

list-supported コマンドを使用して、ユーザーのリージョンでサポートされているワークロード プロファイルを一覧表示します。

次の Azure CLI コマンドでは、結果が表で表示されます。

az containerapp env workload-profile list-supported \
  --location <LOCATION>  \
  --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
  -o table

応答は、下の例のような表に似ています。

Name         Cores    MemoryGiB    Category
-----------  -------  -----------  ---------------
D4           4        16           GeneralPurpose
D8           8        32           GeneralPurpose
D16          16       64           GeneralPurpose
E4           4        32           MemoryOptimized
E8           8        64           MemoryOptimized
E16          16       128          MemoryOptimized
E32          32       256          MemoryOptimized
Consumption  4        8            Consumption

az containerapp env workload-profile set を実行するときの --workload-profile-type オプションについては、ワークロード プロファイルを選択し、その Name フィールドを使用します。

ワークロード プロファイルを表示する

ワークロード プロファイルに関する詳細を表示します。

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

次のステップ