マネージド ID を使用した Azure Container Apps イメージのプル

管理資格情報の使用を避けるために、マネージド ID を認証に使用して Microsoft Azure Container Registry のプライベート リポジトリからイメージをプルできます。

Azure Container Registry で認証するには、ユーザー割り当てまたはシステム割り当てのマネージド ID を使用することができます。

  • ユーザー割り当てマネージド ID の場合、Azure Container Apps の外部で ID を作成および管理します。 Azure Container Apps を含む複数の Azure リソースに割り当てることができます。
  • システム割り当てマネージド ID の場合、ID は Azure Container Apps によって作成および管理されます。 これは、コンテナー アプリに関連付けられ、アプリが削除されると削除されます。
  • イメージのプルには可能な限りユーザー割り当てマネージド ID を使用するべきです。

Container Apps では、コンテナーを起動するたびにイメージの新しいバージョンを確認します。 Docker や Kubernetes の用語では、Container Apps は各コンテナーのイメージのプル ポリシーを always に設定します。

この記事では、ユーザー割り当ておよびシステム割り当てのマネージド ID を使用してプライベート Azure Container Registry リポジトリからイメージをプルするように、Azure portal を使用してコンテナー アプリを構成する方法について説明します。

ユーザー割り当てマネージド ID

以下の手順では、ユーザー割り当てマネージド ID を使用してプライベート Azure Container Registry リポジトリからイメージをプルするようにコンテナー アプリを構成するプロセスについて説明します。

  1. パブリック イメージを使用してコンテナー アプリを作成します。
  2. ユーザー割り当てマネージド ID をコンテナー アプリに追加します。
  3. プライベート イメージとユーザー割り当てマネージド ID を使用して、コンテナー アプリのリビジョンを作成します。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。

  • プルするイメージが含まれているプライベート Azure Container Registry。

  • マネージド ID を使用してイメージをプルするには、Azure Container Registry で ARM 対象ユーザー トークンを認証に使用できるようにする必要があります。 次のコマンドを使用して、ARM トークンが ACR にアクセスできるかどうかを確認します。

    az acr config authentication-as-arm show -r <REGISTRY>
    

    ARM トークンが許可されていない場合は、次のコマンドを使用して許可することができます。

    az acr config authentication-as-arm update -r <REGISTRY> --status enabled
    
  • ユーザー割り当てマネージド ID を作成します。 詳細については、「ユーザー割り当てマネージド ID を作成する」を参照してください。

コンテナー アプリの作成

既定のクイックスタート イメージを使用してコンテナー アプリを作成するには、次の手順に従います。

  1. ポータルの [ホーム] ページに移動します。

  2. 上部の検索バーで「コンテナー アプリ」を検索します。

  3. 検索結果でコンテナー アプリを選択します。

  4. [作成] ボタンを選択します。

  5. [基本] タブで、次の操作を行います。

    設定 アクション
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ 既存のリソース グループを選択するか、新しいリソース グループを作成します。
    コンテナー アプリ名 コンテナー アプリ名を入力します。
    場所 場所を選択します。
    コンテナー アプリ環境の作成 新しい環境を作成するか、既存の環境を選択します。
  6. [コンテナーアプリの作成] ページの下部にある [確認と作成] ボタンを選択します。

  7. [コンテナー アプリの作成] ウィンドウの下部にある [作成] ボタンを選択します。

コンテナー アプリのデプロイが完了するには数分かかります。 デプロイが完了したら、[リソースに移動] を選択します。

ユーザー割り当てマネージド ID の追加

  1. 左側のメニューから [ID] を選択します。
  2. [ユーザー割り当て済み] タブを選択します。
  3. [ユーザー割り当てマネージド ID の追加] ボタンを選択します。
  4. サブスクリプションを選択します。
  5. 作成した ID を選択します。
  6. [追加] を選択します。

コンテナー アプリのリビジョンの作成

