Aracılığıyla paylaş


Yönetilen kimlikle Azure Container Apps görüntü çekme

Yönetici kimlik bilgilerinin kullanılmasını önlemek için kimlik doğrulaması için yönetilen kimlikleri kullanarak Microsoft Azure Container Registry'deki özel depolardan görüntü çekebilirsiniz.

Azure Container Registry ile kimlik doğrulaması yapmak için kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz.

  • Kullanıcı tarafından atanan yönetilen kimlikle, kimliği Azure Container Apps dışında oluşturur ve yönetirsiniz. Azure Container Apps dahil olmak üzere birden çok Azure kaynağına atanabilir.
  • Sistem tarafından atanan yönetilen kimlik ile kimlik, Azure Container Apps tarafından oluşturulur ve yönetilir. Kapsayıcı uygulamanıza bağlıdır ve uygulamanız silindiğinde silinir.
  • Mümkün olduğunda, görüntüleri çekmek için kullanıcı tarafından atanan yönetilen kimliği kullanmanız gerekir.

Kapsayıcı Uygulamaları, kapsayıcı başlatıldığında görüntünün yeni bir sürümünü denetler. Docker veya Kubernetes terminolojisinde, Container Apps her kapsayıcının görüntü çekme ilkesini olarak alwaysayarlar.

Bu makalede, kapsayıcı uygulamanızı özel Azure Container Registry depolarından görüntü çekmek üzere kullanıcı tarafından atanan ve sistem tarafından atanan yönetilen kimlikleri kullanacak şekilde yapılandırmak için Azure portalının nasıl kullanılacağı açıklanmaktadır.

Kullanıcı tarafından atanan yönetilen kimlik

Aşağıdaki adımlar, kapsayıcı uygulamanızı özel Azure Container Registry depolarından görüntü çekmek için kullanıcı tarafından atanan yönetilen kimliği kullanacak şekilde yapılandırma işlemini açıklar.

  1. Genel görüntü içeren bir kapsayıcı uygulaması oluşturun.
  2. Kullanıcı tarafından atanan yönetilen kimliği kapsayıcı uygulamasına ekleyin.
  3. Özel görüntü ve kullanıcı tarafından atanan yönetilen kimlikle bir kapsayıcı uygulaması düzeltmesi oluşturun.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı.

  • Çekmek istediğiniz görüntüyü içeren özel bir Azure Container Registry.

  • Azure Container Registry'nizin görüntüleri çekmek için yönetilen kimliği kullanabilmesi için kimlik doğrulaması için ARM hedef kitle belirteçlerine izin vermesi gerekir. ARM belirteçlerinin ACR'nize erişmesine izin verilip verilmediğini denetlemek için aşağıdaki komutu kullanın:

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

    ARM belirteçlerine izin verilmiyorsa, aşağıdaki komutla bunlara izin vekleyebilirsiniz:

    az acr config authentication-as-arm update -r <REGISTRY> --status enabled
    
  • Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun. Daha fazla bilgi için bkz . Kullanıcı tarafından atanan yönetilen kimlik oluşturma.

Kapsayıcı uygulaması oluşturma

Varsayılan hızlı başlangıç görüntüsüyle bir kapsayıcı uygulaması oluşturmak için aşağıdaki adımları kullanın.

  1. Portal Giriş sayfasına gidin.

  2. Üst arama çubuğunda Container Apps'i arayın.

  3. Arama sonuçlarında Kapsayıcı Uygulamaları'nı seçin.

  4. Oluştur düğmesini seçin.

  5. Temel Bilgiler sekmesinde aşağıdaki eylemleri gerçekleştirin.

    Ayar Eylem
    Abonelik Azure aboneliği seçin.
    Kaynak grubu Mevcut bir kaynak grubunu seçin ya da yeni bir tane oluşturun.
    Kapsayıcı uygulama adı Bir kapsayıcı uygulaması adı girin.
    Konum Bir konum seçin.
    Kapsayıcı Uygulama Ortamı Oluşturma Yeni bir ortam oluşturun veya var olan bir ortamı seçin.
  6. Kapsayıcı Uygulaması Oluştur sayfasının alt kısmındaki Gözden Geçir + Oluştur düğmesini seçin.

  7. Kapsayıcı Uygulaması Oluştur penceresinin en altındaki Oluştur düğmesini seçin.

