Udostępnij za pomocą


Samouczek: aktualizowanie aplikacji kontenera wdrożonej na podstawie kodu źródłowego

W tym artykule pokazano, jak zaktualizować aplikację kontenera utworzoną w poprzednim artykule Build and deploy your source code to Azure Container Apps (Kompilowanie i wdrażanie kodu źródłowego w usłudze Azure Container Apps).

Jeśli nie wykonano kroków opisanych w poprzednim artykule, zatrzymaj się tutaj i wróć do tego artykułu po wykonaniu wszystkich kroków.

W tym samouczku wykonasz następujące elementy:

  • Wprowadź zmianę kodu w aplikacji.
  • Wypchnij zmiany do rejestru kontenerów przy użyciu nowego tagu.
  • Wyświetl zaktualizowaną aplikację w przeglądarce.
  • Wykonaj zapytanie względem strumienia dziennika, aby wyświetlić zarejestrowane komunikaty.

Wymagania wstępne

Do ukończenia tego projektu potrzebne są narzędzia, zasoby i aplikacja kontenera utworzona w poprzednim samouczku, kompilowanie i wdrażanie z kodu źródłowego do usługi Azure Container Apps.

Ustawienia

  1. W razie potrzeby zaloguj się do platformy Azure z poziomu interfejsu wiersza polecenia.

    az login
    
  2. Utwórz zmienne środowiskowe. Jeśli zmienne środowiskowe z ostatniego samouczka nadal istnieją w terminalu, możesz pominąć ten krok.

    Jeśli musisz ponownie utworzyć zmienne środowiskowe, najpierw musisz wykonać zapytanie dotyczące nazwy rejestru kontenerów utworzonej w ostatnim artykule.

    Uruchom następujące polecenie, aby wykonać zapytanie dotyczące rejestru kontenerów utworzonego w ostatnim samouczku.

    az acr list --query "[].{Name:name}" --output table
    

    Po utworzeniu nazwy rejestru kontenerów zastąp <REGISTRY_NAME> ciąg nazwą rejestru i uruchom następujące polecenie.

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Zaktualizuj i uruchom kod źródłowy.

    Zastąp zawartość Startup.cs pliku następującym kodem.

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }
    
        public void Configure(IApplicationBuilder app, ILogger<Startup> logger)
        {
            app.UseRouting();
    
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    logger.LogInformation("Hello Logger!");
                    await context.Response.WriteAsync("Hello Logger!");
                });
            });
        }
    }
    

    Ta wersja kodu rejestruje rejestratora w celu zapisania informacji w konsoli i strumieniu dziennika usługi Container Apps.

    Skompiluj projekt w konfiguracji wydania.

    dotnet build -c Release
    

    Następnie uruchom aplikację, aby sprawdzić, czy kod został poprawnie zaimplementowany.

    dotnet run --configuration Release
    

Kompilowanie i wypychanie obrazu do rejestru

Po zaktualizowaniu kodu możesz wypchnąć najnowszą wersję jako nowy obraz do rejestru kontenerów.

Aby upewnić się, że tag używany dla rejestru jest unikatowy, użyj następującego polecenia, aby utworzyć nazwę tagu.

IMAGE_TAG=$(date +%s)

Teraz możesz skompilować i wypchnąć nowy obraz kontenera do rejestru przy użyciu następującego polecenia.

az acr build \
    -t $REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG \
    -r $REGISTRY_NAME .

Tworzenie nowej poprawki

Możesz utworzyć nową wersję aplikacji kontenera na podstawie nowego obrazu kontenera wypchniętego do rejestru.

az containerapp revision copy \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG" \
  --output none

Polecenie revision copy tworzy nową poprawkę aplikacji kontenera z określonym obrazem kontenera z rejestru.

Weryfikowanie wdrożenia

Po wdrożeniu aplikacji możesz wykonać zapytanie dotyczące adresu URL za pomocą tego polecenia.

az containerapp show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --query properties.configuration.ingress.fqdn -o tsv

W przeglądarce internetowej przejdź do adresu URL aplikacji. Po uruchomieniu aplikacji kontenera zwracana jest wartość Hello Logger!.

Strumień dziennika zapytań

Właśnie zostały wyświetlone dane wyjściowe wysyłane do przeglądarki, więc teraz możesz użyć następującego polecenia, aby wyświetlić komunikaty rejestrowane w strumieniu dziennika.

az containerapp logs show \
  --name $CONTAINER_APP_NAME \
  --resource-group $RESOURCE_GROUP \
  --follow

Zapytanie zwraca odpowiedź podobną do następującego przykładu:

{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Hosting environment: Production"}
{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Content root path: /app"}
{"TimeStamp", "xxxx", "Log": "info: Startup[0]"}
{"TimeStamp", "xxxx", "Log": "Hello Logger!""}

Zwróć uwagę, jak można zobaczyć komunikat Hello Logger! w strumieniu.

Aby zatrzymać działanie strumienia, możesz wprowadzić Cmd/Ctrl + C, aby zakończyć komunikaty.

Czyszczenie zasobów

Jeśli nie zamierzasz używać zasobów platformy Azure utworzonych w tym samouczku, możesz je usunąć za pomocą następującego polecenia.

az group delete --name my-demo-group

Napiwek

Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.

Następne kroki

Kontynuuj, aby dowiedzieć się, jak nawiązać połączenie z usługami w usłudze Azure Container Apps.