プライベート イメージとシステム割り当てマネージド ID を使用して、コンテナー アプリのリビジョンを作成します。

  1. 左側のメニューから [リビジョン管理] を選択します。

  2. [新しいリビジョンの作成] を選択します。

  3. [コンテナー イメージ] テーブルからコンテナー イメージを選択します。

  4. [コンテナーの編集] ダイアログに情報を入力します。

    フィールド アクション
    名前 コンテナーの名前を入力します。
    イメージ ソース [Azure Container Registry] を選択します。
    認証 [マネージド ID] を選択します。
    ID ドロップダウン メニューから、作成した ID を選択します。
    レジストリ ドロップダウン メニューから、使用するレジストリを選択します。
    Image 使用するイメージの名前を入力します。
    イメージ タグ プルするイメージの名前とタグを入力します。

    [コンテナーの編集] ダイアログでユーザー割り当てマネージド ID を入力するスクリーンショット。

    Note

    Azure Container Registry のレジストリで管理資格情報が有効になっていない場合は、警告メッセージが表示され、イメージ名とタグ情報を手動で入力する必要があります。

  5. [保存] を選択します。

  6. [新しいリビジョンの作成とデプロイ] ページから [作成] を選択します。

新しいリビジョンが作成され、デプロイされます。 ポータルでは、ユーザー割り当てマネージド ID への acrpull ロールの追加が自動的に試行されます。 ロールが追加されない場合は、手動で追加できます。

ロールが追加されたことを確認するには、コンテナー アプリ ページの [ID] ペインで ID を 確認します。

  1. 左側のメニューから [ID] を選択します。
  2. [ユーザー割り当て済み] タブを選択します。
  3. ユーザー割り当てマネージド ID を選びます。
  4. マネージド ID リソース ページのメニューから [Azure ロールの割り当て] を選びます。
  5. acrpull ロールがユーザー割り当てマネージド ID に割り当てられていることを確認します。

プライベート イメージを使用してコンテナー アプリを作成します。

パブリック イメージを使用したコンテナー アプリの作成から始めたくない場合は、次のようにすることもできます。

  1. ユーザー割り当てマネージド ID を作成します。
  2. ユーザー割り当てマネージド ID に acrpull ロールを追加します。
  3. プライベート イメージとユーザー割り当てマネージド ID を使用して、コンテナー アプリを作成します。

この方法は、コードとしてのインフラストラクチャ (IaC) のシナリオで一般的に用いられます。

リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合は、リソース グループを削除することで、Azure Container Apps インスタンスと関連付けられているすべてのサービスを削除できます。

警告

リソース グループを削除すると、グループ内のすべてのリソースが削除されます。 グループ内に他のリソースがある場合は、それらのリソースも削除されます。 リソースを保持したい場合は、コンテナー アプリ インスタンスとコンテナー アプリ環境を削除できます。

  1. [概要] セクションからリソース グループを選択します。
  2. リソース グループ ページの [概要] の上部で [リソース グループの削除] ボタンを選択します。
  3. 確認ダイアログにリソース グループ名を入力します。
  4. [削除] を選択します。 リソース グループを削除するプロセスが完了するまでに数分かかる場合があります。

システム割り当てマネージド ID

Azure portal でシステム割り当てマネージド ID を構成する方法は、ユーザー割り当てマネージド ID の構成と同じです。 唯一の違いは、ユーザー割り当てマネージド ID を作成する必要がない点です。 代わりに、コンテナー アプリの作成時にシステム割り当てマネージド ID が作成されます。

Azure portal でシステム割り当てマネージド ID を構成する方法は次のとおりです。

  1. パブリック イメージを使用してコンテナー アプリを作成します。
  2. プライベート イメージとシステム割り当てマネージド ID を使用して、コンテナー アプリのリビジョンを作成します。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。
  • プルするイメージが含まれているプライベート Azure Container Registry。 プライベート Azure Container Registry の作成に関するページを参照してください。

コンテナー アプリの作成

