Eğitim: Azure Container Apps'te Spring için Yönetici Arayüzünü Spring için Eureka Server ile Entegre Etme

Bu öğretici, Azure Container Apps içinde Spring için Eureka Server ile entegre edilmiş bir yöneticiye sahip olmanın işlem adımlarını size açıklar.

Spring için Eureka Server ile Spring için Admin'i entegre ederek, uygulama bilgilerini tek tek Spring için Admin'e bağlamak zorunda kalmadan, uygulama bilgilerini Eureka aracılığıyla 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

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:

Öğe 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 1 olarak ayarlanı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 bir bileşene bağlama aracılığıyla 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. Kendi container uygulama 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 Server'nız yoksa, Eureka Server Java bileşenini oluşturmak için aşağıdaki komutu kullanın. 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 Sunucusu bileşenine bağlamıştı. Yönetici bileşeni hizmet bulmayı etkinleştirir ve spring için Yönetici panosu aracılığıyla aynı anda yönetmenize olanak tanır.

Panoları görüntüle

Önemli

Panoyu görüntülemek için, yönetilen ortam kaynağında hesabınıza en az Microsoft.App/managedEnvironments/write rolünün atanmış olması gerekir. Kaynakta Owner veya Contributor rolünü açıkça atayabilir veya ö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>"]
    }'
    

    <SUBSCRIPTION_ID> değerindeki AssignableScopes yer tutucuyu abonelik kimliğiniz ile değiştirdiğinizden 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. Pano aracılığıyla kapsayıcı uygulamanızı aşağıdaki ekran görüntüsünde olduğu gibi görüntüleyebilirsiniz.

    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