Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Temel, Standardve Enterprise planları 17 Mart 2025'te kullanımdan kaldırma dönemine girdi. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış planı 30 Eylül 2024'te emeklilik dönemine girdi ve Mart 2025 sonuna kadar tamamen kapatılacak. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
Bu makale şunlar için geçerlidir:✅ Temel/Standart ❎ Kurumsal
Bu hızlı başlangıçta, Azure CLI kullanarak Spring uygulamalarının nasıl derlenip Azure Spring Apps'e dağıtılacağı açıklanmaktadır.
Önkoşullar
- Bu serideki önceki hızlı başlangıçların tamamlanması:
Örnek uygulamayı indirme
Örnek uygulamayı indirmek için aşağıdaki adımları kullanın. Azure Cloud Shell kullanıyorsanız yerel komut istemine geçin.
Yeni bir klasör oluşturun ve örnek uygulama deposunu kopyalayın.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Depo dizinine gidin.
cd azure-spring-apps-samples
PlanetWeatherProvider'ı dağıtma
PlanetWeatherProvider projesini dağıtmak için aşağıdaki adımları kullanın.
Azure Spring Apps örneğinizde proje için
PlanetWeatherProvider
bir uygulama oluşturun.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Otomatik hizmet kaydını etkinleştirmek için uygulamaya projenin
spring.application.name
dosyasındaki değeriyle aynı adı verdiniz:"spring": { "application": { "name": "planet-weather-provider" } }
Bu komutun çalıştırılması birkaç dakika sürebilir.
Dizini proje klasörüne
PlanetWeatherProvider
değiştirin.cd steeltoe-sample/src/planet-weather-provider
Dağıtılacak ikili dosyaları ve .zip dosyasını oluşturun.
dotnet publish -c release -o ./publish
İpucu
Proje dosyası, ikili dosyaları ./publish klasörüne yazdıktan sonra bir .zip dosyasında paketlemek için aşağıdaki XML'yi içerir:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Projeyi Azure'a dağıtma.
Aşağıdaki komutu çalıştırmadan önce komut isteminin proje klasöründe olduğundan emin olun.
az spring app deploy \ --name planet-weather-provider \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \ --artifact-path ./publish-deploy-planet.zip
seçeneği,
--main-entry
.zip dosyasının kök klasöründen uygulamanın giriş noktasını içeren .dll dosyasına göreli yolu belirtir. Hizmet .zip dosyasını yükledikten sonra tüm dosyaları ve klasörleri çıkarır ve ardından belirtilen .dll dosyasındaki giriş noktasını yürütmeyi dener.Bu komutun çalıştırılması birkaç dakika sürebilir.
SolarSystemWeather'ı dağıtma
SolarSystemWeather projesini dağıtmak için aşağıdaki adımları kullanın.
Proje için Azure Spring Apps örneğinizde başka bir uygulama oluşturun.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
, projeninSolarSystemWeather
dosyasında belirtilen addır.Bu komutun çalıştırılması birkaç dakika sürebilir.
Dizini projeye değiştirin
SolarSystemWeather
.cd ../solar-system-weather
Dağıtılacak ikili dosyaları ve .zip dosyasını oluşturun.
dotnet publish -c release -o ./publish
Projeyi Azure'a dağıtma.
az spring app deploy \ --name solar-system-weather \ --runtime-version NetCore_31 \ --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \ --artifact-path ./publish-deploy-solar.zip
Bu komutun çalıştırılması birkaç dakika sürebilir.
Genel uç noktası ata
Uygulamayı test etmeden önce, uygulamaya http GET isteği solar-system-weather
için genel uç nokta alın.
Uç noktayı atamak için aşağıdaki komutu çalıştırın.
az spring app update --name solar-system-weather --assign-endpoint true
Uç noktanın URL'sini almak için aşağıdaki komutu çalıştırın.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
Uygulamayı test etme
Uygulamayı test etmek için uygulamaya bir GET isteği solar-system-weather
gönderin. Tarayıcıda, sonuna /weatherforecast
eklenmiş genel URL'ye doğru gidin. Örneğin: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
Çıkış JSON'dir:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
Bu yanıt, her iki Spring uygulaması da çalıştığını gösterir. Uygulama, SolarSystemWeather
uygulamadan PlanetWeatherProvider
alınan verileri döndürür.
Bu makalede Spring uygulamalarının nasıl derlenip Azure Spring Apps'e dağıtılacağı açıklanmaktadır. Azure CLI, Maven eklentisi veya IntelliJ kullanabilirsiniz. Bu makalede her alternatif açıklanmaktadır.
Önkoşullar
- Bu serideki önceki hızlı başlangıçların tamamlanması:
- JDK 17
- Maven 3.0 veya üzeri
- Azure aboneliği. Aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- İsteğe bağlı olarak, Azure CLI sürüm 2.45.0 veya üzeri. Aşağıdaki komutla Azure Spring Apps uzantısını yükleyin:
az extension add --name spring
- İsteğe bağlı olarak, IntelliJ için Azure Araç Seti.
Spring uygulamalarını yerel olarak oluştur.
Örnek depoyu kopyalamak, örnek klasöre gitmek ve projeyi oluşturmak için aşağıdaki komutları kullanın.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
Projenin derlenmesi 5-10 dakika sürer. Proje derlendiğinde, ilgili klasörlerinde her hizmet için ayrı JAR dosyalarına sahip olmanız gerekir.
Azure Spring Apps'te uygulama oluşturma ve dağıtma
CLI kullanarak Azure Spring Apps'te uygulama oluşturmak ve dağıtmak için aşağıdaki adımları kullanın.
Önceki hızlı başlangıçlarda aşağıdaki komutları çalıştırmadıysanız, CLI varsayılanlarını ayarlamak için şimdi çalıştırın.
az configure --defaults group=<resource-group-name> spring=<service-name>
PetClinic için iki temel Spring uygulaması oluşturun:
api-gateway
vecustomers-service
.az spring app create \ --name api-gateway \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi \ --assign-endpoint az spring app create \ --name customers-service \ --runtime-version Java_17 \ --instance-count 1 \ --memory 2Gi
Önceki adımda oluşturulan JAR dosyalarını dağıtın.
az spring app deploy \ --name api-gateway \ --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m" az spring app deploy \ --name customers-service \ --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \ --jvm-options="-Xms2048m -Xmx2048m"
Aşağıdaki komutla dağıtımlardan sonra uygulama durumunu sorgular.
az spring app list --output table
Bu komut aşağıdaki örneğe benzer bir çıktı oluşturur:
Name Location ResourceGroup Production Deployment Public Url Provisioning Status CPU Memory Running Instance Registered Instance Persistent Storage ----------------- ---------- --------------- ----------------------- --------------------------------------------------- --------------------- ----- -------- ------------------ --------------------- -------------------- api-gateway eastus xxxxxx-sp default https://<service name>-api-gateway.azuremicroservices.io Succeeded 1 2 1/1 1/1 - customers-service eastus <service name> default Succeeded 1 2 1/1 1/1 -
Hizmetleri doğrulayın
api-gateway
ve customers-service
adreslerine, daha önce gösterilen Genel Url ve https://<service name>-api-gateway.azuremicroservices.io
formatında bir tarayıcıdan erişin.
İpucu
Dağıtımlarla ilgili sorunları çözmek için aşağıdaki komutu kullanarak uygulama her seferinde çalıştırıldığında günlük akışını gerçek zamanlı olarak alabilirsiniz.
Ek uygulama dağıtma
PetClinic uygulamasının Admin Server, Visits ve Veterinerler gibi tüm özelliklerle çalışmasını sağlamak için diğer uygulamaları aşağıdaki komutlarla dağıtın:
az spring app create \
--name admin-server \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi \
--assign-endpoint
az spring app create \
--name vets-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app create \
--name visits-service \
--runtime-version Java_17 \
--instance-count 1 \
--memory 2Gi
az spring app deploy \
--name admin-server \
--runtime-version Java_17 \
--artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name vets-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
--name visits-service \
--runtime-version Java_17 \
--artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
--jvm-options="-Xms1536m -Xmx1536m"
Kaynakları temizleme
Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Azure CLI kullanarak kaynak grubunu silmek için aşağıdaki komutları kullanın:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."