次の手順に従い、既定のクイックスタート イメージを使用してコンテナー アプリを作成します。

  1. ポータルの [ホーム] ページに移動します。

  2. 上部の検索バーで「コンテナー アプリ」を検索します。

  3. 検索結果でコンテナー アプリを選択します。

  4. [作成] ボタンを選択します。

  5. [基本] タブで、次の操作を行います。

    設定 アクション
    サブスクリプション Azure サブスクリプションを選択します。
    リソース グループ 既存のリソース グループを選択するか、新しいリソース グループを作成します。
    コンテナー アプリ名 コンテナー アプリ名を入力します。
    場所 場所を選択します。
    コンテナー アプリ環境の作成 新しい環境を作成するか、既存の環境を選択します。
  6. [コンテナーアプリの作成] ページの下部にある [確認と作成] ボタンを選択します。

  7. [コンテナー アプリの作成] ページの下部にある [作成] ボタンを選択します。

コンテナー アプリのデプロイが完了するには数分かかります。 デプロイが完了したら、[リソースに移動] を選択します。

リビジョンの編集とデプロイ

プライベート Azure Container Registry のイメージを使用するようにコンテナーを編集し、システム割り当て ID を使用するように認証を構成します。

  1. 左側のサイド メニューから [コンテナー] を選択します。

  2. [Edit and deploy](編集してデプロイ) を選択します。

  3. 一覧から simple-hello-world-container コンテナーを選択します。

    設定 アクション
    名前 コンテナー アプリ名を入力します。
    イメージ ソース [Azure Container Registry] を選択します。
    認証 [マネージド ID] を選択します。
    ID [システム割り当て] を選択します。
    レジストリ レジストリの名前を入力します。
    Image イメージの名前を入力します。
    イメージ タグ タグを入力します。

    システム割り当てマネージド ID を使用してコンテナーを編集するスクリーンショット。

    Note

    Azure Container Registry のレジストリで管理資格情報が有効になっていない場合は、警告メッセージが表示され、イメージ名とタグ情報を手動で入力する必要があります。

  4. ページの下部にある [保存] を選択します。

  5. [新しいリビジョンの作成とデプロイ] ページの下部にある [作成] を選択します。

  6. 数分後、[リビジョン管理] ページで [更新] を選択すると、新しいリビジョンが表示されます。

新しいリビジョンが作成され、デプロイされます。 ポータルでは、システム割り当てマネージド ID への acrpull ロールの追加が自動的に試行されます。 ロールが追加されない場合は、手動で追加できます。

ロールが追加されたことを確認するには、コンテナー アプリ ページの [ID] ペインで ID を確認します。

  1. 左側のメニューから [ID] を選択します。
  2. [システム割り当て済み] タブを選択します。
  3. [Azure でのロールの割り当て] を選択します。
  4. acrpull ロールがシステム割り当てマネージド ID に割り当てられていることを確認します。

リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合は、リソース グループを削除することで、Azure Container Apps インスタンスと関連付けられているすべてのサービスを削除できます。

警告

リソース グループを削除すると、グループ内のすべてのリソースが削除されます。 グループ内に他のリソースがある場合は、それらのリソースも削除されます。 リソースを保持したい場合は、コンテナー アプリ インスタンスとコンテナー アプリ環境を削除できます。

  1. [概要] セクションからリソース グループを選択します。
  2. リソース グループ ページの [概要] の上部で [リソース グループの削除] ボタンを選択します。
  3. 確認ダイアログにリソース グループ名を入力します。
  4. [削除] を選択します。 リソース グループを削除するプロセスが完了するまでに数分かかる場合があります。

この記事では、マネージド ID を使用してプライベート Azure Container Registry リポジトリからイメージをプルするように、Azure CLI と Azure PowerShell を使用してコンテナー アプリを構成する方法について説明します。

前提条件

前提条件 説明
Azure アカウント アクティブなサブスクリプションが含まれる Azure アカウント。 持っていない場合は、無料で作成できます。
Azure CLI Azure CLI を使用している場合は、ローカル コンピューターに Azure CLI をインストールします。
Azure PowerShell PowerShell を使用している場合は、ローカル コンピューターに Azure PowerShell をインストールします。 コマンド Install-Module -Name Az.App を実行して、Az.App モジュールの最新バージョンがインストールされていることを確認します。
Azure Container Registry プルするイメージが含まれているプライベート Azure Container Registry。 「クイック スタート: Azure CLI を使用したプライベート コンテナー レジストリの作成」または「クイック スタート:Azure PowerShell を使用してプライベート コンテナー レジストリを作成する

