Aracılığıyla paylaş


Hızlı Başlangıç: Azure Spring Apps'te uygulama derleme ve dağıtma

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

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

  1. 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
    
  2. Depo dizinine gidin.

    cd azure-spring-apps-samples
    

PlanetWeatherProvider'ı dağıtma

PlanetWeatherProvider projesini dağıtmak için aşağıdaki adımları kullanın.

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

  2. Dizini proje klasörüne PlanetWeatherProvider değiştirin.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. 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>
    
  4. 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.

  1. 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 SolarSystemWeather dosyasında belirtilen addır.

    Bu komutun çalıştırılması birkaç dakika sürebilir.

  2. Dizini projeye değiştirin SolarSystemWeather .

    cd ../solar-system-weather
    
  3. Dağıtılacak ikili dosyaları ve .zip dosyasını oluşturun.

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

  1. Uç noktayı atamak için aşağıdaki komutu çalıştırın.

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

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.

  1. Ö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>
    
  2. PetClinic için iki temel Spring uygulaması oluşturun: api-gateway ve 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. Ö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"
    
  4. 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.

Sahipler sayfasını gösteren PetClinic örnek uygulamasının ekran görüntüsü.

İ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 ..."

Sonraki adımlar