Kapsayıcı uygulaması dağıtımının bitebilmesi için birkaç dakika bekleyin. Dağıtım tamamlandığında Kaynağa git'i seçin.

Kullanıcı tarafından atanan yönetilen kimliği ekleme

  1. Soldaki menüden Kimlik'i seçin.
  2. Kullanıcı tarafından atanan sekmesini seçin.
  3. Kullanıcı tarafından atanan yönetilen kimlik ekle düğmesini seçin.
  4. Aboneliğinizi seçin.
  5. Oluşturduğunuz kimliği seçin.
  6. Ekle'yi seçin.

Kapsayıcı uygulaması düzeltmesi oluşturma

Özel görüntü ve sistem tarafından atanan yönetilen kimlikle bir kapsayıcı uygulaması düzeltmesi oluşturun.

  1. Soldaki menüden Düzeltme Yönetimi'ni seçin.

  2. Yeni düzeltme oluştur'u seçin.

  3. Kapsayıcı Görüntüsü tablosundan kapsayıcı görüntüsünü seçin.

  4. Kapsayıcıyı düzenle iletişim kutusuna bilgileri girin.

    Alan Eylem
    Ad Kapsayıcı için bir ad girin.
    Görüntü kaynağı Azure Container Registry’yi seçin.
    Kimlik Doğrulaması Yönetilen Kimlik'i seçin.
    Kimlik Açılan menüden oluşturduğunuz kimliği seçin.
    Kapsayıcı Kayıt Defteri Açılan menüden kullanmak istediğiniz kayıt defterini seçin.
    Görsel Kullanmak istediğiniz resmin adını girin.
    Resim Etiketi Çekmek istediğiniz görüntünün adını ve etiketini girin.

    Kullanıcı tarafından atanan yönetilen kimliği giren Kapsayıcıyı düzenle iletişim kutusunun ekran görüntüsü.

    Not

    Azure Container Registry kayıt defterinizde yönetici kimlik bilgileri etkinleştirilmediyse, bir uyarı iletisi görüntülenir ve görüntü adını ve etiket bilgilerini el ile girmeniz gerekir.

  5. Kaydet'i seçin.

  6. Yeni düzeltme oluştur ve dağıt sayfasında Oluştur'u seçin.

Yeni bir düzeltme oluşturulur ve dağıtılır. Portal, rolü otomatik olarak kullanıcı tarafından atanan yönetilen kimliğe eklemeye acrpull çalışır. Rol eklenmiyorsa, el ile ekleyebilirsiniz.

Kapsayıcı uygulaması sayfasının Kimlik bölmesinden kimliği denetleyerek rolün eklendiğini doğrulayabilirsiniz.

  1. Soldaki menüden Kimlik'i seçin.
  2. Kullanıcı tarafından atanan sekmesini seçin.
  3. Kullanıcı tarafından atanan yönetilen kimliği seçin.
  4. Yönetilen kimlik kaynağı sayfasındaki menüden Azure rol atamaları'nı seçin.
  5. Rolün acrpull kullanıcı tarafından atanan yönetilen kimliğe atandığını doğrulayın.

Özel görüntüyle kapsayıcı uygulaması oluşturma

Genel görüntü içeren bir kapsayıcı uygulaması oluşturarak başlamak istemiyorsanız, aşağıdakileri de yapabilirsiniz.

  1. Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun.
  2. acrpull Rolü kullanıcı tarafından atanan yönetilen kimliğe ekleyin.
  3. Özel görüntü ve kullanıcı tarafından atanan yönetilen kimlik ile bir kapsayıcı uygulaması oluşturun.

