Öğretici: Azure Container Apps'te Spring için yönetilen yöneticiye bağlanma

Spring yöneticisi tarafından yönetilen bileşen, aktüatör uç noktalarını kullanıma sunan Spring Boot web uygulamaları için bir yönetim arabirimi sunar. Azure Container Apps'te yönetilen bir bileşen olarak sorunsuz tümleştirme ve yönetim için kapsayıcı uygulamanızı Spring için Admin'e kolayca bağlayabilirsiniz.

Bu öğreticide Spring Java için Yönetici bileşeninin nasıl oluşturulacağı ve spring uygulamalarınızı kolayca izleyip yönetebilmeniz için kapsayıcı uygulamanıza nasıl bağlanacağı gösterilmektedir.

Spring insights için Yönetici panosuna genel bakışın ekran görüntüsü.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Spring Java bileşeni için Yönetici oluşturma
  • Spring Java bileşeni için kapsayıcı uygulamanızı Yöneticiye bağlama

Not

Spring için Admin'i Spring için Eureka Server for Spring ile tümleştirmek istiyorsanız bkz . Spring için Admin'i Azure Container Apps'te Spring için Eureka Server ile tümleştirme.

Önemli

Bu öğreticide Azure faturanızı etkileyebilecek hizmetler kullanılır. Adım adım izlemeye karar verirseniz, beklenmeyen faturalamayı önlemek için bu makalede öne çıkan kaynakları sildiğinizden emin olun.

Önkoşullar

Bu projeyi tamamlamak için aşağıdaki öğeler gerekir:

Gereksinim Yönergeler
Azure hesabı Etkin bir abonelik gereklidir. Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz.
Azure CLI Azure CLI’yi yükleyin.

Dikkat edilmesi gereken noktalar

Azure Container Apps'te Spring için Yönetici'yi çalıştırırken aşağıdaki ayrıntılara dikkat edin:

Kalem Açıklama
Scope Bileşenler, bağlı kapsayıcı uygulamasıyla aynı ortamda çalışır.
Ölçeklendirme Bileşen ölçeklendirilemiyor. Ölçeklendirme özellikleri minReplicas ve maxReplicas her ikisi de olarak 1ayarlanır.
Kaynaklar Bileşenler için kapsayıcı kaynak ayırması düzeltildi. CPU çekirdeklerinin sayısı 0,5, bellek boyutu ise 1Gi'dir.
Fiyatlandırma Bileşen faturalaması tüketime dayalı fiyatlandırmanın altındadır. Yönetilen bileşenler tarafından kullanılan kaynaklar etkin/boşta kalma fiyatlarına göre faturalandırılır. Faturalamayı durdurmak için artık kullanımda olmayan bileşenleri silebilirsiniz.
Bağlama Kapsayıcı uygulamaları bağlama yoluyla bir bileşene bağlanır. Bağlamalar, yapılandırmaları kapsayıcı uygulaması ortam değişkenlerine ekler. Bağlama oluşturulduktan sonra kapsayıcı uygulaması ortam değişkenlerinden yapılandırma değerlerini okuyabilir ve bileşene bağlanabilir.

Ayarlama

Spring için Yönetici ile çalışmaya başlamadan önce gerekli kaynakları oluşturmanız gerekir.

Aşağıdaki komutlar kaynak grubunuzu ve Container Apps ortamınızı oluşturmanıza yardımcı olur.

  1. Uygulama yapılandırmanızı desteklemek için değişkenler oluşturun. Bu değerler, bu dersin amaçları doğrultusunda size sağlanır.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-resource-group
    export ENVIRONMENT=my-environment
    export JAVA_COMPONENT_NAME=admin
    export APP_NAME=sample-admin-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
    
    Değişken Açıklama
    LOCATION Kapsayıcı uygulamanızı ve Java bileşenini oluşturduğunuz Azure bölgesi konumu.
    ENVIRONMENT Tanıtım uygulamanızın Azure Container Apps ortam adı.
    RESOURCE_GROUP Tanıtım uygulamanızın Azure kaynak grubu adı.
    JAVA_COMPONENT_NAME Kapsayıcı uygulamanız için oluşturulan Java bileşeninin adı. Bu durumda Spring Java için bir Yönetici bileşeni oluşturursunuz.
    IMAGE Kapsayıcı uygulamanızda kullanılan kapsayıcı görüntüsü.
  2. Azure CLI ile Azure'da oturum açın.

    az login
    
  3. Kaynak grubu oluşturun.

    az group create \
      --name $RESOURCE_GROUP \
      --location $LOCATION \
      --query "properties.provisioningState"
    

    parametresini --query kullanmak, yanıtı basit bir başarı veya hata iletisine göre filtreler.

  4. Kapsayıcı uygulamaları ortamınızı oluşturun.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION
    

