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 always
ayarlar.
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.
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.
- Genel görüntü içeren bir kapsayıcı uygulaması oluşturun.
- Kullanıcı tarafından atanan yönetilen kimliği kapsayıcı uygulamasına ekleyin.
- Özel görüntü ve kullanıcı tarafından atanan yönetilen kimlikle bir kapsayıcı uygulaması düzeltmesi oluşturun.
Etkin aboneliği olan bir Azure hesabı.
- Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
Ç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.
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.
Portal Giriş sayfasına gidin.
Üst arama çubuğunda Container Apps'i arayın.
Arama sonuçlarında Kapsayıcı Uygulamaları'nı seçin.
Oluştur düğmesini seçin.
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. Kapsayıcı Uygulaması Oluştur sayfasının alt kısmındaki Gözden Geçir + Oluştur düğmesini seçin.
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.
- Soldaki menüden Kimlik'i seçin.
- Kullanıcı tarafından atanan sekmesini seçin.
- Kullanıcı tarafından atanan yönetilen kimlik ekle düğmesini seçin.
- Aboneliğinizi seçin.
- Oluşturduğunuz kimliği seçin.
- Ekle'yi seçin.
Özel görüntü ve sistem tarafından atanan yönetilen kimlikle bir kapsayıcı uygulaması düzeltmesi oluşturun.
Soldaki menüden Düzeltme Yönetimi'ni seçin.
Yeni düzeltme oluştur'u seçin.
Kapsayıcı Görüntüsü tablosundan kapsayıcı görüntüsünü seçin.
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. 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.
Kaydet'i seçin.
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.
- Soldaki menüden Kimlik'i seçin.
- Kullanıcı tarafından atanan sekmesini seçin.
- Kullanıcı tarafından atanan yönetilen kimliği seçin.
- Yönetilen kimlik kaynağı sayfasındaki menüden Azure rol atamaları'nı seçin.
- Rolün
acrpull
kullanıcı tarafından atanan yönetilen kimliğe atandığını doğrulayın.
Genel görüntü içeren bir kapsayıcı uygulaması oluşturarak başlamak istemiyorsanız, aşağıdakileri de yapabilirsiniz.
- Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun.
acrpull
Rolü kullanıcı tarafından atanan yönetilen kimliğe ekleyin.- Ö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.
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.
- Genel Bakış bölümünden kaynak grubunuzu seçin.
- Kaynak grubuna Genel Bakış'ın üst kısmındaki Kaynak grubunu sil düğmesini seçin.
- Onay iletişim kutusuna kaynak grubu adını girin.
- Sil'i seçin. Kaynak grubunu silme işleminin tamamlanması birkaç dakika sürebilir.
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:
- Genel görüntü içeren bir kapsayıcı uygulaması oluşturun.
- Özel görüntü ve sistem tarafından atanan yönetilen kimlikle bir kapsayıcı uygulaması düzeltmesi oluşturun.
- Etkin aboneliği olan bir Azure hesabı.
- Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
- Çekmek istediğiniz görüntüyü içeren özel bir Azure Container Registry. Bkz. Özel Azure Container Registry 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.
Portal Giriş sayfasına gidin.
Üst arama çubuğunda Container Apps'i arayın.
Arama sonuçlarında Kapsayıcı Uygulamaları'nı seçin.
Oluştur düğmesini seçin.
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. Dağıtım kaynağı Bu ayarı Kapsayıcı görüntüsü olarak bırakın. Bölge Bölge seçin. Container Apps Ortamı Mevcut bir ortamı seçin veya Yeni oluştur'u seçin. Daha fazla bilgi için bkz. Azure Container Apps ortamları İleri: Kapsayıcı'ya >tıklayın.
Kapsayıcı sekmesinde Hızlı başlangıç görüntüsünü kullan'ı etkinleştirin. Hızlı Başlangıç görüntüsünü Basit merhaba dünya kapsayıcısı olarak bırakın.
Kapsayıcı Uygulaması Oluştur sayfasının alt kısmındaki Gözden Geçir + Oluştur düğmesini seçin.
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.
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.
Uygulama'da Kapsayıcılar'ı seçin.
Kapsayıcılar sayfasında Düzenle ve dağıt'ı seçin.
Listeden simple-hello-world-container kapsayıcısını seçin.
Kapsayıcıyı düzenle sayfasında aşağıdaki eylemleri gerçekleştirin.
Ayar Eylem Ad Kapsayıcı uygulaması adını girin. Görüntü kaynağı Azure Container Registry’yi seçin. Abonelik Azure aboneliği seçin. Kapsayıcı Kayıt Defteri Kapsayıcı kayıt defterinizi seçin. Görsel Resim adını girin. Resim etiketi Görüntü etiketini girin. Kimlik doğrulaması türü Yönetilen kimlik öğesini seçin. Yönetilen kimlik Sistem tarafından atanan'ı seçin. Sayfanın alt kısmındaki Kaydet'i seçin.
Yeni düzeltme oluştur ve dağıt sayfasının alt kısmındaki Oluştur'u seçin
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.
- Soldaki menüden Kimlik'i seçin.
- Sistem tarafından atanan sekmesini seçin.
- Azure rol atamaları'ı seçin.
- Rolün
acrpull
sistem tarafından atanan yönetilen kimliğe atandığını doğrulayın.
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.
- Genel Bakış bölümünden kaynak grubunuzu seçin.
- Kaynak grubuna Genel Bakış'ın üst kısmındaki Kaynak grubunu sil düğmesini seçin.
- Onay iletişim kutusuna kaynak grubu adını girin.
- 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ş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 |
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 true
Container 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
.
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
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 kimliği yapılandırmak için şu yordamı izleyin:
- Kullanıcı tarafından atanmış bir yönetilen kimlik oluşturun.
- 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. - 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 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 \
--output tsv)
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"
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 bir kimliği yapılandırmak için şunları yapmanız gerekir:
- Genel görüntü içeren bir kapsayıcı uygulaması oluşturun.
- Kapsayıcı uygulamasına sistem tarafından atanan bir yönetilen kimlik atayın.
- Kapsayıcı uygulamasını özel görüntüyle güncelleştirin.
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ı ö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"
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.
- Etkin aboneliği olan bir Azure hesabı.
- Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
- Azure CLI kullanıyorsanız yerel makinenize Azure CLI'yı yükleyin.
- 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. - Çekmek istediğiniz görüntüyü içeren özel bir Azure Container Registry. Kapsayıcı kayıt defteri oluşturmak ve bu kayıt defterine görüntü göndermek için bkz . Hızlı Başlangıç: Azure CLI kullanarak özel kapsayıcı kayıt defteri oluşturma veya Hızlı Başlangıç: Azure PowerShell kullanarak özel kapsayıcı kayıt defteri oluşturma
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 true
Container 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
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
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.
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.
Aşağıdaki Bicep şablonunu kopyalayın ve uzantısıyla .bicep
bir 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ı 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 format
alırsanız, Bicep şablon dosyanızda uzantısının .bicep
olduğundan emin olun.
Daha fazla bilgi için aşağıdakilere bakın.