Aracılığıyla paylaş


Öğretici: Azure Container Apps'te Spring için Yöneticiyi Spring için Eureka Server ile Tümleştirme

Bu öğretici, Yönetilen Spring Yöneticisini Azure Container Apps içinde Spring için Eureka Server ile tümleştirme işleminde size yol gösterir.

Bu makale, "Azure Container Apps'te Spring için yönetilen yöneticiye bağlanma" öğreticisine benzer bazı içerikler içerir, ancak Spring için Eureka Server ile Spring için Admin'i Spring için Eureka Server'a bağlayabilirsiniz; böylece uygulama bilgilerini Spring için Admin'e bağlamak yerine Eureka aracılığıyla uygulama bilgilerini alabilirsiniz.

Bu kılavuzu izleyerek hizmet bulma için bir Eureka Server ayarladınız ve ardından Eureka Server'a kayıtlı Spring uygulamalarınızı yönetmek ve izlemek için spring için bir Yönetici oluşturacaksınız. Bu kurulum, diğer uygulamaların yalnızca Eureka Server'a bağlanması gerektiğinden emin olur ve mikro hizmetlerinizin yönetimini basitleştirir.

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

  1. Spring için bir Eureka Sunucusu oluşturun.
  2. Spring için bir Yönetici oluşturun ve bunu Eureka Server'a bağlayın.
  3. Kolaylaştırılmış hizmet bulma ve yönetimi için diğer uygulamaları Eureka Server'a bağlayın.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Henüz bir hesabınız yoksa ücretsiz olarak oluşturabilirsiniz.
  • Azure CLI.
  • Spring Java için mevcut bir Eureka Sunucusu bileşeni. Yoksa bkz . Spring için Eureka Sunucusu oluşturma.

Dikkat edilmesi gereken noktalar

Yönetilen Java bileşenlerini Azure Container Apps'te çalıştırırken aşağıdaki ayrıntılara dikkat edin:

Kalem Açıklama
Kapsam Bileşenler, bağlı kapsayıcı uygulamasıyla aynı ortamda çalışır.
Ölçeklendirme Bileşenler ö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 çekirdeği sayısı 0,5, bellek boyutu ise 1 GB'tır.
Fiyatlandırma Bileşen faturalaması tüketime dayalı fiyatlandırmanın altındadır. Yönetilen bileşenler tarafından kullanılan kaynaklar, kaynak kullanımına bağlı olarak etkin veya 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

Başlamadan önce aşağıdaki komutları yürüterek gerekli kaynakları oluşturun.

  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-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_NAME=eureka
    export ADMIN_COMPONENT_NAME=admin
    export CLIENT_APP_NAME=sample-service-eureka-client
    export CLIENT_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şenlerinizi oluşturduğunuz Azure bölgesi konumu.
    RESOURCE_GROUP Tanıtım uygulamanızın Azure kaynak grubu adı.
    ENVIRONMENT Tanıtım uygulamanızın Azure Container Apps ortam adı.
    EUREKA_COMPONENT_NAME Eureka Server Java bileşeninin adı.
    ADMIN_COMPONENT_NAME Spring Java bileşeninin Yöneticisinin adı.
    CLIENT_APP_NAME Eureka Server'a bağlanan kapsayıcı uygulamasının adı.
    CLIENT_IMAGE Eureka Server 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
    
  4. Kapsayıcı uygulamaları ortamınızı oluşturun.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --query "properties.provisioningState"
    

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

İsteğe bağlı: Spring için Eureka Sunucusu oluşturma

Spring için Eureka Sunucunuz yoksa eureka Server Java bileşenini oluşturmak için aşağıdaki komutu izleyin. Daha fazla bilgi için bkz . Spring için Eureka Sunucusu oluşturma.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_NAME

Bileşenleri birbirine bağlama

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 $ADMIN_COMPONENT_NAME \
    --min-replicas 1 \
    --max-replicas 1 \
    --bind $EUREKA_COMPONENT_NAME

Diğer uygulamaları Eureka Sunucusuna bağlama

Eureka Sunucusu ayarlandıysa, artık hizmet bulma için diğer uygulamaları buna bağlayabilirsiniz. Ayrıca bu uygulamaları Spring için Admin panosunda izleyebilir ve yönetebilirsiniz. Bir kapsayıcı uygulaması oluşturmak ve Eureka Server'a bağlamak için aşağıdaki adımları kullanın:

Kapsayıcı uygulamasını oluşturun ve Eureka Server'a bağlayın.

az containerapp create \
    --name $CLIENT_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --environment $ENVIRONMENT \
    --image $CLIENT_IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --bind $EUREKA_COMPONENT_NAME 

İpucu

Önceki adımlar Spring için Yönetici bileşenini Spring için Eureka Server bileşenine bağladığından, Yönetici bileşeni hizmet bulmayı etkinleştirir ve aynı anda Spring için Yönetici panosu aracılığıyla yönetmenize olanak tanır.

Panoları 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 Owner rol atayabilir Contributor 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": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Değerdeki <SUBSCRIPTION_ID> yer tutucuyu AssignableScopes abonelik kimliğiniz ile 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 \
        --output tsv)
    
  3. Rolü hesabınıza atayın.

    Bu komutu çalıştırmadan önce yer tutucuyu <USER_OR_SERVICE_PRINCIPAL_ID> kullanıcı veya hizmet sorumlusu kimliğiniz ile değiştirin.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  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 $ADMIN_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    
  5. Spring için Eureka Server panosunun URL'sini alın.

    az containerapp env java-component eureka-server-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    

    Bu komut, Spring için Eureka Server panosuna 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 panosunun ekran görüntüsü.

    Spring için Eureka Sunucusu panosunun 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