Bu yöntem Kod Olarak Altyapı (IaC) senaryolarında tipiktir.

Kaynakları temizleme

Bu uygulamayı kullanmaya devam etmeyecekseniz, kaynak grubunu kaldırarak Azure Container Apps örneğini ve ilişkili tüm hizmetleri silebilirsiniz.

Uyarı

Kaynak grubu silindiğinde gruptaki tüm kaynaklar silinir. Grupta başka kaynaklarınız varsa, bunlar da silinir. Kaynakları korumak istiyorsanız kapsayıcı uygulaması örneğini ve kapsayıcı uygulaması ortamını silebilirsiniz.

  1. Genel Bakış bölümünden kaynak grubunuzu seçin.
  2. Kaynak grubuna Genel Bakış'ın üst kısmındaki Kaynak grubunu sil düğmesini seçin.
  3. Onay iletişim kutusuna kaynak grubu adını girin.
  4. Sil'i seçin. Kaynak grubunu silme işleminin tamamlanması birkaç dakika sürebilir.

Sistem tarafından atanan yönetilen kimlik

Azure portalında sistem tarafından atanan yönetilen kimliği yapılandırma yöntemi, kullanıcı tarafından atanan yönetilen kimliği yapılandırma yöntemiyle aynıdır. Tek fark, kullanıcı tarafından atanan yönetilen kimlik oluşturmanız gerekmeyecek olmasıdır. Bunun yerine, kapsayıcı uygulamasını oluşturduğunuzda sistem tarafından atanan yönetilen kimlik oluşturulur.

Azure portalında sistem tarafından atanan yönetilen kimliği yapılandırma yöntemi:

  1. Genel görüntü içeren bir kapsayıcı uygulaması oluşturun.
  2. Özel görüntü ve sistem tarafından atanan yönetilen kimlikle bir kapsayıcı uygulaması düzeltmesi oluşturun.

Önkoşullar

Kapsayıcı uygulaması oluşturma

Varsayılan hızlı başlangıç görüntüsüyle bir kapsayıcı uygulaması oluşturmak için bu adımları izleyin.

  1. Portal Giriş sayfasına gidin.

  2. Üst arama çubuğunda Container Apps'i arayın.

  3. Arama sonuçlarında Kapsayıcı Uygulamaları'nı seçin.

  4. Oluştur düğmesini seçin.

  5. Temel Bilgiler sekmesinde aşağıdaki eylemleri gerçekleştirin.

    Ayar Eylem
    Abonelik Azure aboneliği seçin.
    Kaynak grubu Mevcut bir kaynak grubunu seçin ya da yeni bir tane oluşturun.
    Kapsayıcı uygulama adı Bir kapsayıcı uygulaması adı girin.
    Konum Bir konum seçin.
    Kapsayıcı Uygulama Ortamı Oluşturma Yeni bir ortam oluşturun veya var olan bir ortamı seçin.
  6. Kapsayıcı Uygulaması Oluştur sayfasının alt kısmındaki Gözden Geçir + Oluştur düğmesini seçin.

  7. Kapsayıcı Uygulaması Oluştur sayfasının en altındaki Oluştur düğmesini seçin.

Kapsayıcı uygulaması dağıtımının bitebilmesi için birkaç dakika bekleyin. Dağıtım tamamlandığında Kaynağa git'i seçin.

Düzeltmeyi düzenleme ve dağıtma

