Aracılığıyla paylaş


Öğretici: Azure Container Apps'te Spring için yönetilen bir Yapılandırma Sunucusuna Bağlan (önizleme)

Spring için Yapılandırma Sunucusu, yapılandırma verilerini birden çok uygulamanın kullanımına sunmak için merkezi bir konum sağlar. Bu makalede, Azure Container Apps'te barındırılan bir uygulamayı Spring örneği için Java Config Server'a bağlamayı öğreneceksiniz.

Spring için Yapılandırma Sunucusu bileşeni, yapılandırma ayarlarının kaynağı olarak bir GitHub deposu kullanır. Yapılandırma değerleri, bileşen ile kapsayıcı uygulamanız arasında bir bağlama aracılığıyla kapsayıcı uygulamanız için kullanılabilir hale getirilir. Yapılandırma sunucusunda değerler değiştikçe, bunlar uygulamanızı yeniden derlemenize veya yeniden dağıtmanıza gerek kalmadan uygulamanıza otomatik olarak akar.

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

  • Spring Java bileşeni için yapılandırma sunucusu oluşturma
  • Spring için Yapılandırma Sunucusu'nu kapsayıcı uygulamanıza bağlama
  • Yapılandırma sunucusunu uygulamanıza bağlamadan önce ve sonra yapılandırma değerlerini gözlemleyin
  • Yapılandırma değerlerini simetrik anahtarla şifreleme ve şifresini çözme

Ö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 Config Server'da çalışırken aşağıdaki ayrıntılara dikkat edin:

Kalem Açıklama
Scope Spring için Yapılandırma Sunucusu, bağlı kapsayıcı uygulamasıyla aynı ortamda çalışır.
Ölçeklendirme Tek bir gerçek kaynağını korumak için Spring için Yapılandırma Sunucusu ölçeklendirilmiyor. Ölçeklendirme özellikleri minReplicas ve maxReplicas her ikisi de olarak 1ayarlanır.
Kaynaklar Spring için Yapılandırma Sunucusu için kapsayıcı kaynak ayırması sabittir, CPU çekirdeklerinin sayısı 0,5 ve bellek boyutu 1Gi'dir.
Fiyatlandırma Spring faturalaması için Yapılandırma Sunucusu tüketime dayalı fiyatlandırma kapsamındadır. Yönetilen Java bileşenleri tarafından tüketilen 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ı uygulaması, bağlama yoluyla Spring için bir Yapılandırma Sunucusuna bağlanır. Bağlama, 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.

Ayarlama

Spring için Yapılandırma Sunucusu ile çalışmaya başlamadan önce gerekli kaynakları oluşturmanız gerekir.

Kaynak grubunuzu ve Container Apps ortamınızı oluşturmak için aşağıdaki komutları yürütebilirsiniz.

  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-spring-cloud-resource-group
    export ENVIRONMENT=my-spring-cloud-environment
    export JAVA_COMPONENT_NAME=myconfigserver
    export APP_NAME=my-config-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-config-client:latest"
    export URI="https://github.com/Azure-Samples/azure-spring-cloud-config-java-aca.git"
    
    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 bileşeni için bir Yapılandırma Sunucusu oluşturursunuz.
    IMAGE Kapsayıcı uygulamanızda kullanılan kapsayıcı görüntüsü.
    URI URI'yi git depo url'nizle değiştirebilirsiniz; özelse ve spring.cloud.config.server.git.passwordgibi spring.cloud.config.server.git.username ilgili kimlik doğrulama yapılandırmalarını ekleyebilirsiniz.
  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
    

    Bu ortam hem Spring için Yapılandırma Sunucusu bileşenini hem de kapsayıcı uygulamanızı barındırmak için kullanılır.

Spring Java için Yapılandırma Sunucusu bileşenini kullanma

