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üketim ve ayrılmış planını Azure Container Apps'e geçirin.
Bu makale şunlar için geçerlidir: ❎ Temel/Standart ✅ Kurumsal
Bu hızlı başlangıçta Spring Boot uygulamasının Azure Spring Apps'e Yerel Görüntü olarak nasıl dağıtılacağı gösterilmektedir.
Yerel Görüntü özelliği, Java uygulamalarını Yerel Görüntüler olarak bilinen tek başına yürütülebilir dosyalara derlemenizi sağlar. Bu yürütülebilir dosyalar, geleneksel JVM'ye (Java Sanal Makinesi) kıyasla daha hızlı başlangıç süreleri ve daha düşük çalışma zamanı bellek yükü de dahil olmak üzere önemli avantajlar sağlayabilir.
Örnek proje Spring Petclinic uygulamasıdır. Aşağıdaki ekran görüntüsünde uygulama gösterilmektedir:
1. Önkoşullar
- Azure aboneliği. Aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Git.
- Java Development Kit (JDK), sürüm 17.
-
Azure CLI sürüm 2.45.0 veya üzeri. Azure Spring Apps uzantısını yüklemek için aşağıdaki komutu kullanın:
az extension add --name spring
- Hedef abonelikte ilk kez bir Azure Spring Apps Kurumsal plan örneği dağıtıyorsanız, Azure Market'de Azure Spring Apps Kurumsal katmanı teklifini görüntüleme'nin Gereksinimler bölümüne bakın.
2. Spring Petclinic projesini hazırlama
Uygulamayı yerel olarak kopyalamak ve çalıştırmak için aşağıdaki adımları kullanın.
GitHub'dan Spring Petclinic projesini kopyalamak için aşağıdaki komutu kullanın:
git clone https://github.com/Azure-Samples/spring-petclinic.git
Spring Petclinic projesini oluşturmak için aşağıdaki komutu kullanın:
cd spring-petclinic ./mvnw clean package -DskipTests -Pnative package
Maven kullanarak Spring Petclinic uygulamasını çalıştırmak için aşağıdaki komutu kullanın:
java -jar target/spring-petclinic-3.1.0-SNAPSHOT.jar
Spring Petclinic uygulamasına erişmek için tarayıcınızda
http://localhost:8080
adresine gidin.
3. Bulut ortamını hazırlama
Spring Petclinic uygulamasını çalıştırmak için gereken ana kaynak bir Azure Spring Apps örneğidir. Bu bölümde, kaynağı oluşturma adımları sağlanır.
3.1. Her kaynak için ad sağlayın
Aşağıdaki komutları kullanarak kaynak adlarını tutmak için değişkenler oluşturun. Yer tutucuları kendi değerlerinizle değiştirmeyi unutmayın.
export RESOURCE_GROUP=<resource-group-name>
export LOCATION=<location>
export AZURE_SPRING_APPS_NAME=<Azure-Spring-Apps-service-instance-name>
export NATIVE_BUILDER=native-builder
export JAR_APP_NAME=jar-app
export NATIVE_APP_NAME=native-app
export JAR_PATH=target/spring-petclinic-3.1.0-SNAPSHOT.jar
3.2. Yeni bir kaynak grubu oluşturma
Yeni bir kaynak grubu oluşturmak için aşağıdaki adımları kullanın:
Azure CLI'da oturum açmak için aşağıdaki komutu kullanın:
az login
Varsayılan konumu ayarlamak için aşağıdaki komutu kullanın:
az configure --defaults location=${LOCATION}
Kullanılacak abonelik kimliğini belirlemek üzere tüm kullanılabilir abonelikleri listelemek için aşağıdaki komutu kullanın:
az account list --output table
Varsayılan aboneliği ayarlamak için aşağıdaki komutu kullanın:
az account set --subscription <subscription-ID>
Kaynak grubu oluşturmak için aşağıdaki komutu kullanın:
az group create --resource-group ${RESOURCE_GROUP}
Yeni oluşturulan kaynak grubunu varsayılan kaynak grubu olarak ayarlamak için aşağıdaki komutu kullanın:
az configure --defaults group=${RESOURCE_GROUP}
3.3. Azure Spring Apps örneği oluşturma
Azure Spring Apps, Spring Petclinic uygulamasını barındırmak için kullanılır. Bir Azure Spring Apps örneği ve içinde iki uygulama oluşturmak için aşağıdaki adımları kullanın:
Azure Spring Apps hizmet örneği oluşturmak için aşağıdaki komutu kullanın. Yerel görüntü derlemesi, görüntü derlemesi sırasında 16 Gi bellek gerektirir, bu nedenle derleme havuzu boyutunu S7 olarak yapılandırın.
az spring create \ --name ${AZURE_SPRING_APPS_NAME} \ --sku enterprise \ --build-pool-size S7
Geçerli dizinde bir builder-native.json dosyası oluşturun ve aşağıdaki içeriği ekleyin:
{ "stack": { "id": "io.buildpacks.stacks.jammy", "version": "tiny" }, "buildpackGroups": [ { "name": "default", "buildpacks": [ { "id": "tanzu-buildpacks/java-native-image" } ] } ] }
Yerel Görüntü uygulamasını derlemek üzere özel bir oluşturucu oluşturmak için aşağıdaki komutu kullanın:
az spring build-service builder create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_BUILDER} \ --builder-file builder-native.json
Azure Spring Apps örneğinde Spring Petclinic uygulamasının JAR dosyası olarak dağıtılacağı bir uygulama oluşturmak için aşağıdaki komutu kullanın. Bellek sınırını 1 Gi olarak yapılandırın.
az spring app create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${JAR_APP_NAME} \ --cpu 1 \ --memory 1Gi \ --assign-endpoint true
Azure Spring Apps örneğinde Spring Petclinic uygulamasının Yerel Görüntü olarak dağıtılacağı bir uygulama oluşturmak için aşağıdaki komutu kullanın:
az spring app create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME} \ --cpu 1 \ --memory 1Gi \ --assign-endpoint true
4. Uygulamayı Azure Spring Apps'e dağıtma
Artık bulut ortamı hazır olduğuna göre, uygulamalar dağıtıma hazırdır.
Spring Petclinic uygulamasını JAR dosyası olarak dağıtmak için aşağıdaki komutu kullanın:
az spring app deploy \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME} \
--artifact-path ${JAR_PATH} \
--build-env BP_JVM_VERSION=17
Spring Petclinic uygulamasını Yerel Görüntü olarak dağıtmak için aşağıdaki komutu kullanın:
az spring app deploy \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME} \
--builder ${NATIVE_BUILDER} \
--build-cpu 8 \
--build-memory 16Gi \
--artifact-path ${JAR_PATH} \
--build-env BP_JVM_VERSION=17 BP_NATIVE_IMAGE=true
5. Yerel Görüntü Uygulamasını Doğrulama
Artık dağıtılan Yerel Görüntü uygulamasına erişerek çalışıp çalışmadığını görebilirsiniz. Doğrulamak için aşağıdaki adımları kullanın:
Dağıtım tamamlandıktan sonra aşağıdaki komutu çalıştırarak uygulama URL'sini alabilirsiniz:
az spring app show \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME} \ --output table
Çıkışta olarak
Public Url
gösterilen URL ile uygulamaya erişebilirsiniz. Sayfa, o localhost'ta gördüğünüz gibi görünmelidir.Herhangi bir dağıtım sorununu araştırmak üzere uygulamanın günlüğünü denetlemek için aşağıdaki komutu kullanın:
az spring app logs \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME}
6. JAR ve Yerel Görüntü performansını karşılaştırma
Aşağıdaki bölümlerde JAR ile Yerel Görüntü dağıtımı arasındaki performansın nasıl karşılaştırıldığı açıklanmaktadır.
Sunucu başlangıç zamanı
Jar uygulaması için sunucu başlangıç zamanını elde etmek amacıyla uygulamanın kaydını Started PetClinicApplication in XXX seconds
kontrol etmek için aşağıdaki komutu kullanın:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME}
Jar uygulaması için sunucu başlatma süresi yaklaşık 25 sn'dir.
Yerel Görüntü uygulamasının sunucu başlangıç zamanını almak üzere uygulamanın günlüğünü denetlemek için aşağıdaki komutu kullanın:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME}
Yerel Görüntü uygulaması için sunucu başlatma süresi 0,5 sn'den kısadır.
Bellek kullanımı
Yerel Görüntü uygulaması için bellek boyutunu 512 Mi'ye küçültmek için aşağıdaki komutu kullanın:
az spring app scale \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME} \
--memory 512Mi
Komut çıktısı, Yerel Görüntü uygulamasının başarıyla başlatıldığını göstermelidir.
JAR uygulaması için bellek boyutunun ölçeğini 512 Mi'ye küçültmek için aşağıdaki komutu kullanın:
az spring app scale \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME} \
--memory 512Mi
Komut çıktısı JAR uygulamasının yetersiz bellek nedeniyle başlatılamadığını göstermelidir. Çıkış iletisi aşağıdaki örneğe benzer olmalıdır: Terminating due to java.lang.OutOfMemoryError: Java heap space
.
Aşağıdaki şekilde, Petclinic uygulamasına saniyede 400 istek içeren sabit bir iş yükü için Yerel Görüntü dağıtımı için iyileştirilmiş bellek kullanımı gösterilmektedir. Bellek kullanımı, eşdeğer JAR dağıtımı tarafından kullanılan belleğin yaklaşık 1/5'idir.
Yerel Görüntüler, geleneksel Java Sanal Makinesi (JVM) ile karşılaştırıldığında daha hızlı başlangıç süreleri ve azaltılmış çalışma zamanı bellek yükü sunar.
7. Kaynakları temizleme
Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Kaynaklara artık ihtiyacınız kalmadığında, kaynak grubunu silerek bunları silin. Kaynak grubunu silmek için aşağıdaki komutu kullanın:
az group delete --name ${RESOURCE_GROUP}
8. Sonraki adımlar
Daha fazla bilgi için aşağıdaki makaleleri inceleyin: