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.
Bu makale, Linux üzerinde Azure App Service'te Java Web uygulamalarını oluşturma, yapılandırma, dağıtma, sorun giderme ve ölçeklendirme sürecinde size yol gösterir.
Aşağıdaki bileşenlerin kullanımını gösterir:
- NoSQL için Azure Cosmos DB ile Spring Boot Starter
- Azure Cosmos DB
- App Service Linux
Önkoşullar
Bu makaledeki adımları izlemek için aşağıdaki önkoşullar gereklidir:
- Bir Java Web uygulamasını buluta dağıtmak için bir Azure aboneliğine ihtiyacınız vardır. Henüz bir Azure aboneliğiniz yoksa,
MSDN abone avantajlarınızı etkinleştirebilir veya ücretsiz bir Azure hesabına kaydolabilirsiniz. - Azure CLI 2.0
- Java 8 JDK
- Maven 3
Önemli
Bu makaledeki adımları tamamlamak için Spring Boot sürüm 2.5 veya üzeri gereklidir.
Örnek Java Web Uygulaması Deposunu Kopyalama
Bu alıştırmada,
Spring Todo uygulamasını kopyalayın ve projeyi başlatmak için .prep klasörünün içeriğini kopyalayın:
Bash için:
git clone --recurse-submodules https://github.com/Azure-Samples/e2e-java-experience-in-app-service-linux-part-2.git yes | cp -rf .prep/* .Windows için:
git clone --recurse-submodules https://github.com/Azure-Samples/e2e-java-experience-in-app-service-linux-part-2.git cd e2e-java-experience-in-app-service-linux-part-2 xcopy .prep /f /s /e /yDizini kopyalanan depoda aşağıdaki klasörle değiştirin:
cd initial\spring-todo-app
Azure CLI'dan Azure Cosmos DB oluşturma
Aşağıdaki yordam CLI kullanarak Azure Cosmos DB veritabanı oluşturur.
Azure CLI'nızda oturum açın ve abonelik kimliğinizi ayarlayın.
az loginGerekirse abonelik kimliğini ayarlayın.
az account set -s <your-subscription-id>Bir Azure kaynak grubu oluşturun ve daha sonra kullanmak üzere kaynak grubu adını bir kenara kaydedin.
az group create \ --name <your-azure-group-name> \ --location <your-resource-group-region>Azure Cosmos DB'yi oluşturun ve türünü GlobalDocumentDB olarak belirtin. Azure Cosmos DB'nin adı yalnızca küçük harf kullanmalıdır. Yanıttaki
documentEndpointalanını not edin. Bu değere daha sonra ihtiyacınız olacak.az cosmosdb create \ --resource-group <your-resource-group-name> \ --name <your-azure-COSMOS-DB-name-in-lower-case-letters> \ --kind GlobalDocumentDBAzure Cosmos DB anahtarlarınızı alın, daha sonra kullanmak üzere
primaryMasterKeydeğerini kaydedin.az cosmosdb keys list \ --resource-group <your-azure-group-name> \ --name <your-azure-COSMOSDB-name>
Uygulamayı Yerel Olarak Derleme ve Çalıştırma
Aşağıdaki yordam uygulamayı geliştirme bilgisayarında çalıştırır.
Tercih ettiğiniz konsolda, aşağıdaki kod bölümlerinde gösterilen ortam değişkenlerini, bu makalede daha önce topladığınız Azure ve Azure Cosmos DB bağlantı bilgileriyle yapılandırın. WEBAPP_NAME ve REGION değişkenleri için benzersiz bir ad ve değer sağlamanız gerekir.
Linux için (Bash):
export COSMOS_URI=<put-your-COSMOS-DB-documentEndpoint-URI-here> export COSMOS_KEY=<put-your-COSMOS-DB-primaryMasterKey-here> export COSMOS_DATABASE=<put-your-COSMOS-DATABASE-name-here> export RESOURCEGROUP_NAME=<put-your-resource-group-name-here> export WEBAPP_NAME=<put-your-Webapp-name-here> export REGION=<put-your-REGION-here> export SUBSCRIPTION_ID=<put-your-SUBSCRIPTION_ID-here>Windows için (Komut İstemi):
set COSMOS_URI=<put-your-COSMOS-DB-documentEndpoint-URI-here> set COSMOS_KEY=<put-your-COSMOS-DB-primaryMasterKey-here> set COSMOS_DATABASE=<put-your-COSMOS-DATABASE-name-here> set RESOURCEGROUP_NAME=<put-your-resource-group-name-here> set WEBAPP_NAME=<put-your-Webapp-name-here> set REGION=<put-your-REGION-here> set SUBSCRIPTION_ID=<put-your-SUBSCRIPTION_ID-here>Not
Bu değişkenleri bir betikle sağlamak isterseniz, .prep dizininde bash için kopyalayıp başlangıç noktası olarak kullanabileceğiniz bir şablon vardır.
Aşağıdaki komutu kullanarak dizini değiştirin:
cd initial/spring-todo-appSpring Todo uygulamasını aşağıdaki komutla yerel olarak çalıştırın:
mvn package spring-boot:runUygulama başlatıldıktan sonra, Spring Todo uygulamasına buradan erişerek dağıtımı doğrulayabilirsiniz:
http://localhost:8080/.Yerel olarak çalışan