セットアップ

CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。

az login

最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。

az upgrade

次に、CLI 用の Azure Container Apps 拡張機能をインストールまたは更新します。

Azure CLI で az containerapp コマンドを実行したとき、または Azure PowerShell で Az.App モジュールからコマンドレットを実行したときに、パラメーターの不足に関するエラーが表示される場合は、最新バージョンの Azure Container Apps 拡張機能がインストールされていることを確認してください。

az extension add --name containerapp --upgrade

Note

2024 年 5 月以降、Azure CLI 拡張機能では既定ではプレビュー機能が有効になりません。 Container Apps のプレビュー機能にアクセスするには、--allow-preview true を使用して Container Apps 拡張機能をインストールします。

az extension add --name containerapp --upgrade --allow-preview true

最新の拡張機能またはモジュールがインストールされたので、Microsoft.App および Microsoft.OperationalInsights 名前空間を登録します。

Note

Azure Container Apps リソースは、Microsoft.Web 名前空間から Microsoft.App 名前空間に移行されました。 詳細については、「2022 年 3 月に Microsoft.Web から Microsoft.App に名前空間を移行する」を参照してください。

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

次に、次の環境変数を設定します。 <> で囲まれたプレースホルダーを実際の値に置き換えます。

RESOURCE_GROUP="<YOUR_RESOURCE_GROUP_NAME>"
LOCATION="<YOUR_LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<YOUR_ENVIRONMENT_NAME>"
REGISTRY_NAME="<YOUR_REGISTRY_NAME>"
CONTAINERAPP_NAME="<YOUR_CONTAINERAPP_NAME>"
IMAGE_NAME="<YOUR_IMAGE_NAME>"

リソース グループが既にある場合は、この手順をスキップします。 そうでない場合、リソース グループを作成します。

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

コンテナー アプリ環境の作成

環境が存在しない場合は、次のコマンドを実行します。

環境を作成するために、次のコマンドを実行します。

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION

次のセクションに進んでユーザー割り当てマネージド ID を構成するか、「システム割り当てマネージド ID」のセクションまでスキップします。

ユーザー割り当てマネージド ID

ユーザー割り当てマネージド ID を構成するには、次の手順に従います。

  1. ユーザー割り当てマネージド ID を作成します。
  2. PowerShell を使用している場合は、レジストリに対する acrpull ロールをマネージド ID に割り当てます。 Azure CLI では、この割り当ては自動的に行われます。
  3. ユーザー割り当てマネージド ID を使用して認証するプライベート レジストリからのイメージを使用してコンテナー アプリを作成します。

ユーザー割り当てマネージド ID を作成する

ユーザー割り当てマネージド ID を作成します。 次のコマンドを実行する前に、<PLACEHOLDERS> を実際のマネージド ID の名前に置き換えます。

IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP

ID のリソース ID を取得します。

IDENTITY_ID=`az identity show \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP \
  --query id`

コンテナー アプリの作成

この ID を使用して認証するプライベート レジストリからのイメージを使用してコンテナー アプリを作成します。

ID のリソース ID をコピーして、次のコマンドの <IDENTITY_ID> プレースホルダーに貼り付けます。 イメージ タグが latest でない場合は、'latest' をタグに置き換えます。

echo $IDENTITY_ID
az containerapp create \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --user-assigned <IDENTITY_ID> \
  --registry-identity <IDENTITY_ID> \
  --registry-server "$REGISTRY_NAME.azurecr.io" \
  --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"

クリーンアップ

注意事項

次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 指定したリソース グループにこのクイックスタートの範囲外のリソースが含まれている場合、それらも削除されます。

az group delete --name $RESOURCE_GROUP

システム割り当てマネージド ID

システム割り当て ID を構成するには、次の手順を実行する必要があります。

  1. パブリック イメージを使用してコンテナー アプリを作成します。
  2. システム割り当てマネージド ID をコンテナー アプリに割り当てます。
  3. プライベート イメージを使用してコンテナー アプリを更新します。