Artık bir Container Apps ortamınız olduğuna göre kapsayıcı uygulamanızı oluşturabilir ve Spring için Yapılandırma Sunucusu bileşenine bağlayabilirsiniz. Kapsayıcı uygulamanızı bağladığınızda yapılandırma değerleri Yapılandırma Sunucusu bileşeninden uygulamanıza otomatik olarak eşitlenir.

  1. Spring Java için Yapılandırma Sunucusu bileşenini oluşturun.

    az containerapp env java-component config-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --configuration spring.cloud.config.server.git.uri=$URI
    
  2. Spring Java için Yapılandırma Sunucusu bileşenini güncelleştirin.

    az containerapp env java-component config-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --configuration spring.cloud.config.server.git.uri=$URI spring.cloud.config.server.git.refresh-rate=60
    

    Burada bileşene, özelliği aracılığıyla uri yapılandırma bilgilerinizi barındıran depoyu nerede bulacağını anlatacaksınız. özelliği, refresh-rate Container Apps'e git deponuzdaki değişiklikleri ne sıklıkta denetleyeceklerini bildirir.

  3. Yapılandırma verilerini kullanan kapsayıcı uygulamasını oluşturun.

    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 \
      --query properties.configuration.ingress.fqdn
    

    Bu komut, yapılandırma verilerini kullanan kapsayıcı uygulamanızın URL'sini döndürür. Url'yi bir metin düzenleyicisine kopyalayarak gelecek adımda kullanabilirsiniz.

    Uygulamanızı tarayıcıda ziyaret ederseniz, connectTimeout döndürülen değer varsayılan değeridir 0.

  4. Spring için Yapılandırma Sunucusuna bağlanın.

    Artık kapsayıcı uygulaması ve Yapılandırma Sunucusu oluşturulduğuna göre, bunları kapsayıcı uygulamanıza komutuyla update bağlarsınız.

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

    parametresi, --bind $JAVA_COMPONENT_NAME kapsayıcı uygulamanızla yapılandırma bileşeni arasındaki bağlantıyı oluşturur.

    Kapsayıcı uygulaması ve Yapılandırma Sunucusu bileşeni birbirine bağlandıktan sonra yapılandırma değişiklikleri otomatik olarak kapsayıcı uygulamasıyla eşitlenir.

    Uygulamanın URL'sini yeniden ziyaret ettiğinizde değeri connectTimeout şimdi 10000olur. Bu değer, başlangıçta yapılandırma bileşeninin $URI kaynağı olarak ayarlanan değişkende ayarlanan git deposundan gelir. Özel olarak, bu değer deponun connectionTimeout application.yml dosyasındaki özelliğinden çekilir.

    Bağlama isteği, uygulamaya ortam değişkenleri olarak yapılandırma ayarı ekler. Bu değerler artık yapılandırma sunucusundan yapılandırma ayarları getirilirken kullanılacak uygulama kodu tarafından kullanılabilir.

    Bu durumda, aşağıdaki ortam değişkenleri uygulama tarafından kullanılabilir:

    SPRING_CLOUD_CONFIG_URI=http://$JAVA_COMPONENT_NAME:80
    SPRING_CLOUD_CONFIG_COMPONENT_URI=http://$JAVA_COMPONENT_NAME:80
    SPRING_CONFIG_IMPORT=optional:configserver:$SPRING_CLOUD_CONFIG_URI
    

    Kendi SPRING_CONFIG_IMPORTöğesini özelleştirmek istiyorsanız ortam değişkenine SPRING_CLOUD_CONFIG_COMPONENT_URIbaşvurabilirsiniz. Örneğin, gibi Java -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=truekomut satırı bağımsız değişkenleriyle geçersiz kılabilirsiniz.

    Bağlamayı uygulamanızdan da kaldırabilirsiniz.

  5. Spring Java için Yapılandırma Sunucusu bileşeninin bağlaması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
    

    Uygulamanın URL'sini yeniden ziyaret ettiğinizde değeri connectTimeout olarak değişir 0.

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