Kapsayıcıyı düzenleyerek özel Azure Container Registry'nizdeki görüntüyü kullanın ve kimlik doğrulamasını sistem tarafından atanan kimliği kullanacak şekilde yapılandırın.

  1. Sol taraftaki menüden Kapsayıcılar.

  2. Düzenle ve dağıt'ı seçin.

  3. Listeden simple-hello-world-container kapsayıcısını seçin.

    Ayar Eylem
    Ad Kapsayıcı uygulaması adını girin.
    Görüntü kaynağı Azure Container Registry’yi seçin.
    Kimlik Doğrulaması Yönetilen kimlik öğesini seçin.
    Kimlik Sistem tarafından atanan'ı seçin.
    Kapsayıcı Kayıt Defteri Kayıt defteri adını girin.
    Görsel Resim adını girin.
    Resim etiketi Etiketini girin.

    Sistem tarafından atanan yönetilen kimlikle kapsayıcıyı düzenleme ekran görüntüsü.

    Not

    Azure Container Registry kayıt defterinizde yönetici kimlik bilgileri etkinleştirilmediyse, bir uyarı iletisi görüntülenir ve görüntü adını ve etiket bilgilerini el ile girmeniz gerekir.

  4. Sayfanın alt kısmındaki Kaydet'i seçin.

  5. Yeni düzeltme oluştur ve dağıt sayfasının alt kısmındaki Oluştur'u seçin

  6. Birkaç dakika sonra, yeni düzeltmeyi görmek için Düzeltme yönetimi sayfasında Yenile'yi seçin.

Yeni bir düzeltme oluşturulur ve dağıtılır. Portal, rolü otomatik olarak sistem tarafından atanan yönetilen kimliğe eklemeyi acrpull dener. Rol eklenmiyorsa, el ile ekleyebilirsiniz.

Kapsayıcı uygulaması sayfasının Kimlik bölmesinde kimliği denetleyerek rolün eklendiğini doğrulayabilirsiniz.

  1. Soldaki menüden Kimlik'i seçin.
  2. Sistem tarafından atanan sekmesini seçin.
  3. Azure rol atamaları'ı seçin.
  4. Rolün acrpull sistem tarafından atanan yönetilen kimliğe atandığını doğrulayın.

Kaynakları temizleme

Bu uygulamayı kullanmaya devam etmeyecekseniz, kaynak grubunu kaldırarak Azure Container Apps örneğini ve ilişkili tüm hizmetleri silebilirsiniz.

Uyarı

Kaynak grubu silindiğinde gruptaki tüm kaynaklar silinir. Grupta başka kaynaklarınız varsa, bunlar da silinir. Kaynakları korumak istiyorsanız kapsayıcı uygulaması örneğini ve kapsayıcı uygulaması ortamını silebilirsiniz.

  1. Genel Bakış bölümünden kaynak grubunuzu seçin.
  2. Kaynak grubuna Genel Bakış'ın üst kısmındaki Kaynak grubunu sil düğmesini seçin.
  3. Onay iletişim kutusuna kaynak grubu adını girin.
  4. Sil'i seçin. Kaynak grubunu silme işleminin tamamlanması birkaç dakika sürebilir.

Bu makalede, Azure CLI ve Azure PowerShell kullanarak özel bir Azure Container Registry deposundan görüntü çekmek üzere yönetilen kimlikleri kullanmak üzere kapsayıcı uygulamanızın nasıl yapılandırıldığı açıklanır.

Önkoşullar

Önkoşul Açıklama
Azure hesabı Etkin aboneliği olan bir Azure hesabı. Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
Azure CLI Azure CLI kullanıyorsanız yerel makinenize Azure CLI'yı yükleyin.
Azure PowerShell PowerShell kullanıyorsanız Azure PowerShell'i yerel makinenize yükleyin. komutunu Install-Module -Name Az.Appçalıştırarak Az.App modülünün en son sürümünün yüklendiğinden emin olun.
Azure Container Registry Çekmek istediğiniz görüntüyü içeren özel bir Azure Container Registry. Hızlı Başlangıç: Azure CLI veya Hızlı Başlangıç kullanarak özel kapsayıcı kayıt defteri oluşturma: Azure PowerShell kullanarak özel kapsayıcı kayıt defteri oluşturma

Ayarlama

CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

az login

CLI'nın en son sürümünü çalıştırdığınızdan emin olmak için yükseltme komutunu çalıştırın.

