Ściąganie obrazu usługi Azure Container Apps z tożsamością zarządzaną
Obrazy można ściągać z repozytoriów prywatnych w usłudze Microsoft Azure Container Registry przy użyciu tożsamości zarządzanych do uwierzytelniania, aby uniknąć użycia poświadczeń administracyjnych.
Do uwierzytelniania w usłudze Azure Container Registry można użyć przypisanej przez użytkownika lub przypisanej przez system tożsamości zarządzanej.
- Przy użyciu tożsamości zarządzanej przypisanej przez użytkownika tworzysz tożsamość poza usługą Azure Container Apps i zarządzasz nią. Można go przypisać do wielu zasobów platformy Azure, w tym do usługi Azure Container Apps.
- W przypadku tożsamości zarządzanej przypisanej przez system tożsamość jest tworzona i zarządzana przez usługę Azure Container Apps. Jest ona powiązana z aplikacją kontenera i jest usuwana po usunięciu aplikacji.
- Jeśli to możliwe, należy użyć tożsamości zarządzanej przypisanej przez użytkownika do ściągania obrazów.
Usługa Container Apps sprawdza nową wersję obrazu przy każdym uruchomieniu kontenera. W terminologii platformy Docker lub Kubernetes usługa Container Apps ustawia zasady ściągania obrazów każdego kontenera na always
wartość .
W tym artykule opisano, jak za pomocą witryny Azure Portal skonfigurować aplikację kontenera do używania tożsamości zarządzanych przypisanych przez użytkownika i przypisanych przez system do ściągania obrazów z prywatnych repozytoriów usługi Azure Container Registry.
Tożsamość zarządzana przypisana przez użytkownika
W poniższych krokach opisano proces konfigurowania aplikacji kontenera w celu używania tożsamości zarządzanej przypisanej przez użytkownika do ściągania obrazów z prywatnych repozytoriów usługi Azure Container Registry.
- Utwórz aplikację kontenera z publicznym obrazem.
- Dodaj tożsamość zarządzaną przypisaną przez użytkownika do aplikacji kontenera.
- Utwórz poprawkę aplikacji kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez użytkownika.
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
Prywatna usługa Azure Container Registry zawierająca obraz, który chcesz ściągnąć.
Usługa Azure Container Registry musi zezwalać na tokeny odbiorców usługi ARM na potrzeby uwierzytelniania w celu używania tożsamości zarządzanej do ściągania obrazów. Użyj następującego polecenia, aby sprawdzić, czy tokeny usługi ARM mogą uzyskiwać dostęp do usługi ACR:
az acr config authentication-as-arm show -r <REGISTRY>
Jeśli tokeny usługi ARM są niedozwolone, możesz zezwolić na nie za pomocą następującego polecenia:
az acr config authentication-as-arm update -r <REGISTRY> --status enabled
Utwórz tożsamość zarządzaną przypisaną przez użytkownika. Aby uzyskać więcej informacji, zobacz Tworzenie tożsamości zarządzanej przypisanej przez użytkownika.
Tworzenie aplikacji kontenera
Wykonaj poniższe kroki, aby utworzyć aplikację kontenera z domyślnym obrazem szybkiego startu.
Przejdź do strony głównej portalu.
Wyszukaj pozycję Container Apps na górnym pasku wyszukiwania.
Wybierz pozycję Container Apps w wynikach wyszukiwania.
Zaznacz przycisk Utwórz.
Na karcie Podstawy wykonaj następujące czynności.
Ustawienie Akcja Subskrypcja Wybierz subskrypcję platformy Azure. Grupa zasobów: Wybierz istniejącą grupę zasobów lub utwórz nową. Nazwa aplikacji kontenera Wprowadź nazwę aplikacji kontenera. Lokalizacja Wybierz lokalizację. Tworzenie środowiska aplikacji kontenera Utwórz nowe lub wybierz istniejące środowisko. Wybierz przycisk Przejrzyj i utwórz w dolnej części strony Tworzenie aplikacji kontenera.
Wybierz przycisk Utwórz w dolnej części okna Tworzenie aplikacji kontenera.
Poczekaj kilka minut na zakończenie wdrażania aplikacji kontenera. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Dodawanie tożsamości zarządzanej przypisanej przez użytkownika
- Wybierz pozycję Tożsamość z menu po lewej stronie.
- Wybierz kartę Użytkownik przypisany .
- Wybierz przycisk Dodaj tożsamość zarządzaną przypisaną przez użytkownika.
- Wybierz subskrypcję.
- Wybierz utworzoną tożsamość.
- Wybierz Dodaj.
Tworzenie poprawki aplikacji kontenera
Utwórz poprawkę aplikacji kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez system.
Wybierz pozycję Zarządzanie poprawkami z menu po lewej stronie.
Wybierz pozycję Utwórz nową poprawkę.
Wybierz obraz kontenera z tabeli Obraz kontenera .
Wprowadź informacje w oknie dialogowym Edytowanie kontenera .
Pole Akcja Nazwa/nazwisko Wprowadź nazwę kontenera. Źródło obrazu Wybierz pozycję Azure Container Registry. Authentication Wybierz pozycję Tożsamość zarządzana. Tożsamość Wybierz tożsamość utworzoną z menu rozwijanego. Rejestr Wybierz rejestr, którego chcesz użyć z menu rozwijanego. Obraz Wprowadź nazwę obrazu, którego chcesz użyć. Tag obrazu Wprowadź nazwę i tag obrazu, który chcesz ściągnąć. Uwaga
Jeśli poświadczenia administracyjne nie są włączone w rejestrze usługi Azure Container Registry, zostanie wyświetlony komunikat ostrzegawczy i musisz ręcznie wprowadzić nazwę obrazu i informacje o tagu.
Wybierz pozycję Zapisz.
Wybierz pozycję Utwórz na stronie Utwórz i wdróż nową poprawkę.
Zostanie utworzona i wdrożona nowa poprawka. Portal automatycznie podejmie próbę dodania acrpull
roli do tożsamości zarządzanej przypisanej przez użytkownika. Jeśli rola nie zostanie dodana, możesz dodać ją ręcznie.
Możesz sprawdzić, czy rola została dodana, sprawdzając tożsamość w okienku Tożsamość na stronie aplikacji kontenera.
- Wybierz pozycję Tożsamość z menu po lewej stronie.
- Wybierz kartę Użytkownik przypisany .
- Wybierz tożsamość zarządzaną przypisaną przez użytkownika.
- Wybierz pozycję Przypisania ról platformy Azure z menu na stronie zasobu tożsamości zarządzanej.
- Sprawdź, czy rola jest przypisana
acrpull
do tożsamości zarządzanej przypisanej przez użytkownika.
Tworzenie aplikacji kontenera z obrazem prywatnym
Jeśli nie chcesz zacząć od utworzenia aplikacji kontenera z publicznym obrazem, możesz również wykonać następujące czynności.
- Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
acrpull
Dodaj rolę do tożsamości zarządzanej przypisanej przez użytkownika.- Utwórz aplikację kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez użytkownika.
Ta metoda jest typowa w scenariuszach infrastruktury jako kodu (IaC).
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć wystąpienie usługi Azure Container Apps i wszystkie skojarzone usługi, usuwając grupę zasobów.
Ostrzeżenie
Usunięcie grupy zasobów spowoduje usunięcie wszystkich zasobów w grupie. Jeśli masz inne zasoby w grupie, zostaną one również usunięte. Jeśli chcesz zachować zasoby, możesz usunąć wystąpienie aplikacji kontenera i środowisko aplikacji kontenera.
- Wybierz grupę zasobów w sekcji Przegląd .
- Wybierz przycisk Usuń grupę zasobów w górnej części grupy zasobów Przegląd.
- Wprowadź nazwę grupy zasobów w oknie dialogowym potwierdzenia.
- Wybierz Usuń. Proces usuwania grupy zasobów może potrwać kilka minut.
Tożsamość zarządzana przypisana przez system
Metoda konfigurowania tożsamości zarządzanej przypisanej przez system w witrynie Azure Portal jest taka sama jak konfigurowanie tożsamości zarządzanej przypisanej przez użytkownika. Jedyną różnicą jest to, że nie musisz tworzyć tożsamości zarządzanej przypisanej przez użytkownika. Zamiast tego tożsamość zarządzana przypisana przez system jest tworzona podczas tworzenia aplikacji kontenera.
Metoda konfigurowania tożsamości zarządzanej przypisanej przez system w witrynie Azure Portal to:
- Utwórz aplikację kontenera z publicznym obrazem.
- Utwórz poprawkę aplikacji kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez system.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
- Prywatna usługa Azure Container Registry zawierająca obraz, który chcesz ściągnąć. Zobacz Create a private Azure Container Registry (Tworzenie prywatnego rejestru kontenerów platformy Azure).
Tworzenie aplikacji kontenera
Wykonaj następujące kroki, aby utworzyć aplikację kontenera z domyślnym obrazem szybkiego startu.
Przejdź do strony głównej portalu.
Wyszukaj pozycję Container Apps na górnym pasku wyszukiwania.
Wybierz pozycję Container Apps w wynikach wyszukiwania.
Zaznacz przycisk Utwórz.
Na karcie Podstawy wykonaj następujące czynności.
Ustawienie Akcja Subskrypcja Wybierz subskrypcję platformy Azure. Grupa zasobów: Wybierz istniejącą grupę zasobów lub utwórz nową. Nazwa aplikacji kontenera Wprowadź nazwę aplikacji kontenera. Źródło wdrożenia Pozostaw ten zestaw na wartość Obraz kontenera. Region Wybierz region. Środowisko usługi Container Apps Wybierz istniejące środowisko lub wybierz pozycję Utwórz nowe. Aby uzyskać więcej informacji, zobacz Środowiska usługi Azure Container Apps Wybierz pozycję Dalej: Kontener >.
Na karcie Kontener włącz pozycję Użyj obrazu szybkiego startu. Pozostaw pozycję Obraz Szybkiego startu ustawiony na prosty kontener hello world.
Wybierz przycisk Przejrzyj i utwórz w dolnej części strony Tworzenie aplikacji kontenera.
Wybierz przycisk Utwórz w dolnej części strony Tworzenie aplikacji kontenera.
Poczekaj kilka minut na zakończenie wdrażania aplikacji kontenera. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Edytowanie i wdrażanie poprawki
Zmodyfikuj kontener, aby używać obrazu z prywatnego rejestru Azure Container Registry, i skonfiguruj uwierzytelnianie do używania tożsamości przypisanej przez system.
W obszarze Aplikacja wybierz pozycję Kontenery.
Na stronie Kontenery wybierz pozycję Edytuj i wdróż.
Wybierz kontener simple-hello-world-container z listy.
Na stronie Edytowanie kontenera wykonaj następujące czynności.
Ustawienie Akcja Nazwa/nazwisko Wprowadź nazwę aplikacji kontenera. Źródło obrazu Wybierz pozycję Azure Container Registry. Subskrypcja Wybierz subskrypcję platformy Azure. Rejestr Wybierz rejestr kontenerów. Obraz Wprowadź nazwę obrazu. Tag obrazu Wprowadź tag obrazu. Authentication type (Typ uwierzytelniania) Wybierz pozycję Tożsamość zarządzana. Tożsamość zarządzana Wybierz pozycję Przypisany system. Wybierz pozycję Zapisz w dolnej części strony.
Wybierz pozycję Utwórz w dolnej części strony Tworzenie i wdrażanie nowej poprawki
Po kilku minutach wybierz pozycję Odśwież na stronie zarządzanie poprawkami , aby wyświetlić nową wersję.
Zostanie utworzona i wdrożona nowa poprawka. Portal automatycznie podejmie próbę dodania acrpull
roli do tożsamości zarządzanej przypisanej przez system. Jeśli rola nie zostanie dodana, możesz dodać ją ręcznie.
Możesz sprawdzić, czy rola została dodana, sprawdzając tożsamość w okienku Tożsamość na stronie aplikacji kontenera.
- Wybierz pozycję Tożsamość z menu po lewej stronie.
- Wybierz kartę Przypisane przez system.
- Wybierz pozycję Przypisania ról platformy Azure.
- Sprawdź, czy rola jest przypisana
acrpull
do tożsamości zarządzanej przypisanej przez system.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć wystąpienie usługi Azure Container Apps i wszystkie skojarzone usługi, usuwając grupę zasobów.
Ostrzeżenie
Usunięcie grupy zasobów spowoduje usunięcie wszystkich zasobów w grupie. Jeśli masz inne zasoby w grupie, zostaną one również usunięte. Jeśli chcesz zachować zasoby, możesz usunąć wystąpienie aplikacji kontenera i środowisko aplikacji kontenera.
- Wybierz grupę zasobów w sekcji Przegląd .
- Wybierz przycisk Usuń grupę zasobów w górnej części grupy zasobów Przegląd.
- Wprowadź nazwę grupy zasobów w oknie dialogowym potwierdzenia.
- Wybierz Usuń. Proces usuwania grupy zasobów może potrwać kilka minut.
W tym artykule opisano sposób konfigurowania aplikacji kontenera w celu używania tożsamości zarządzanych do ściągania obrazów z prywatnego repozytorium usługi Azure Container Registry przy użyciu interfejsu wiersza polecenia platformy Azure i programu Azure PowerShell.
Wymagania wstępne
Wymaganie wstępne | opis |
---|---|
Konto platformy Azure | Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta, możesz je utworzyć teraz za darmo. |
Interfejs wiersza polecenia platformy Azure | Jeśli używasz interfejsu wiersza polecenia platformy Azure, zainstaluj interfejs wiersza polecenia platformy Azure na komputerze lokalnym. |
Azure PowerShell | W przypadku korzystania z programu PowerShell zainstaluj program Azure PowerShell na komputerze lokalnym. Upewnij się, że zainstalowano najnowszą wersję modułu Az.App, uruchamiając polecenie Install-Module -Name Az.App . |
Azure Container Registry | Prywatna usługa Azure Container Registry zawierająca obraz, który chcesz ściągnąć. Szybki start: tworzenie prywatnego rejestru kontenerów przy użyciu interfejsu wiersza polecenia platformy Azure lub szybkiego startu: tworzenie prywatnego rejestru kontenerów przy użyciu programu Azure PowerShell |
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure lub poleceniach cmdlet z modułu Az.App
w programie Azure PowerShell wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Następnie ustaw następujące zmienne środowiskowe. Zastąp symbole zastępcze otoczone <>
wartościami.
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>"
Jeśli masz już grupę zasobów, pomiń ten krok. W przeciwnym razie utwórz grupę zasobów.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Tworzenie środowiska aplikacji kontenera
Jeśli środowisko nie istnieje, uruchom następujące polecenie:
Aby utworzyć środowisko, uruchom następujące polecenie:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Przejdź do następnej sekcji, aby skonfigurować tożsamość zarządzaną przypisaną przez użytkownika lub przejść do sekcji Tożsamość zarządzana przypisana przez system.
Tożsamość zarządzana przypisana przez użytkownika
Postępuj zgodnie z tą procedurą, aby skonfigurować tożsamość zarządzaną przypisaną przez użytkownika:
- Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
- Jeśli używasz programu PowerShell, przypisz
acrpull
rolę rejestru do tożsamości zarządzanej. Interfejs wiersza polecenia platformy Azure automatycznie wykonuje to przypisanie. - Utwórz aplikację kontenera z obrazem z rejestru prywatnego uwierzytelnionego przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Utwórz tożsamość zarządzaną przypisaną przez użytkownika. Przed uruchomieniem następującego polecenia zastąp <symbole> ZASTĘPCZE nazwą tożsamości zarządzanej.
IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP
Pobierz identyfikator zasobu tożsamości.
IDENTITY_ID=$(az identity show \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP \
--query id \
--output tsv)
Tworzenie aplikacji kontenera
Utwórz aplikację kontenera przy użyciu obrazu z rejestru prywatnego uwierzytelnionego przy użyciu tożsamości.
Skopiuj identyfikator zasobu tożsamości, aby wkleić go do <symboli zastępczych IDENTITY_ID> w poniższym poleceniu. Jeśli tag obrazu nie latest
ma wartości , zastąp ciąg "latest" tagiem.
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"
Czyszczenie
Uwaga
Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika Szybki start istnieją w określonej grupie zasobów, zostaną również usunięte.
az group delete --name $RESOURCE_GROUP
Tożsamość zarządzana przypisana przez system
Aby skonfigurować tożsamość przypisaną przez system, musisz:
- Utwórz aplikację kontenera z publicznym obrazem.
- Przypisz tożsamość zarządzaną przypisaną przez system do aplikacji kontenera.
- Zaktualizuj aplikację kontenera przy użyciu obrazu prywatnego.
Tworzenie aplikacji kontenera
Utwórz kontener z publicznym obrazem.
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
Aktualizowanie aplikacji kontenera
Zaktualizuj aplikację kontenera przy użyciu obrazu z prywatnego rejestru kontenerów i dodaj tożsamość przypisaną przez system, aby uwierzytelnić ściąganie usługi Azure Container Registry. Możesz również uwzględnić inne ustawienia niezbędne dla aplikacji kontenera, takie jak ustawienia ruchu przychodzącego, skalowania i języka Dapr.
Ustaw serwer rejestru i włącz tożsamość zarządzaną przypisaną przez system w aplikacji kontenera.
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"
Czyszczenie
Uwaga
Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika Szybki start istnieją w określonej grupie zasobów, zostaną również usunięte.
az group delete --name $RESOURCE_GROUP
W tym artykule opisano sposób używania szablonu Bicep do konfigurowania aplikacji kontenera do używania tożsamości zarządzanych przypisanych przez użytkownika do ściągania obrazów z prywatnych repozytoriów usługi Azure Container Registry.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją.
- Jeśli nie masz konta, możesz je utworzyć teraz za darmo.
- Jeśli używasz interfejsu wiersza polecenia platformy Azure, zainstaluj interfejs wiersza polecenia platformy Azure na komputerze lokalnym.
- W przypadku korzystania z programu PowerShell zainstaluj program Azure PowerShell na komputerze lokalnym. Upewnij się, że zainstalowano najnowszą wersję modułu Az.App, uruchamiając polecenie
Install-Module -Name Az.App
. - Prywatna usługa Azure Container Registry zawierająca obraz, który chcesz ściągnąć. Aby utworzyć rejestr kontenerów i wypchnąć do niego obraz, zobacz Szybki start: tworzenie prywatnego rejestru kontenerów przy użyciu interfejsu wiersza polecenia platformy Azure lub Szybki start: tworzenie prywatnego rejestru kontenerów przy użyciu programu Azure PowerShell
Ustawienia
Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.
az upgrade
Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure lub poleceniach cmdlet z modułu Az.App
w programie Azure PowerShell wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Instalowanie aplikacji Bicep
Jeśli nie masz zainstalowanego narzędzia Bicep, możesz go zainstalować w następujący sposób.
az bicep install
Jeśli masz zainstalowany Bicep, upewnij się, że masz najnowszą wersję.
az bicep upgrade
Aby uzyskać więcej informacji, zobacz Instalowanie Bicep.
Ustawianie zmiennych środowiskowych
Następnie ustaw następujące zmienne środowiskowe. Zastąp symbole zastępcze otoczone <>
wartościami.
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"
Rola AcrPull
przyznaje przypisanej przez użytkownika tożsamość zarządzaną uprawnienia do ściągania obrazu z rejestru.
Szablon Bicep
Skopiuj następujący szablon Bicep i zapisz go jako plik z rozszerzeniem .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
Wdrażanie aplikacji kontenera
Wdróż aplikację kontenera za pomocą następującego polecenia.
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}"
To polecenie wdraża następujące polecenie.
- Grupa zasobów platformy Azure.
- Środowisko usługi Container Apps.
- Obszar roboczy usługi Log Analytics skojarzony ze środowiskiem Container Apps.
- Zasób usługi Application Insights do śledzenia rozproszonego.
- Tożsamość zarządzana przypisana przez użytkownika.
- Kontener do przechowywania obrazu.
- Aplikacja kontenera oparta na obrazie.
Jeśli wystąpi błąd Failed to parse '<YOUR_BICEP_FILE_NAME>', please check whether it is a valid JSON format
, upewnij się, że plik szablonu Bicep ma rozszerzenie .bicep
.
Dodatkowe zasoby
Aby uzyskać więcej informacji, zobacz następujące informacje.