Bileşeni kullanma

Artık mevcut bir ortamınız olduğuna göre kapsayıcı uygulamanızı oluşturabilir ve Spring bileşeni için Yönetici'nin Java bileşeni örneğine bağlayabilirsiniz.

  1. Spring Java için Yönetici bileşenini oluşturun.

    az containerapp env java-component admin-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --min-replicas 1 \
      --max-replicas 1
    
  2. Spring Java bileşeninin Yöneticisi'ni güncelleştirin.

    az containerapp env java-component admin-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --min-replicas 2 \
      --max-replicas 2
    

Kapsayıcı uygulamanızı Spring Java için Yönetici bileşenine bağlama

  1. Kapsayıcı uygulamasını oluşturun ve Spring için Yönetici'ye bağlayın.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --ingress external \
      --target-port 8080 \
      --bind $JAVA_COMPONENT_NAME
    

Bağlama işlemi kapsayıcı uygulamasını Spring Java için Yönetici bileşenine bağlar. Kapsayıcı uygulaması artık öncelikle özelliği olmak üzere SPRING_BOOT_ADMIN_CLIENT_URL ortam değişkenlerinden yapılandırma değerlerini okuyabilir ve Spring için Yönetici'ye bağlanabilir.

Bağlama ayrıca aşağıdaki özelliği de ekliyor:

"SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP": "true",

Bu özellik, Spring için Yönetici bileşen istemcisinin Spring sunucusu için Yönetici'ye bağlanırken kapsayıcı uygulaması örneğinin IP adresini tercih etmesi gerektiğini gösterir.

(İsteğe bağlı) Spring Java için Yönetici bileşeninden kapsayıcı uygulamanızın bağlantısını kaldırın

Kapsayıcı uygulamasından bağlamayı kaldırmak için seçeneğini kullanın --unbind .

  az containerapp update \
    --name $APP_NAME \
    --unbind $JAVA_COMPONENT_NAME \
    --resource-group $RESOURCE_GROUP

Panoyu görüntüleme

Önemli

Panoyu görüntülemek için en azından yönetilen ortam kaynağında Microsoft.App/managedEnvironments/write hesabınıza atanmış rolün olması gerekir. Kaynağa açıkça veya Contributor rol atayabilir Owner ya da özel bir rol tanımı oluşturup bunu hesabınıza atamak için adımları izleyebilirsiniz.

  1. Özel rol tanımını oluşturun.

    az role definition create --role-definition '{
        "Name": "<ROLE_NAME>",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Köşeli ayraçlar arasındaki <> yer tutucuları değerlerinizle değiştirdiğinden emin olun.

  2. Yönetilen ortam kaynağındaki hesabınıza özel rolü atayın.

    Yönetilen ortamın kaynak kimliğini alın:

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ 
        --query id -o tsv)
    
  3. Rolü hesabınıza atayın.

    Bu komutu çalıştırmadan önce köşeli ayraçlar arasındaki yer tutucuyu <> kullanıcı veya hizmet sorumlusu kimliğiniz ile değiştirin.

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "<ROLE_NAME>" \
      --scope $ENVIRONMENT_ID
    

    Not

    <> USER_OR_SERVICE_PRINCIPAL_ID genellikle Azure Portal'a erişmek için kullandığınız kimlik olmalıdır. <> ROLE_NAME, 1. adımda atadığınız addır.

  4. Spring için Yönetici panosunun URL'sini alın.

    az containerapp env java-component admin-for-spring show \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --query properties.ingress.fqdn -o tsv
    

    Bu komut, Spring panosunun Yöneticisi'ne erişmek için kullanabileceğiniz URL'yi döndürür. Aşağıdaki ekran görüntüsünde gösterildiği gibi pano aracılığıyla kapsayıcı uygulamanız da size sunulur.

    Spring için Yönetici panosuna genel bakışın ekran görüntüsü.

Kaynakları temizleme

Bu öğreticide oluşturulan kaynakların Azure faturanız üzerinde etkisi vardır. Bu hizmetleri uzun süreli kullanmayacaksanız, bu öğreticide oluşturulan her şeyi kaldırmak için aşağıdaki komutu çalıştırın.

az group delete \
  --resource-group $RESOURCE_GROUP

Sonraki adımlar