Freigeben über


Tutorial: Aktualisieren einer über Quellcode bereitgestellten Container-App

In diesem Artikel wird veranschaulicht, wie Sie die Container-App aktualisieren, die Sie im vorherigen Artikel erstellt haben: Erstellen und Bereitstellen von Quellcode in Azure Container Apps.

Wenn Sie die Schritte im vorherigen Artikel noch nicht abgeschlossen haben, hören Sie hier auf, und kehren Sie zu diesem Artikel zurück, sobald alle Schritte ausgeführt wurden.

In diesem Tutorial führen Sie Folgendes durch:

  • Vornehmen einer Codeänderung an Ihrer Anwendung
  • Pushen der Änderungen an die Containerregistrierung mit einem neuen Tag
  • Anzeigen der aktualisierten App in einem Browser
  • Abfragen des Protokolldatenstroms zum Anzeigen protokollierter Meldungen

Voraussetzungen

Um dieses Projekt abzuschließen, benötigen Sie die Tools, Ressourcen und die Container-App, die Sie im vorherigen Tutorial erstellt haben: Erstellen und Bereitstellen von Quellcode in Azure Container Apps.

Setup

  1. Melden Sie sich über die CLI bei Azure an, sofern erforderlich.

    az login
    
  2. Erstellen Sie Umgebungsvariablen. Wenn die Umgebungsvariablen aus dem letzten Tutorial noch in Ihrem Terminal vorhanden sind, können Sie diesen Schritt überspringen.

    Wenn Sie die Umgebungsvariablen neu erstellen müssen, müssen Sie zuerst den Containerregistrierungsnamen abfragen, den Sie im letzten Artikel erstellt haben.

    Führen Sie den folgenden Befehl aus, um die Containerregistrierung abzufragen, die Sie im letzten Tutorial erstellt haben.

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

    Nachdem Sie den Containerregistrierungsnamen abgerufen haben, ersetzen Sie <REGISTRY_NAME> durch Ihren Registrierungsnamen, und führen Sie den folgenden Befehl aus:

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Aktualisieren Sie den Quellcode, und führen Sie ihn aus.

    Ersetzen Sie den Inhalt von Startup.cs durch den folgenden Code.

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

    Diese Version des Codes registriert eine Protokollierung zum Schreiben von Informationen in die Konsole und den Container Apps-Protokolldatenstrom.

    Erstellen Sie Ihr Projekt in der Releasekonfiguration:

    dotnet build -c Release
    

    Führen Sie als Nächstes die Anwendung aus, um zu überprüfen, ob der Code ordnungsgemäß implementiert ist:

    dotnet run --configuration Release
    

Erstellen des Images und Pushen des Images an eine Registrierung

Nachdem Ihr Code aktualisiert wurde, können Sie die aktuelle Version als neues Image in die Containerregistrierung pushen.

Um sicherzustellen, dass das für Ihre Registrierung verwendete Tag eindeutig ist, erstellen Sie mithilfe des folgenden Befehls einen Tagnamen:

IMAGE_TAG=$(date +%s)

Sie können Ihr neues Containerimage nun mithilfe des folgenden Befehls erstellen und in die Registrierung pushen:

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

Erstellen einer neuen Revision:

Sie können eine neue Überarbeitung Ihrer Container-App basierend auf dem neuen Containerimage erstellen, das Sie in Ihre Registrierung gepusht haben.

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

Mit dem Befehl revision copy wird eine neue überarbeitete Version der Container-App mit dem angegebenen Containerimage aus der Registrierung erstellt.

Überprüfen der Bereitstellung

Nachdem Ihre Anwendung bereitgestellt wurde, können Sie die URL mit diesem Befehl abfragen:

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

Navigieren Sie in einem Webbrowser zur URL der App. Nachdem die Container-App gestartet wurde, gibt sie Hello Logger! aus.

Abfragen des Protokolldatenstroms

Sie haben gerade die an den Browser gesendete Ausgabe gesehen. Jetzt können Sie den folgenden Befehl verwenden, um die im Protokolldatenstrom protokollierten Nachrichten anzuzeigen.

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

Die Abfrage gibt in etwa folgende Antwort zurück:

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

Beachten Sie, dass die Meldung Hello Logger! im Datenstrom angezeigt wird.

Wenn Sie dem Datenstrom nicht mehr folgen möchten, können Sie CMD/STRG + C eingeben, um die Meldungen zu beenden.

Bereinigen von Ressourcen

Wenn Sie die in diesem Tutorial erstellten Azure-Ressourcen nicht mehr verwenden werden, können Sie sie mit dem folgenden Befehl entfernen:

az group delete --name my-demo-group

Tipp

Treten Probleme auf? Informieren Sie uns über GitHub, indem Sie ein Problem im Azure Container Apps-Repository öffnen.

Nächste Schritte

Informieren Sie sich nun über das Herstellen einer Verbindung mit Diensten in Azure Container Apps.