Öğretici: Azure Container Apps'te spring için yönetilen eureka sunucusuna bağlanma
Spring için Eureka Server, mikro hizmetlerin kendilerini kaydetmesine ve diğer hizmetleri keşfetmesine olanak tanıyan bir hizmet kayıt defteridir. Azure Container Apps bileşeni olarak sunulan kapsayıcı uygulamanızı, Eureka sunucusuna otomatik kayıt için Spring için Eureka Sunucusu'na bağlayabilirsiniz.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Spring Java bileşeni için Eureka Sunucusu oluşturma
- Kapsayıcı uygulamanızı Spring Java için Eureka Server bileşenine bağlama
Ö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 Eureka Server'da çalışırken aşağıdaki ayrıntılara dikkat edin:
Ayarlama
Spring için Eureka Server ile çalışmaya başlamadan önce gerekli kaynakları oluşturmanız gerekir.
Kaynak grubunuzu, kapsayıcı uygulamaları ortamınızı oluşturmak için aşağıdaki komutları yürütebilirsiniz.
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 APP_NAME=my-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-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ı. EUREKA_COMPONENT_NAME
Kapsayıcı uygulamanız için oluşturulan Java bileşeninin adı. Bu durumda Spring Java için bir Eureka Server bileşeni oluşturursunuz. IMAGE
Kapsayıcı uygulamanızda kullanılan kapsayıcı görüntüsü. Azure CLI ile Azure'da oturum açın.
az login
Kaynak grubu oluşturun.
az group create --name $RESOURCE_GROUP --location $LOCATION
Kapsayıcı uygulamaları ortamınızı oluşturun.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Spring Java için Eureka Server bileşenini oluşturma
Artık mevcut bir ortamınız olduğuna göre kapsayıcı uygulamanızı oluşturabilir ve Spring için Eureka Server'ın Java bileşen örneğine bağlayabilirsiniz.
Spring Java için Eureka Server bileşenini oluşturun.
az containerapp env java-component eureka-server-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME
İsteğe bağlı: Spring Java bileşen yapılandırması için Eureka Server'ı güncelleştirin.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
Kapsayıcı uygulamanızı Spring Java için Eureka Server bileşenine bağlama
Kapsayıcı uygulamasını oluşturun ve Spring için Eureka Server'a 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 $EUREKA_COMPONENT_NAME \ --query properties.configuration.ingress.fqdn
Uygulamanızın URL'sini bir metin düzenleyicisine kopyalayarak bunu önümüzdeki adımda kullanabilirsiniz.
Portalda kapsayıcı uygulamasına dönün ve uygulamanızın URL'sini bir metin düzenleyicisine kopyalayarak bunu önümüzdeki adımda kullanabilirsiniz.
/allRegistrationStatus
Spring için Eureka Server'a kayıtlı tüm uygulamaları görüntülemek için yola gidin.
Bağlama, uygulamaya öncelikle özelliği olmak üzere ortam değişkenleri olarak çeşitli yapılandırmalar eureka.client.service-url.defaultZone
ekler. Bu özellik, Eureka Server Java bileşeninin iç uç noktasını gösterir.
Bağlama ayrıca aşağıdaki özellikleri de eklemektedir:
"eureka.client.register-with-eureka": "true"
"eureka.client.fetch-registry": "true"
"eureka.instance.prefer-ip-address": "true"
özelliği, eureka.client.register-with-eureka
Eureka sunucusuna kaydı zorunlu kılmak için olarak ayarlanır true
. Bu kayıt, içindeki yerel ayarın application.properties
üzerine yapılandırma sunucusundan yazar ve bu şekilde devam eder. olarak ayarlamak false
isterseniz, kapsayıcı uygulamanızda bir ortam değişkeni ayarlayarak üzerine yazabilirsiniz.
eureka.instance.prefer-ip-address
, kapsayıcı uygulaması ortamındaki belirli DNS çözümleme kuralı nedeniyle olarak ayarlanırtrue
. Bağlamayı kesmemesi için bu değeri değiştirmeyin.
(İsteğe bağlı) Kapsayıcı uygulamanızı Spring Java için Eureka Server bileşeninden bağlama
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
Uygulamayı pano aracılığıyla 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.
Özel rol tanımını oluşturun.
az role definition create --role-definition '{ "Name": "<YOUR_ROLE_NAME>", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'
Değerdeki köşeli ayraçlar arasındaki
<>
yer tutucuyuAssignableScopes
abonelik kimliğiniz ile değiştirdiğinden emin olun.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)
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.
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 -o 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.
İsteğe bağlı: Spring için Eureka Server ve Spring Java bileşenleri için Yönetici'yi tümleştirme
Spring için Eureka Server ve Spring Java bileşenleri için Yönetici'yi tümleştirmek istiyorsanız bkz . Spring için yönetilen Yöneticiyi Spring için Eureka Server ile tümleştirme.
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