Samouczek: kompilowanie i wdrażanie aplikacji w usłudze Azure Container Apps
W tym artykule pokazano, jak utworzyć i wdrożyć mikrousługę w usłudze Azure Container Apps z repozytorium źródłowego przy użyciu preferowanego języka programowania.
Jest to pierwszy samouczek z serii artykułów, które przeprowadzą Cię przez proces korzystania z podstawowych funkcji w usłudze Azure Container Apps. Pierwszym krokiem jest utworzenie usługi internetowego interfejsu API zaplecza, która zwraca statyczną kolekcję albumów muzycznych.
Uwaga
Możesz również skompilować i wdrożyć tę aplikację przy użyciu polecenia az containerapp up , postępując zgodnie z instrukcjami w przewodniku Szybki start: kompilowanie i wdrażanie aplikacji w usłudze Azure Container Apps z poziomu artykułu o repozytorium . Polecenie az containerapp up
to szybki i wygodny sposób kompilowania i wdrażania aplikacji w usłudze Azure Container Apps przy użyciu jednego polecenia. Nie zapewnia jednak tego samego poziomu dostosowywania aplikacji kontenera.
W następnym samouczku z serii skompiluje i wdrożysz aplikację internetową frontonu w usłudze Azure Container Apps.
Poniższy zrzut ekranu przedstawia dane wyjściowe z interfejsu API albumu wdrożonego w tym samouczku.
Wymagania wstępne
Do ukończenia tego projektu potrzebne są następujące elementy:
Wymaganie | Instrukcje |
---|---|
Konto platformy Azure | Jeśli go nie masz, utwórz bezpłatne konto. Aby kontynuować, musisz mieć uprawnienia administratora dostępu użytkowników lub właściciela subskrypcji platformy Azure. Upewnij się, że kontekst używa najbardziej restrykcyjnej roli. Aby uzyskać szczegółowe informacje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal i ról platformy Azure, rólfirmy Microsoft Entra i klasycznego administratora subskrypcji. |
Konto usługi GitHub | Zarejestruj się bezpłatnie. |
git | Instalowanie narzędzia git |
Interfejs wiersza polecenia platformy Azure | Zainstaluj interfejs wiersza polecenia platformy Azure. |
Wymaganie | Instrukcje |
---|---|
Konto platformy Azure | Jeśli go nie masz, utwórz bezpłatne konto. Aby kontynuować, musisz mieć uprawnienie Współautor lub Właściciel w subskrypcji platformy Azure. Aby uzyskać szczegółowe informacje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal . |
Konto usługi GitHub | Zarejestruj się bezpłatnie. |
git | Instalowanie narzędzia git |
Interfejs wiersza polecenia platformy Azure | Zainstaluj interfejs wiersza polecenia platformy Azure. |
Docker Desktop | Platforma Docker udostępnia instalatory, które konfigurują środowisko platformy Docker w systemach macOS, Windows i Linux. W wierszu polecenia wpisz , docker aby upewnić się, że platforma Docker jest uruchomiona. |
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
Tworzenie zmiennych środowiskowych
Teraz, gdy konfiguracja interfejsu wiersza polecenia platformy Azure została ukończona, możesz zdefiniować zmienne środowiskowe używane w tym artykule.
Zdefiniuj następujące zmienne w powłoce powłoki bash.
RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Przed uruchomieniem tego polecenia pamiętaj, aby zastąpić <YOUR_GITHUB_USERNAME>
ciąg nazwą użytkownika usługi GitHub.
Następnie zdefiniuj unikatową nazwę rejestru kontenerów.
ACR_NAME="acaalbums"$GITHUB_USERNAME
Przygotowywanie repozytorium GitHub
Przejdź do repozytorium dla preferowanego języka i rozwidlenia repozytorium.
Wybierz przycisk Rozwidlenie u góry repozytorium interfejsu API albumu, aby rozwidlić repozytorium na koncie.
Teraz możesz sklonować rozwidlenie przykładowego repozytorium.
Użyj następującego polecenia git, aby sklonować rozwidlenie repozytorium do folderu code-to-cloud :
git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud
Następnie zmień katalog na katalog główny sklonowanego repozytorium.
cd code-to-cloud/src
Tworzenie grupy zasobów platformy Azure
Utwórz grupę zasobów, aby zorganizować usługi związane z wdrożeniem aplikacji kontenera.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Tworzenie rejestru Azure Container Registry
Po utworzeniu obrazu kontenera interfejsu API albumu utwórz wystąpienie usługi Azure Container Registry (ACR) w grupie zasobów, aby je przechowywać.
az acr create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --name $ACR_NAME \ --sku Basic
Rejestr kontenerów musi zezwalać na tokeny odbiorców usługi Azure Resource Manager (ARM) na potrzeby uwierzytelniania w celu użycia 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 Azure Container Registry (ACR).
az acr config authentication-as-arm show --registry "$ACR_NAME"
Jeśli tokeny usługi ARM są dozwolone, polecenie zwraca następujące dane wyjściowe.
{ "status": "enabled" }
Jeśli parametr
status
madisabled
wartość , zezwól na tokeny usługi ARM za pomocą następującego polecenia.az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Aby uniknąć używania poświadczeń administracyjnych, ściąganie obrazów z repozytoriów prywatnych w usłudze Microsoft Azure Container Registry przy użyciu tożsamości zarządzanych na potrzeby uwierzytelniania. Jeśli to możliwe, użyj tożsamości zarządzanej przypisanej przez użytkownika do ściągania obrazów.
Utwórz tożsamość zarządzaną przypisaną przez użytkownika. Przed uruchomieniem następujących poleceń wybierz nazwę tożsamości zarządzanej i zastąp ciąg
\<PLACEHOLDER\>
nazwą .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)
Kompilowanie aplikacji
Za pomocą zadań usługi ACR można kompilować i wypychać obraz platformy Docker dla interfejsu API albumu bez lokalnego instalowania platformy Docker.
Tworzenie kontenera za pomocą usługi ACR
Uruchom następujące polecenie, aby zainicjować proces kompilacji i wypychania obrazu przy użyciu usługi ACR. Na .
końcu polecenia reprezentuje kontekst kompilacji platformy Docker, co oznacza, że to polecenie powinno być uruchamiane w folderze src , w którym znajduje się plik Dockerfile.
az acr build --registry $ACR_NAME --image $API_NAME .
Dane wyjściowe z az acr build
polecenia pokazują postęp przekazywania kodu źródłowego na platformę Azure oraz szczegóły docker build
operacji i docker push
.
Kompilowanie aplikacji
W poniższych krokach pokazano, jak utworzyć obraz kontenera lokalnie przy użyciu platformy Docker i wypchnąć obraz do nowego rejestru kontenerów.
Kompilowanie kontenera przy użyciu platformy Docker
Następujące polecenie tworzy obraz kontenera dla interfejsu API albumu i taguje go przy użyciu w pełni kwalifikowanej nazwy serwera logowania usługi ACR. Na .
końcu polecenia reprezentuje kontekst kompilacji platformy Docker, co oznacza, że to polecenie powinno być uruchamiane w folderze src , w którym znajduje się plik Dockerfile.
docker build --tag $ACR_NAME.azurecr.io/$API_NAME .
Wypychanie obrazu do rejestru kontenerów
Najpierw zaloguj się do usługi Azure Container Registry.
az acr login --name $ACR_NAME
Teraz wypchnij obraz do rejestru.
docker push $ACR_NAME.azurecr.io/$API_NAME
Tworzenie środowiska usługi Container Apps
Środowisko usługi Azure Container Apps działa jako bezpieczna granica wokół grupy aplikacji kontenera.
Utwórz środowisko Container Apps przy użyciu następującego polecenia.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Wdrażanie obrazu w aplikacji kontenera
Po utworzeniu środowiska możesz utworzyć i wdrożyć aplikację kontenera za az containerapp create
pomocą polecenia .
Utwórz i wdróż aplikację kontenera za pomocą następującego polecenia.
az containerapp create \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $ACR_NAME.azurecr.io/$API_NAME \
--target-port 8080 \
--ingress external \
--registry-server $ACR_NAME.azurecr.io \
--user-assigned "$IDENTITY_ID" \
--registry-identity "$IDENTITY_ID" \
--query properties.configuration.ingress.fqdn
Ustawiając wartość
--ingress
external
, aplikacja kontenera jest dostępna z publicznego Internetu.Parametr
target-port
ma8080
być zgodny z portem, na który kontener nasłuchuje żądań.query
Bez właściwości wywołanie metodyaz containerapp create
zwraca odpowiedź JSON zawierającą bogaty zestaw szczegółów dotyczących aplikacji. Dodanie parametru zapytania filtruje dane wyjściowe tylko do w pełni kwalifikowanej nazwy domeny aplikacji (FQDN).To polecenie dodaje
acrPull
rolę do tożsamości zarządzanej przypisanej przez użytkownika, aby umożliwić ściąganie obrazów z rejestru kontenerów.
Weryfikowanie wdrożenia
Skopiuj nazwę FQDN do przeglądarki internetowej. W przeglądarce internetowej przejdź do /albums
punktu końcowego nazwy FQDN.
Czyszczenie zasobów
Jeśli nie zamierzasz kontynuować pracy z samouczkiem Dotyczącym komunikacji między mikrousługami, możesz usunąć zasoby platformy Azure utworzone podczas tego przewodnika Szybki start. Uruchom następujące polecenie, aby usunąć grupę zasobów wraz ze wszystkimi zasobami utworzonymi w tym przewodniku Szybki start.
az group delete --name $RESOURCE_GROUP
Napiwek
Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.
Następne kroki
Ten przewodnik Szybki start to punkt wejścia zestawu progresywnych samouczków, które przedstawiają różne funkcje w usłudze Azure Container Apps. Kontynuuj, aby dowiedzieć się, jak włączyć komunikację z frontonu internetowego, który wywołuje interfejs API wdrożony w tym artykule.