Aracılığıyla paylaş


Öğretici: Kaynak koddan dağıtılan kapsayıcı uygulamasını güncelleştirme

Bu makalede, kaynak kodunuzu derleme ve Azure Container Apps'e dağıtma başlıklı önceki makalede oluşturduğunuz kapsayıcı uygulamasını güncelleştirme adımları gösterilmektedir.

Önceki makaledeki adımları tamamlamadıysanız, burada durun ve tüm adımlar tamamlandıktan sonra bu makaleye dönün.

Bu öğreticide şunlarız:

  • Uygulamanızda kod değişikliği yapın.
  • Değişikliklerinizi yeni bir etiketle kapsayıcı kayıt defterine gönderin.
  • Güncelleştirilmiş uygulamayı tarayıcıda görüntüleyin.
  • Günlüğe kaydedilen iletileri görüntülemek için günlük akışını sorgular.

Önkoşullar

Bu projeyi tamamlamak için, önceki öğreticide (Kaynak kodu derleme ve Azure Container Apps'e dağıtma) oluşturulmuş araçlara, kaynaklara ve kapsayıcı uygulamasına ihtiyacınız vardır.

Ayarlama

  1. Gerekirse CLI'dan Azure'da oturum açın.

    az login
    
  2. Ortam değişkenleri oluşturma. Son öğreticideki ortam değişkenleriniz terminalinizde hala varsa, bu adımı atlayabilirsiniz.

    Ortam değişkenlerini yeniden oluşturmanız gerekiyorsa, önce son makalede oluşturduğunuz kapsayıcı kayıt defteri adını sorgulamanız gerekir.

    Son öğreticide oluşturduğunuz kapsayıcı kayıt defterini sorgulamak için aşağıdaki komutu çalıştırın.

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

    Kapsayıcı kayıt defteri adınızı aldıktan sonra değerini kayıt defteri adınızla değiştirin <REGISTRY_NAME> ve aşağıdaki komutu çalıştırın.

    RESOURCE_GROUP="my-demo-group"
    CONTAINER_APP_NAME="my-demo-app"
    REGISTRY_NAME="<REGISTRY_NAME>"
    
  3. Kaynak kodunuzu güncelleştirin ve çalıştırın.

    öğesinin içeriğini Startup.cs aşağıdaki kodla değiştirin.

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

    Kodun bu sürümü, konsola ve Container Apps günlük akışına bilgi yazmak için bir günlükçü kaydeder.

    Projenizi Sürüm yapılandırması'nda oluşturun.

    dotnet build -c Release
    

    Ardından kodunuzun doğru uygulandığını doğrulamak için uygulamanızı çalıştırın.

    dotnet run --configuration Release
    

Görüntüyü derleme ve kayıt defterine gönderme

Kodunuz güncelleştirildiğinden, kapsayıcı kayıt defterinize yeni bir görüntü olarak en son sürümü gönderebilirsiniz.

Kayıt defterinizde kullanılan etiketin benzersiz olduğundan emin olmak için aşağıdaki komutu kullanarak bir etiket adı oluşturun.

IMAGE_TAG=$(date +%s)

Şimdi aşağıdaki komutu kullanarak yeni kapsayıcı görüntünüzü derleyebilir ve kayıt defterine gönderebilirsiniz.

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

Yeni düzeltme oluşturma

Kayıt defterinize gönderilen yeni kapsayıcı görüntüsüne göre kapsayıcı uygulamanızın yeni bir düzeltmesini oluşturabilirsiniz.

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

komutu, revision copy kayıt defterinden belirtilen kapsayıcı görüntüsüyle kapsayıcı uygulamanızın yeni bir düzeltmesini oluşturur.

Dağıtımı doğrulama

Uygulamanız dağıtıldığından bu komutla URL'yi sorgulayabilirsiniz.

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

Web tarayıcısında uygulamanın URL'sine gidin. Kapsayıcı uygulaması başlatıldıktan sonra Hello Logger! çıkışını verir.

Sorgu günlüğü akışı

Çıkışın tarayıcıya gönderildiğini gördünüz, böylece şimdi günlük akışında günlüğe kaydedilen iletileri görmek için aşağıdaki komutu kullanabilirsiniz.

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

Sorgu aşağıdaki örneğe benzer bir yanıt döndürür:

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

akışında iletisini Hello Logger! nasıl görebileceğinize dikkat edin.

Akışı takip etmeyi durdurmak için, iletileri sonlandırmak için Cmd/Ctrl + C girebilirsiniz.

Kaynakları temizleme

Bu öğreticide oluşturulan Azure kaynaklarını kullanmayacaksanız, bunları aşağıdaki komutla kaldırabilirsiniz.

az group delete --name my-demo-group

İpucu

Sorun mu yaşıyorsunuz? Azure Container Apps deposunda bir sorun açarak GitHub'da bize bildirin.

Sonraki adımlar

Azure Container Apps'teki hizmetlere bağlanmayı öğrenmek için devam edin.