Mulai Cepat: Membangun dan menyebarkan aplikasi ke Azure Spring Apps
Catatan
Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.
Artikel ini berlaku untuk: ✔️ Basic/Standard ❌ Enterprise
Mulai cepat ini menjelaskan cara membangun dan menyebarkan aplikasi Spring ke Azure Spring Apps menggunakan Azure CLI.
Prasyarat
- Penyelesaian mulai cepat sebelumnya dalam seri ini:
- Menyediakan instans layanan Azure Spring Apps.
- Siapkan Server Konfigurasi Azure Spring Apps.
Mengunduh aplikasi sampel
Gunakan langkah-langkah berikut untuk mengunduh aplikasi sampel. Jika Anda telah menggunakan Azure Cloud Shell, beralihlah ke prompt perintah lokal.
Buat folder baru dan kloning repositori aplikasi sampel.
mkdir source-code
cd source-code
git clone https://github.com/Azure-Samples/azure-spring-apps-samples
Navigasikan ke direktori repositori.
cd azure-spring-apps-samples
Sebarkan PlanetWeatherProvider
Gunakan langkah-langkah berikut untuk menyebarkan proyek PlanetWeatherProvider.
Buat aplikasi untuk
PlanetWeatherProvider
proyek di instans Azure Spring Apps Anda.az spring app create --name planet-weather-provider --runtime-version NetCore_31
Untuk mengaktifkan pendaftaran layanan otomatis, Anda telah memberi aplikasi nama yang sama dengan nilai
spring.application.name
dalam file appsettings.json proyek:"spring": { "application": { "name": "planet-weather-provider" } }
Perintah ini mungkin memerlukan waktu beberapa menit untuk dijalankan.
Ubah direktori ke folder proyek
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
Buat biner dan file .zip untuk disebarkan.
dotnet publish -c release -o ./publish
Tip
File proyek berisi XML berikut untuk mengemas biner dalam file .zip setelah menulisnya ke folder ./publish:
<Target Name="Publish-Zip" AfterTargets="Publish"> <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" /> </Target>
Sebarkan proyek ke Azure.
Pastikan bahwa perintah berada di folder proyek sebelum menjalankan perintah berikut ini.
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
Opsi
--main-entry
menentukan jalur relatif dari folder akar file .zip ke file .dll yang berisi titik masuk aplikasi. Setelah layanan mengunggah file .zip, layanan mengekstrak semua file dan folder, lalu mencoba menjalankan titik masuk dalam file .dll yang ditentukan.Perintah ini mungkin memerlukan waktu beberapa menit untuk dijalankan.
Menyebarkan SolarSystemWeather
Gunakan langkah-langkah berikut untuk menyebarkan proyek SolarSystemWeather.
Buat aplikasi lain di instans Azure Spring Apps Anda untuk proyek.
az spring app create --name solar-system-weather --runtime-version NetCore_31
solar-system-weather
adalah nama yang ditentukan dalam proyekSolarSystemWeather
dari file appsettings.js.Perintah ini mungkin memerlukan waktu beberapa menit untuk dijalankan.
Ubah direktori ke proyek
SolarSystemWeather
.cd ../solar-system-weather
Buat biner dan file .zip untuk disebarkan.
dotnet publish -c release -o ./publish
Sebarkan proyek ke Azure.
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
Perintah ini mungkin memerlukan waktu beberapa menit untuk dijalankan.
Menetapkan titik akhir publik
Sebelum menguji aplikasi, dapatkan titik akhir publik untuk permintaan HTTP GET ke solar-system-weather
aplikasi.
Jalankan perintah berikut untuk menetapkan titik akhir.
az spring app update --name solar-system-weather --assign-endpoint true
Jalankan perintah berikut untuk mendapatkan URL titik akhir.
Windows:
az spring app show --name solar-system-weather --output table
Linux:
az spring app show --name solar-system-weather | grep url
Uji aplikasi
Untuk menguji aplikasi, kirim permintaan GET ke solar-system-weather
aplikasi. Di browser, navigasikan ke URL publik dengan /weatherforecast
ditambahkan ke url tersebut. Misalnya: https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast
Outputnya adalah JSON:
[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]
Respons ini menunjukkan bahwa kedua aplikasi Spring berfungsi. Aplikasi SolarSystemWeather
mengembalikan data yang diambil dari aplikasi PlanetWeatherProvider
.
Artikel ini menjelaskan cara membangun dan menyebarkan aplikasi Spring ke Azure Spring Apps. Anda dapat menggunakan Azure CLI, plugin Maven, atau Intellij. Artikel ini menjelaskan setiap alternatif.
Prasyarat
- Penyelesaian mulai cepat sebelumnya dalam seri ini:
- Menyediakan instans layanan Azure Spring Apps.
- Siapkan Server Konfigurasi Azure Spring Apps.
- JDK 17
- Maven 3.0 atau di atasnya
- Langganan Azure. Jika Anda tidak memiliki langganan, buat akun gratis sebelum memulai.
- Secara opsional, Azure CLI versi 2.45.0 atau yang lebih tinggi. Instal ekstensi Azure Spring Apps dengan perintah berikut:
az extension add --name spring
- Secara opsional, Azure Toolkit untuk IntelliJ.
Membangun aplikasi Spring secara lokal
Gunakan perintah berikut untuk mengkloning repositori sampel, menavigasi ke folder sampel, lalu buat proyek.
git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud
Kompilasi proyek membutuhkan waktu 5-10 menit. Ketika proyek dikompilasi, Anda harus memiliki file JAR individual untuk setiap layanan di folder masing-masing.
Membuat dan menyebarkan aplikasi di Azure Spring Apps
Gunakan langkah-langkah berikut untuk membuat dan menyebarkan aplikasi di Azure Spring Apps menggunakan CLI.
Jika Anda tidak menjalankan perintah berikut di mulai cepat sebelumnya, jalankan sekarang untuk mengatur default CLI.
az configure --defaults group=<resource-group-name> spring=<service-name>
Buat dua aplikasi Spring inti untuk PetClinic:
api-gateway
dancustomers-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
Sebarkan file JAR yang dibangun di langkah sebelumnya.
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"
Kueri status aplikasi setelah penyebaran dengan perintah berikut.
az spring app list --output table
Perintah ini menghasilkan output yang mirip dengan contoh berikut:
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 -
Verifikasi layanan
Akses api-gateway
dan customers-service
dari browser dengan Url Publik yang diperlihatkan sebelumnya, dalam format https://<service name>-api-gateway.azuremicroservices.io
.
Tip
Untuk memecahkan masalah penyebaran, Anda dapat menggunakan perintah berikut untuk mendapatkan streaming log secara real time setiap kali aplikasi berjalan az spring app logs --name <app name> --follow
.
Menyebarkan aplikasi tambahan
Untuk membuat aplikasi PetClinic berfungsi dengan semua fitur seperti Admin Server, Visits, dan Veterinarians, sebarkan aplikasi lain dengan perintah berikut:
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"
Membersihkan sumber daya
Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini tetap di tempatnya. Jika tidak lagi diperlukan, hapus grup sumber daya yang juga akan menghapus sumber daya di grup sumber daya. Untuk menghapus grup sumber daya dengan menggunakan Azure CLI, gunakan perintah berikut:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."