Bagikan melalui


Mulai cepat: Membangun dan menyebarkan aplikasi ke Azure Spring Apps

Note

Paket Basic, Standard, dan Enterprise memasuki periode pensiun pada 17 Maret 2025. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.

Artikel ini berlaku untuk:✅ Basic/Standard ❎ Enterprise

Panduan ini menjelaskan cara membangun dan menerapkan aplikasi Spring ke Azure Spring Apps menggunakan Azure CLI.

Prerequisites

Mengunduh aplikasi sampel

Gunakan langkah-langkah berikut untuk mengunduh aplikasi sampel. Jika Anda telah menggunakan Azure Cloud Shell, beralihlah ke prompt perintah lokal.

  1. 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
    
  2. Navigasikan ke direktori repositori.

    cd azure-spring-apps-samples
    

Menyebarkan PlanetWeatherProvider

Gunakan langkah-langkah berikut untuk menyebarkan proyek PlanetWeatherProvider.

  1. 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 perlu waktu beberapa menit untuk dijalankan.

  2. Ubah direktori ke folder proyek PlanetWeatherProvider .

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Buat biner dan file .zip yang akan 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>
    
  4. Sebarkan proyek ke Azure.

    Pastikan bahwa perintah berada di folder proyek sebelum menjalankan perintah berikut.

    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 perlu waktu beberapa menit untuk dijalankan.

Memasang SolarSystemWeather

Gunakan langkah-langkah berikut untuk menyebarkan proyek SolarSystemWeather.

  1. 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 SolarSystemWeather file appsettings.json proyek.

    Perintah ini mungkin perlu waktu beberapa menit untuk dijalankan.

  2. Ubah direktori ke SolarSystemWeather proyek.

    cd ../solar-system-weather
    
  3. Buat biner dan file .zip yang akan disebarkan.

    dotnet publish -c release -o ./publish
    
  4. 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 perlu 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.

  1. Jalankan perintah berikut untuk menetapkan titik akhir.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. 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 PlanetWeatherProvider aplikasi.

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.

Prerequisites

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

Mengkompilasi 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.

  1. Jika Anda tidak menjalankan perintah berikut dalam pengenalan cepat sebelumnya, jalankan untuk mengatur default CLI sekarang.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Buat dua aplikasi Spring inti untuk PetClinic: api-gateway dan customers-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
    
  3. Sebarkan file JAR yang dibangun pada 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"
    
  4. 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.

Cuplikan layar aplikasi sampel PetClinic yang memperlihatkan halaman Pemilik.

Tip

Untuk memecahkan masalah penyebaran, Anda dapat menggunakan perintah berikut untuk mendapatkan log streaming 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 panduan cepat atau tutorial berikutnya, Anda mungkin ingin membiarkan 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 ..."

Langkah selanjutnya