App Service Linux'a dağıtma
Aşağıdaki yordam, uygulamayı Azure üzerinde Linux'a dağıtır.
Daha önce deponun initial/spring-todo-app dizinine kopyaladığınız pom.xml dosyasını açın. Azure App Service için
Maven Eklentisinin aşağıdaki pom.xml dosyasında görüldüğü gibi eklendiğinden emin olun. Sürüm 1.14.0olarak ayarlı değilse değeri güncelleştirin.<plugins> <!--*************************************************--> <!-- Deploy to Java SE in App Service Linux --> <!--*************************************************--> <plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>1.14.0</version> <configuration> <schemaVersion>v2</schemaVersion> <subscriptionId>${SUBSCRIPTION_ID}</subscriptionId> <!-- Web App information --> <resourceGroup>${RESOURCEGROUP_NAME}</resourceGroup> <appName>${WEBAPP_NAME}</appName> <region>${REGION}</region> <pricingTier>P1v2</pricingTier> <!-- Java Runtime Stack for Web App on Linux--> <runtime> <os>Linux</os> <javaVersion>Java 8</javaVersion> <webContainer>Java SE</webContainer> </runtime> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> <appSettings> <property> <name>COSMOS_URI</name> <value>${COSMOS_URI}</value> </property> <property> <name>COSMOS_KEY</name> <value>${COSMOS_KEY}</value> </property> <property> <name>COSMOS_DATABASE</name> <value>${COSMOS_DATABASE}</value> </property> <property> <name>JAVA_OPTS</name> <value>-Dserver.port=80</value> </property> </appSettings> </configuration> </plugin> ... </plugins>App Service Linux'ta Java SE'ye dağıtma
mvn azure-webapp:deploy// Deploy bash-3.2$ mvn azure-webapp:deploy [INFO] Scanning for projects... [INFO] [INFO] -------< com.azure.spring.samples:spring-todo-app >-------- [INFO] Building spring-todo-app 2.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- azure-webapp-maven-plugin:1.14.0:deploy (default-cli) @ spring-todo-app --- Auth type: AZURE_CLI Default subscription: Consoto Subscription(subscription-id-xxx) Username: user@contoso.com [INFO] Subscription: Consoto Subscription(subscription-id-xxx) [INFO] Creating app service plan... [INFO] Successfully created app service plan asp-spring-todo-app. [INFO] Creating web app spring-todo-app... [INFO] Successfully created Web App spring-todo-app. [INFO] Trying to deploy artifact to spring-todo-app... [INFO] Successfully deployed the artifact to https://spring-todo-app.azurewebsites.net [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:05 min [INFO] Finished at: 2021-05-28T09:43:19+08:00 [INFO] ------------------------------------------------------------------------App Service Linux'ta Java SE üzerinde çalışan web uygulamanıza göz atın:
https://<WEBAPP_NAME>.azurewebsites.net
Linux üzerinde App Service'te çalışan
Günlükleri Görüntüleyerek Azure'da Spring Todo Uygulaması sorunlarını giderme
Aşağıdaki yöntem Azure'da kayıt dosyalarını açar.
Linux'ta Azure App Service'te dağıtılan Java Web uygulaması için günlükleri yapılandırın:
az webapp log config \ --name ${WEBAPP_NAME} \ --resource-group ${RESOURCEGROUP_NAME} \ --web-server-logging filesystemYerel bir makineden Java Web uygulamasının uzak günlük akışına erişim sağlayın:
az webapp log tail \ --name ${WEBAPP_NAME} \ --resource-group ${RESOURCEGROUP_NAME}bash-3.2$ az webapp log tail --name ${WEBAPP_NAME} --resource-group ${RESOURCEGROUP_NAME} 2021-05-28T01:46:08.000655632Z _____ 2021-05-28T01:46:08.000701432Z / _ \ __________ _________ ____ 2021-05-28T01:46:08.000708133Z / /_\ \___ / | \_ __ \_/ __ \ 2021-05-28T01:46:08.000711733Z / | \/ /| | /| | \/\ ___/ 2021-05-28T01:46:08.000714933Z \____|__ /_____ \____/ |__| \___ > 2021-05-28T01:46:08.000718233Z \/ \/ \/ 2021-05-28T01:46:08.000721333Z A P P S E R V I C E O N L I N U X 2021-05-28T01:46:08.000724233Z Documentation: http://aka.ms/webapp-linux ... ... 2021-05-28T01:46:18.925044188Z . ____ _ __ _ _ 2021-05-28T01:46:18.925481392Z /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 2021-05-28T01:46:18.926004297Z ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 2021-05-28T01:46:18.926587603Z \\/ ___)| |_)| | | | | || (_| | ) ) ) ) 2021-05-28T01:46:18.926599403Z ' |____| .__|_| |_|_| |_\__, | / / / / 2021-05-28T01:46:18.926841806Z =========|_|==============|___/=/_/_/_/ 2021-05-28T01:46:18.931157849Z :: Spring Boot :: (v2.4.5) ... ... 2021-05-28T01:46:29.842553633Z 2021-05-28 01:46:29.842 INFO 124 --- [ main] c.azure.spring. samples.TodoApplication : Started TodoApplication in 12.635 seconds (JVM running for 17.664) 2021-05-28T01:46:30.477951594Z 2021-05-28 01:46:30.477 INFO 124 --- [p-nio-80-exec-1] o.a.c.c.C. [Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2021-05-28T01:46:30.483316162Z 2021-05-28 01:46:30.483 INFO 124 --- [p-nio-80-exec-1] o.s.web. servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2021-05-28T01:46:30.485411088Z 2021-05-28 01:46:30.484 INFO 124 --- [p-nio-80-exec-1] o.s.web. servlet.DispatcherServlet : Completed initialization in 0 ms 2021-05-28T01:47:19.683003828Z 2021-05-28 01:47:19.682 INFO 124 --- [p-nio-80-exec-9] c.a.s.s. controller.TodoListController : GET request access '/api/todolist' path. 2021-05-28T01:47:26.069984388Z 2021-05-28 01:47:26.069 INFO 124 --- [-nio-80-exec-10] c.a.s.s. controller.TodoListController : POST request access '/api/todolist' path with item: Milk 2021-05-28T01:47:26.649080678Z 2021-05-28 01:47:26.648 INFO 124 --- [p-nio-80-exec-1] c.a.s.s. controller.TodoListController : GET request access '/api/todolist' path.
Spring Todo Uygulamasının ölçeğini genişletme
Uygulamayı ölçeklendirmek için aşağıdaki yordamı kullanın.
Azure CLI kullanarak Java Web uygulamasının ölçeğini genişletme:
az appservice plan update \ --number-of-workers 2 \ --name ${WEBAPP_PLAN_NAME} \ --resource-group ${RESOURCEGROUP_NAME}
Sonraki adımlar
- App Service Linux geliştirme kılavuzunda Java
- Java Geliştiricileri için Azure Spring ve Azure hakkında daha fazla bilgi edinmek için Spring on Azure belge merkezine geçin.
Ayrıca bkz.
Azure'da Spring Boot uygulamalarını kullanma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Azure Container Service bir Kubernetes Kümesinde Spring Boot Uygulaması Çalıştırma
Azure'ı Java ile nasıl kullanacağınız hakkında daha fazla bilgi için "Java Geliştiricileri için Azure" ve "Azure DevOps ve Java ile Çalışma" sayfalarına bakın.
Spring Framework, Java geliştiricilerinin kurumsal düzeyde uygulamalar oluşturmalarına yardımcı olan açık kaynaklı bir çözümdür. Bu platform üzerine inşa edilen daha popüler projelerden biri, tek başına Java uygulamaları geliştirmek için basitleştirilmiş bir yaklaşım sunan Spring Boot'dir. Geliştiricilerin Spring Boot'ı kullanmaya başlamasına yardımcı olmak için https://github.com/spring-guides/adresinde çeşitli örnek Spring Boot paketleri mevcuttur. temel Spring Boot projeleri listesinden seçim yapmaya ek olarak, Spring Initializr geliştiricilerin özel Spring Boot uygulamaları oluşturmaya başlamasına yardımcı olur.