コンテナー アプリの作成

パブリック イメージを使用してコンテナーを作成します。

az containerapp create \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 80 \
  --ingress external

コンテナー アプリの更新

プライベート コンテナー レジストリからのイメージを使用してコンテナー アプリを更新し、Azure Container Registry のプルを認証するためのシステム割り当て ID を追加します。 イングレス、スケール、Dapr の設定など、コンテナー アプリに必要なその他の設定を含めることもできます。

レジストリ サーバーを設定し、コンテナー アプリでシステム割り当てマネージド ID を有効にします。

az containerapp registry set \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --identity system \
  --server "$REGISTRY_NAME.azurecr.io"
az containerapp update \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"

クリーンアップ

注意事項

次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 指定したリソース グループにこのクイックスタートの範囲外のリソースが含まれている場合、それらも削除されます。

az group delete --name $RESOURCE_GROUP

この記事では、ユーザー割り当てマネージド ID を使用してプライベート Azure Container Registry リポジトリからイメージをプルするように、Bicep テンプレートを使用してコンテナー アプリを構成する方法について説明します。

前提条件

セットアップ

CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。

az login

最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。

az upgrade

次に、CLI 用の Azure Container Apps 拡張機能をインストールまたは更新します。

Azure CLI で az containerapp コマンドを実行したとき、または Azure PowerShell で Az.App モジュールからコマンドレットを実行したときに、パラメーターの不足に関するエラーが表示される場合は、最新バージョンの Azure Container Apps 拡張機能がインストールされていることを確認してください。

az extension add --name containerapp --upgrade

Note

2024 年 5 月以降、Azure CLI 拡張機能では既定ではプレビュー機能が有効になりません。 Container Apps のプレビュー機能にアクセスするには、--allow-preview true を使用して Container Apps 拡張機能をインストールします。

az extension add --name containerapp --upgrade --allow-preview true

最新の拡張機能またはモジュールがインストールされたので、Microsoft.App および Microsoft.OperationalInsights 名前空間を登録します。

Note

Azure Container Apps リソースは、Microsoft.Web 名前空間から Microsoft.App 名前空間に移行されました。 詳細については、「2022 年 3 月に Microsoft.Web から Microsoft.App に名前空間を移行する」を参照してください。

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Bicep をインストールする

Bicep がインストールされていない場合は、以下のようにしてインストールできます。

az bicep install

Bicep がインストールされている場合は、最新バージョンであることを確認してください。

az bicep upgrade

詳細については、「Bicep のインストール」を参照してください。

環境変数を設定する

次に、次の環境変数を設定します。 <> で囲まれたプレースホルダーを実際の値に置き換えます。

RESOURCE_GROUP="<RESOURCE_GROUP_NAME>"
LOCATION="<LOCATION>"
REGISTRY_NAME="<REGISTRY_NAME>"
IMAGE_NAME="<IMAGE_NAME>"
IMAGE_TAG="<IMAGE_TAG>"
BICEP_TEMPLATE="<BICEP_TEMPLATE>"
CONTAINERAPPS_ENVIRONMENT="<ENVIRONMENT_NAME>"
CONTAINER_NAME="<CONTAINER_NAME>"
CONTAINERAPP_NAME="<CONTAINERAPP_NAME>"
USER_ASSIGNED_IDENTITY_NAME="<USER_ASSIGNED_IDENTITY_NAME>"
LOG_ANALYTICS_WORKSPACE_NAME="<LOG_ANALYTICS_WORKSPACE_NAME>"
APP_INSIGHTS_NAME="<APP_INSIGHTS_NAME>"
ACR_PULL_DEFINITION_ID="7f951dda-4ed3-4680-a7ca-43fe172d538d"

AcrPull ロールは、ユーザー割り当てマネージド ID にレジストリからイメージをプルするためのアクセス許可を付与します。

Bicep テンプレート

次の Bicep テンプレートをコピーし、拡張子 .bicep を持つファイルとして保存します。