az upgrade

Ardından CLI için Azure Container Apps uzantısını yükleyin veya güncelleştirin.

Azure CLI'da komutları veya Azure PowerShell'deki modülden Az.App cmdlet'leri çalıştırdığınızda az containerapp eksik parametrelerle ilgili hatalar alırsanız, Azure Container Apps uzantısının en son sürümünü yüklediğinizden emin olun.

az extension add --name containerapp --upgrade

Not

Mayıs 2024'den itibaren Azure CLI uzantıları artık önizleme özelliklerini varsayılan olarak etkinleştirmez. Container Apps önizleme özelliklerine erişmek için ile --allow-preview trueContainer Apps uzantısını yükleyin.

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

Geçerli uzantı veya modül yüklendikten sonra ve Microsoft.OperationalInsights ad alanlarını kaydedinMicrosoft.App.

Not

Azure Container Apps kaynakları ad alanından Microsoft.Web ad alanına Microsoft.App geçirildi. Daha fazla ayrıntı için Microsoft.Web'den Mart 2022'de Microsoft.App ad alanı geçişi bölümüne bakın.

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

Ardından aşağıdaki ortam değişkenlerini ayarlayın. ile çevrelenen <> yer tutucuları değerlerinizle değiştirin.

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>"

Zaten bir kaynak grubunuz varsa bu adımı atlayın. Aksi takdirde bir kaynak grubu oluşturun.

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

Kapsayıcı uygulaması ortamı oluşturma

Ortam yoksa aşağıdaki komutu çalıştırın:

Ortamı oluşturmak için aşağıdaki komutu çalıştırın:

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

Kullanıcı tarafından atanan yönetilen kimliği yapılandırmak için sonraki bölüme geçin veya Sistem tarafından atanan yönetilen kimlik bölümüne atlayın.

Kullanıcı tarafından atanan yönetilen kimlik

Kullanıcı tarafından atanan yönetilen kimliği yapılandırmak için şu yordamı izleyin:

  1. Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun.
  2. PowerShell kullanıyorsanız, yönetilen kimliğe kayıt defteriniz için bir acrpull rol atayın. Azure CLI bu atamayı otomatik olarak yapar.
  3. Kullanıcı tarafından atanan yönetilen kimlikle kimliği doğrulanmış özel kayıt defterindeki görüntüyle bir kapsayıcı uygulaması oluşturun.

Kullanıcı tarafından atanan yönetilen kimlik oluşturma

Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun. Aşağıdaki komutu çalıştırmadan önce PLACEHOLDERS değerini yönetilen kimliğinizin adıyla değiştirin<.>

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

Kimliğin kaynak kimliğini alın.

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

Kapsayıcı uygulaması oluşturma

Kimlikle kimliği doğrulanmış özel kayıt defterinden görüntünüzle kapsayıcı uygulamanızı oluşturun.

Kimliğin kaynak kimliğini kopyalayarak aşağıdaki komuttaki <IDENTITY_ID> yer tutucularına yapıştırın. Görüntü etiketiniz değilse latest, 'latest' yerine etiketinizi yazın.

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"

Temizleme

Dikkat

Aşağıdaki komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu hızlı başlangıcın kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.

az group delete --name $RESOURCE_GROUP

Sistem tarafından atanan yönetilen kimlik

Sistem tarafından atanan bir kimliği yapılandırmak için şunları yapmanız gerekir:

  1. Genel görüntü içeren bir kapsayıcı uygulaması oluşturun.
  2. Kapsayıcı uygulamasına sistem tarafından atanan bir yönetilen kimlik atayın.
  3. Kapsayıcı uygulamasını özel görüntüyle güncelleştirin.

Kapsayıcı uygulaması oluşturma

Genel görüntü içeren bir kapsayıcı oluşturun.

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

Kapsayıcı uygulamasını güncelleştirme

