Udostępnij za pośrednictwem


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.

Zrzut ekranu przedstawiający odpowiedź z punktu końcowego interfejsu API albumów.

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

  1. 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
    
  2. 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 ma disabledwartość , 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.

  1. 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
    
  2. 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 ma 8080 być zgodny z portem, na który kontener nasłuchuje żądań.

  • query Bez właściwości wywołanie metody az 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.

Zrzut ekranu przedstawiający odpowiedź z punktu końcowego interfejsu API albumów.

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.