Hızlı Başlangıç: Azure Spring Apps'te uygulama derleme ve dağıtma
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. 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 appsettings.json dosyasındaki değeriyle
spring.application.name
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ı karşıya yükledikten sonra tüm dosya ve klasörleri ayıklar ve 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
, projenin appsettings.json dosyasında belirtilenSolarSystemWeather
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ç nokta atama
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 eklenmiş genel URL'ye /weatherforecast
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 derleme
Ö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ğrulama
Daha api-gateway
önce gösterilen Genel Url'ye sahip bir tarayıcıdan ve customers-service
biçiminde erişinhttps://<service name>-api-gateway.azuremicroservices.io
.
İpucu
Dağıtımlarla ilgili sorunları çözmek için aşağıdaki komutu kullanarak uygulama her çalıştırılırken az spring app logs --name <app name> --follow
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 ..."