param environmentName string 
param logAnalyticsWorkspaceName string
param appInsightsName string
param containerAppName string 
param azureContainerRegistry string
param azureContainerRegistryImage string 
param azureContainerRegistryImageTag string
param acrPullDefinitionId string
param userAssignedIdentityName string
param location string = resourceGroup().location

resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2022-01-31-preview' = {
  name: userAssignedIdentityName
  location: location 
}

resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(resourceGroup().id, azureContainerRegistry, 'AcrPullTestUserAssigned')
  properties: {
    principalId: identity.properties.principalId  
    principalType: 'ServicePrincipal'
    // acrPullDefinitionId has a value of 7f951dda-4ed3-4680-a7ca-43fe172d538d
    roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', acrPullDefinitionId)
  }
}

resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
  name: logAnalyticsWorkspaceName
  location: location
  properties: any({
    retentionInDays: 30
    features: {
      searchVersion: 1
    }
    sku: {
      name: 'PerGB2018'
    }
  })
}

resource appInsights 'Microsoft.Insights/components@2020-02-02' = {
  name: appInsightsName
  location: location
  kind: 'web'
  properties: {
    Application_Type: 'web'
    WorkspaceResourceId: logAnalyticsWorkspace.id
  }
}

resource appEnvironment 'Microsoft.App/managedEnvironments@2022-06-01-preview' = {
  name: environmentName
  location: location
  properties: {
    daprAIInstrumentationKey: appInsights.properties.InstrumentationKey
    appLogsConfiguration: {
      destination: 'log-analytics'
      logAnalyticsConfiguration: {
        customerId: logAnalyticsWorkspace.properties.customerId
        sharedKey: logAnalyticsWorkspace.listKeys().primarySharedKey
      }
    }
  }
}

resource containerApp 'Microsoft.App/containerApps@2022-06-01-preview' = {
  name: containerAppName
  location: location
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${identity.id}': {}
    }
  }
  properties: {
    environmentId: appEnvironment.id
    configuration: {
      ingress: {
        targetPort: 8080
        external: true
      }
      registries: [
        {
          server: '${azureContainerRegistry}.azurecr.io'
          identity: identity.id
        }
      ]
    }
    template: {
      containers: [
        {
          image: '${azureContainerRegistry}.azurecr.io/${azureContainerRegistryImage}:${azureContainerRegistryImageTag}'
          name: '${azureContainerName}'
          resources: {
            cpu: 1
            memory: '2Gi'
          }
        }
      ]
      scale: {
        minReplicas: 1
        maxReplicas: 1
      }
    }
  }
}

output location string = location
output environmentId string = appEnvironment.id

コンテナー アプリをデプロイする

次のコマンドを使用して、コンテナー アプリをデプロイします。

az deployment group create \
  --resource-group "$RESOURCE_GROUP" \
  --template-file "$BICEP_TEMPLATE" \
  --parameters environmentName="$CONTAINERAPPS_ENVIRONMENT" \
  logAnalyticsWorkspaceName="$LOG_ANALYTICS_WORKSPACE_NAME" \
  appInsightsName="$APP_INSIGHTS_NAME" \
  containerAppName="$CONTAINERAPP_NAME" \
  azureContainerRegistry="$REGISTRY_NAME" \
  azureContainerRegistryImage="$IMAGE_NAME" \
  azureContainerRegistryImageTag="$IMAGE_TAG" \
  azureContainerName="$CONTAINER_NAME" \
  acrPullDefinitionId="$ACR_PULL_DEFINITION_ID" \
  userAssignedIdentityName="$USER_ASSIGNED_IDENTITY_NAME" \
  location="$LOCATION"

このコマンドによって以下のものがデプロイされます。

  • Azure リソース グループ。
  • Container Apps 環境。
  • Container Apps 環境に関連付けられた Log Analytics ワークスペース。
  • 分散トレース用の Application Insights リソース。
  • ユーザー割り当てマネージド ID。
  • イメージを保存するためのコンテナー。
  • イメージに基づくコンテナー アプリ。

Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON format というエラーが発生した場合は、Bicep テンプレート ファイルに拡張子 .bicep が付いていることを確認してください。

その他のリソース

詳細については、次を参照してください。

次のステップ