Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł przeprowadzi Cię przez proces tworzenia, konfigurowania, wdrażania, rozwiązywania problemów i skalowania aplikacji internetowych Java w usłudze Azure App Service w systemie Linux.
Pokaże użycie następujących składników:
Warunki wstępne
Aby wykonać kroki opisane w tym artykule, wymagane są następujące wymagania wstępne:
- Aby wdrożyć aplikację internetową Java w chmurze, potrzebna jest subskrypcja platformy Azure. Jeśli nie masz jeszcze subskrypcji platformy Azure, możesz aktywować korzyści dla subskrybentów MSDN lub zarejestrować się w celu uzyskania bezpłatnego konta platformy Azure .
- Interfejs wiersza polecenia platformy Azure 2.0
- java 8 JDK
- Maven 3
Ważny
Do wykonania kroków opisanych w tym artykule jest wymagany program Spring Boot w wersji 2.5 lub nowszej.
Klonowanie przykładowego repozytorium aplikacji internetowej Java
W tym ćwiczeniu użyjesz aplikacji Spring Todo, która jest aplikacją Java utworzoną przy użyciu Spring Boot, Spring Data for Azure Cosmos DB i azure Cosmos DB.
Sklonuj aplikację Spring Todo i skopiuj zawartość folderu .prep, aby zainicjować projekt:
W przypadku powłoki bash:
git clone --recurse-submodules https://github.com/Azure-Samples/e2e-java-experience-in-app-service-linux-part-2.git yes | cp -rf .prep/* .W przypadku systemu Windows:
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 /yZmień katalog na następujący folder w sklonowanym repozytorium:
cd initial\spring-todo-app
Tworzenie usługi Azure Cosmos DB z poziomu interfejsu wiersza polecenia platformy Azure
Poniższa procedura tworzy bazę danych usługi Azure Cosmos DB przy użyciu interfejsu wiersza polecenia.
Zaloguj się do Azure CLI i ustaw swoją subskrypcję.
az loginUstaw identyfikator subskrypcji, jeśli to konieczne.
az account set -s <your-subscription-id>Utwórz grupę zasobów platformy Azure i zapisz nazwę grupy zasobów do późniejszego użycia.
az group create \ --name <your-azure-group-name> \ --location <your-resource-group-region>Utwórz usługę Azure Cosmos DB i określ typ jako GlobalDocumentDB. Nazwa usługi Azure Cosmos DB musi używać tylko małych liter. Pamiętaj, aby zanotować pole
documentEndpointw odpowiedzi. Ta wartość będzie potrzebna później.az cosmosdb create \ --resource-group <your-resource-group-name> \ --name <your-azure-COSMOS-DB-name-in-lower-case-letters> \ --kind GlobalDocumentDBPobierz klucze usługi Azure Cosmos DB, zapisz wartość
primaryMasterKeydo późniejszego użycia.az cosmosdb keys list \ --resource-group <your-azure-group-name> \ --name <your-azure-COSMOSDB-name>
Kompilowanie i uruchamianie aplikacji lokalnie
Poniższa procedura uruchamia aplikację na komputerze dewelopera.
W wybranej konsoli skonfiguruj zmienne środowiskowe przedstawione w poniższych sekcjach kodu przy użyciu informacji o połączeniu platformy Azure i usługi Azure Cosmos DB zebranych wcześniej w tym artykule. Musisz podać unikatową nazwę dla WEBAPP_NAME i wartość dla zmiennej REGION.
W przypadku systemu Linux (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>W przypadku Windows (Wiersz poleceń):
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>Notatka
Jeśli chcesz skonfigurować te zmienne za pomocą skryptu, w katalogu .prep znajduje się szablon skryptu Bash, który można skopiować i użyć jako punktu wyjścia.
Zmień katalog przy użyciu następującego polecenia:
cd initial/spring-todo-appUruchom lokalnie aplikację Spring Todo za pomocą następującego polecenia:
mvn package spring-boot:runPo uruchomieniu aplikacji możesz zweryfikować wdrożenie, korzystając z aplikacji Spring Todo tutaj:
http://localhost:8080/.aplikacja

Wdrażanie do usługi App Service na Linuxie
Poniższa procedura umożliwia wdrożenie aplikacji w systemie Linux na platformie Azure.
Otwórz plik pom.xml, który uprzednio skopiowałeś do katalogu initial/spring-todo-app w repozytorium. Upewnij się, że wtyczka Maven dla usługi Azure App Service jest uwzględniona w poniższym pliku pom.xml. Jeśli wersja nie jest ustawiona na 1.14.0, zaktualizuj wartość.
<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>Wdrożenie do Java SE w App Service na Linuxie
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] ------------------------------------------------------------------------Przejdź do aplikacji internetowej działającej w środowisku Java SE w usłudze App Service w systemie Linux:
https://<WEBAPP_NAME>.azurewebsites.net
aplikacja 
Rozwiązywanie problemów z aplikacją Spring Todo na platformie Azure przez wyświetlanie dzienników
Poniższa procedura otwiera pliki dziennika na platformie Azure.
Skonfiguruj dzienniki wdrożonej aplikacji internetowej Java w usłudze Azure App Service w systemie Linux:
az webapp log config \ --name ${WEBAPP_NAME} \ --resource-group ${RESOURCEGROUP_NAME} \ --web-server-logging filesystemOtwórz strumień dzienników zdalnych aplikacji internetowej w języku Java z komputera lokalnego:
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.
Skaluj w poziomie aplikację Todo Spring
Aby skalować aplikację, wykonaj poniższą procedurę.
Skalowanie w poziomie aplikacji internetowej Java przy użyciu interfejsu wiersza polecenia platformy Azure:
az appservice plan update \ --number-of-workers 2 \ --name ${WEBAPP_PLAN_NAME} \ --resource-group ${RESOURCEGROUP_NAME}
Następne kroki
- Java w przewodniku programistycznym dla usługi App Service w systemie Linux
- azure for Java Developers Aby dowiedzieć się więcej na temat platformy Spring i platformy Azure, przejdź do centrum dokumentacji platformy Spring na platformie Azure.
Zobacz też
Aby uzyskać więcej informacji na temat korzystania z aplikacji Spring Boot na platformie Azure, zobacz następujące artykuły:
Wdrażanie aplikacji Spring Boot w systemie Linux w usłudze Azure App Service
uruchamianie aplikacji Spring Boot w klastrze Kubernetes w usłudze Azure Container Service
Aby uzyskać więcej informacji na temat korzystania z platformy Azure z językiem Java, zobacz Azure for Java Developers oraz Praca z usługami Azure DevOps i Java.
Spring Framework to rozwiązanie typu open source, które ułatwia deweloperom języka Java tworzenie aplikacji na poziomie przedsiębiorstwa. Jednym z bardziej popularnych projektów opartych na tej platformie jest Spring Boot, który zapewnia uproszczone podejście do tworzenia autonomicznych aplikacji Java. Aby ułatwić deweloperom rozpoczęcie pracy z platformą Spring Boot, kilka przykładowych pakietów Spring Boot jest dostępnych na stronie https://github.com/spring-guides/. Oprócz wyboru z listy podstawowych projektów Spring Boot Spring Initializr ułatwia deweloperom rozpoczęcie tworzenia niestandardowych aplikacji Spring Boot.