Sdílet prostřednictvím


Kurz: Aktualizace aplikace kontejneru nasazené ze zdrojového kódu

Tento článek ukazuje, jak aktualizovat aplikaci kontejneru, kterou jste vytvořili v předchozím článku, sestavit a nasadit zdrojový kód do Azure Container Apps.

Pokud jste nedokončili kroky v předchozím článku, po dokončení všech kroků se vraťte sem a vraťte se k tomuto článku.

V tomto kurzu:

  • Proveďte změnu kódu v aplikaci.
  • Odešlete změny do registru kontejneru s novou značkou.
  • Zobrazte aktualizovanou aplikaci v prohlížeči.
  • Odešlete dotaz na stream protokolu, aby se zobrazily protokolované zprávy.

Požadavky

K dokončení tohoto projektu potřebujete nástroje, prostředky a kontejnerovou aplikaci vytvořenou v předchozím kurzu, sestavit a nasadit ze zdrojového kódu do Azure Container Apps.

Nastavení

  1. V případě potřeby se přihlaste k Azure z rozhraní příkazového řádku.

    az login
    
  2. Vytvořte proměnné prostředí. Pokud proměnné prostředí z posledního kurzu v terminálu stále existují, můžete tento krok přeskočit.

    Pokud potřebujete znovu vytvořit proměnné prostředí, musíte nejprve zadat dotaz na název registru kontejneru, který jste vytvořili v posledním článku.

    Spuštěním následujícího příkazu zadejte dotaz na registr kontejneru, který jste vytvořili v posledním kurzu.

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

    Jakmile budete mít název registru kontejneru, nahraďte <REGISTRY_NAME> názvem registru a spusťte následující příkaz.

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Aktualizujte a spusťte zdrojový kód.

    Nahraďte obsah Startup.cs následujícím kódem.

    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!");
                });
            });
        }
    }
    

    Tato verze kódu zaregistruje protokolovací nástroj k zápisu informací do konzoly a streamu protokolu Container Apps.

    Sestavte projekt v konfiguraci vydané verze.

    dotnet build -c Release
    

    Pak spusťte aplikaci a ověřte, že je váš kód implementovaný správně.

    dotnet run --configuration Release
    

Sestavení a nasdílení image do registru

Teď, když je váš kód aktualizovaný, můžete do registru kontejneru odeslat nejnovější verzi jako novou image.

Pokud chcete zajistit, aby byla značka používaná pro váš registr jedinečná, vytvořte název značky pomocí následujícího příkazu.

IMAGE_TAG=$(date +%s)

Teď můžete vytvořit a odeslat novou image kontejneru do registru pomocí následujícího příkazu.

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

Vytvoření nové revize

Novou revizi aplikace kontejneru můžete vytvořit na základě nové image kontejneru, kterou jste odeslali do registru.

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

Příkaz revision copy vytvoří novou revizi vaší aplikace kontejneru se zadanou imagí kontejneru z registru.

Ověření nasazení

Teď, když je vaše aplikace nasazená, můžete pomocí tohoto příkazu zadat dotaz na adresu URL.

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

Ve webovém prohlížeči přejděte na adresu URL aplikace. Jakmile se aplikace kontejneru spustí, vypíše hello logger!.

Stream protokolu dotazů

Právě jste viděli výstup odeslaný do prohlížeče, takže teď můžete pomocí následujícího příkazu zobrazit zprávy, které se protokolují ve streamu protokolu.

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

Dotaz vrátí odpověď podobnou následujícímu příkladu:

{"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!""}

Všimněte si, jak můžete zobrazit zprávu Hello Logger! ve streamu.

Pokud chcete sledování streamu zastavit, můžete zprávy ukončit zadáním kláves Cmd/Ctrl + C.

Vyčištění prostředků

Pokud nebudete používat prostředky Azure vytvořené v tomto kurzu, můžete je odebrat pomocí následujícího příkazu.

az group delete --name my-demo-group

Tip

Máte problémy? Dejte nám vědět na GitHubu otevřením problému v úložišti Azure Container Apps.

Další kroky

Pokračujte a zjistěte, jak se připojit ke službám v Azure Container Apps.