Kapsayıcı uygulamasını özel kapsayıcı kayıt defterinizdeki görüntüyle güncelleştirin ve Azure Container Registry çekme işleminin kimliğini doğrulamak için sistem tarafından atanan bir kimlik ekleyin. Giriş, ölçek ve Dapr ayarları gibi kapsayıcı uygulamanız için gerekli olan diğer ayarları da ekleyebilirsiniz.

Kayıt defteri sunucusunu ayarlayın ve kapsayıcı uygulamasında sistem tarafından atanan yönetilen kimliği açın.

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"

Temizleme

Dikkat

Aşağıdaki komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu hızlı başlangıcın kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.

az group delete --name $RESOURCE_GROUP

Bu makalede, kapsayıcı uygulamanızı özel Azure Container Registry depolarından görüntü çekmek üzere kullanıcı tarafından atanan yönetilen kimlikleri kullanacak şekilde yapılandırmak için Bicep şablonunun nasıl kullanılacağı açıklanmaktadır.

Önkoşullar

Ayarlama

CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

az login

CLI'nın en son sürümünü çalıştırdığınızdan emin olmak için yükseltme komutunu çalıştırın.

az upgrade

Ardından CLI için Azure Container Apps uzantısını yükleyin veya güncelleştirin.

Azure CLI'da komutları veya Azure PowerShell'deki modülden Az.App cmdlet'leri çalıştırdığınızda az containerapp eksik parametrelerle ilgili hatalar alırsanız, Azure Container Apps uzantısının en son sürümünü yüklediğinizden emin olun.

az extension add --name containerapp --upgrade

Not

Mayıs 2024'den itibaren Azure CLI uzantıları artık önizleme özelliklerini varsayılan olarak etkinleştirmez. Container Apps önizleme özelliklerine erişmek için ile --allow-preview trueContainer Apps uzantısını yükleyin.

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

Geçerli uzantı veya modül yüklendikten sonra ve Microsoft.OperationalInsights ad alanlarını kaydedinMicrosoft.App.

Not

Azure Container Apps kaynakları ad alanından Microsoft.Web ad alanına Microsoft.App geçirildi. Daha fazla ayrıntı için Microsoft.Web'den Mart 2022'de Microsoft.App ad alanı geçişi bölümüne bakın.

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

Bicep'i yükleme

Bicep yüklü değilse, aşağıdaki gibi yükleyebilirsiniz.

az bicep install

Bicep yüklüyse en son sürüme sahip olduğunuzdan emin olun.

az bicep upgrade

Daha fazla bilgi için bkz . Bicep'i Yükleme.

Ortam değişkenlerini belirleme

Ardından aşağıdaki ortam değişkenlerini ayarlayın. ile çevrelenen <> yer tutucuları değerlerinizle değiştirin.

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"

Rol, AcrPull kullanıcı tarafından atanan yönetilen kimliğinize görüntüyü kayıt defterinden çekme izni verir.

Bicep şablonu

Aşağıdaki Bicep şablonunu kopyalayın ve uzantısıyla .bicepbir dosya olarak kaydedin.

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

Kapsayıcı uygulamasını dağıtma

Kapsayıcı uygulamanızı aşağıdaki komutla dağıtın.

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"

Bu komut aşağıdakileri dağıtır.

  • Bir Azure kaynak grubu.
  • Container Apps ortamı.
  • Container Apps ortamıyla ilişkilendirilmiş bir Log Analytics çalışma alanı.
  • Dağıtılmış izleme için bir Application Insights kaynağı.
  • Kullanıcı tarafından atanan yönetilen kimlik.
  • Görüntüyü depolamak için bir kapsayıcı.
  • Görüntüyü temel alan bir kapsayıcı uygulaması.

hatasını Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON formatalırsanız, Bicep şablon dosyanızda uzantısının .bicepolduğundan emin olun.

Ek kaynaklar

Daha fazla bilgi için aşağıdakilere bakın.

Sonraki adımlar