Ćwiczenie — Wdrażanie aplikacji internetowej Java w usłudze Azure App Service

Ukończone

W tej lekcji wdrożysz swoją aplikację w usłudze Azure App Service.

Co to jest usługa Azure App Service?

Platforma Azure udostępnia usługę Azure App Service w formie platformy jako usługi (PaaS) na potrzeby uruchamiania serwera Tomcat. Udostępnia ona środowisko systemu Windows i Linux, zabezpieczenia, równoważenie obciążenia, skalowanie automatyczne i integrację z usługami DevOps. Możesz pozostawić zarządzanie systemem operacyjnym i serwerem Tomcat platformie Azure i skoncentrować się na tworzeniu aplikacji.

Screenshot that shows the Azure portal screen.

Pobieranie przykładowych aplikacji JSF

Aby wdrożyć aplikację internetową w języku Java, możesz pobrać aplikację internetową JavaFaces JavaServer Faces (JSF) z usługi GitHub, jak pokazano poniżej:

git clone https://github.com/yoshioterada/Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0

Po sklonowanie zobaczysz następujące pliki w katalogu:

Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
├── pom.xml
└── src
    └── main
        ├── java
        │   └── com
        │       └── microsoft
        │           └── azure
        │               └── samples
        │                   ├── controller
        │                   │   └── TodoListController.java
        │                   ├── dao
        │                   │   ├── ItemManagement.java
        │                   │   └── TodoItemManagementInMemory.java
        │                   └── model
        │                       └── TodoItem.java
        └── webapp
            ├── META-INF
            │   └── context.xml
            ├── WEB-INF
            │   ├── beans.xml
            │   ├── classes
            │   │   └── logging.properties
            │   ├── faces-config.xml
            │   └── web.xml
            └── index.xhtml

Wtyczka Maven dla usługi Azure App Service

Firma Microsoft udostępnia wtyczkę Maven dla usługi aplikacja systemu Azure, aby ułatwić deweloperom języka Java wdrażanie aplikacji na platformie Azure. Korzystając z tej wtyczki, możesz łatwo skonfigurować i wdrożyć swoją aplikację na platformie Azure. Wykonaj następujące polecenie, aby użyć wtyczki Maven dla usługi aplikacja systemu Azure Service.

Konfigurowanie wtyczki Maven dla usługi Azure App Service

Aby skonfigurować wtyczkę Maven dla usługi aplikacja systemu Azure, wykonaj następujące polecenie:

mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config

Po wykonaniu polecenia w wierszu polecenia zostanie wyświetlonych kilka pytań — wprowadź i wybierz odpowiednie elementy i ustaw je. Wprowadź następujące opcje:

Produkt Wartość wejściowa
Subskrypcja Wybierz swoją subskrypcję platformy Azure
Define value for OS (Zdefiniuj wartość dla systemu operacyjnego) 1: Linux
Define value for pricing tier (Zdefiniuj wartość warstwy cenowej) P1v2
Define value for Java version (Zdefiniuj wartość wersji języka Java) 1: Java 8 lub 2: Java 11
Define value for runtime stack (Zdefiniuj wartość stosu środowiska uruchomieniowego) 3: TOMCAT 9.0
Confirm (Y/N) (Potwierdź — T/N) Y

Po wykonaniu polecenia zostaną wyświetlone następujące wyniki:

mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] -----------< com.microsoft.azure.samples:azure-javaweb-app >------------
[INFO] Building azure-javaweb-app Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:1.12.0:config (default-cli) @ azure-javaweb-app ---

Available subscriptions:
* 1: My Subscription (********-****-****-****-************)
Please choose a subscription [My Subscription]: [Enter]
[INFO] It may take a few minutes to load all Java Web Apps, please be patient.
[WARNING] There are no Java Web Apps in current subscription, please follow the following steps to create a new one.
Define value for OS [Linux]:
* 1: Linux
  2: Docker
  3: Windows
Enter your choice:
Define value for pricingTier [P1v2]:
   1: B1
   2: B2
   3: B3
   4: D1
   5: F1
*  6: P1v2
   7: P2v2
   8: P3v2
   9: S1
  10: S2
  11: S3
Define value for javaVersion [Java 8]:
* 1: Java 8
  2: Java 11
Enter your choice: 1
Define value for runtimeStack:
  1: Jbosseap 7.2
* 2: Tomcat 8.5
  3: Tomcat 9.0
Enter your choice: 3
Please confirm webapp properties
Subscription Id : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
AppName : azure-javaweb-app-1604982052600
ResourceGroup : azure-javaweb-app-1604982052600-rg
Region : westeurope
PricingTier : PremiumV2_P1v2
OS : Linux
Java : Java 8
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  37.656 s
[INFO] Finished at: 2020-10-01T17:24:02+09:00
[INFO] ------------------------------------------------------------------------

Zobaczysz nową sekcję w sekcji <plugins> w pliku pom.xml.

Jeśli chcesz zmienić nazwę grupy zasobów, nazwę wystąpienia i lokalizację wdrożenia, zmień elementy <resourceGroup>, <appName> i <region>.

    <plugins>
      <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-webapp-maven-plugin</artifactId>
        <version>1.12.0</version>
        <configuration>
          <schemaVersion>V2</schemaVersion>
          <subscriptionId>********-****-****-****-************</subscriptionId>
          <resourceGroup>azure-javaweb-app</resourceGroup>
          <appName>azure-javaweb-app-1601463451101</appName>
          <pricingTier>P1v2</pricingTier>
          <region>japaneast</region>
          <runtime>
            <os>linux</os>
            <javaVersion>Java 8</javaVersion>
            <webContainer>TOMCAT 9.0</webContainer>
          </runtime>
          <deployment>
            <resources>
              <resource>
                <directory>${project.basedir}/target</directory>
                <includes>
                  <include>*.war</include>
                </includes>
              </resource>
            </resources>
          </deployment>
        </configuration>
      </plugin>
    </plugins>

Kompilowanie i wdrażanie w usłudze Azure App Service

Teraz, gdy ustawienia wdrażania w usłudze Azure App Service są gotowe, skompiluj ponownie kod źródłowy:

mvn clean package

Po skompilowaniu użyj polecenia Maven Plugin for Azure Web Apps, aby wdrożyć aplikację. Wykonaj następujące polecenie:

mvn azure-webapp:deploy

Po zakończeniu wdrażania zostanie wyświetlony następujący komunikat.

[INFO] Successfully deployed the artifact to https://azure-javaweb-app-1601463451101.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:15 min
[INFO] Finished at: 2020-11-19T15:55:55+09:00
[INFO] ------------------------------------------------------------------------

Publiczny adres URL wdrożonej aplikacji jest wyświetlany w Successfully deployed the artifact to wierszu. Uzyskaj dostęp do adresu URL za pomocą przeglądarki, jak w poniższym przykładzie:

https://azure-javaweb-app-1601463451101.azurewebsites.net

Screenshot that shows the deployed web app on Azure App Service.

Potwierdzanie strumienia dzienników z poziomu wiersza polecenia

Aby uzyskać dostęp do strumienia dzienników, wykonaj następujące polecenie interfejsu wiersza polecenia:

az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101

Otrzymasz następujący wynik:

Screenshot that shows the execution of the log stream.

Podsumowanie ćwiczeń

W tej lekcji pokazano, jak utworzyć i spakować aplikację internetową Java, jak używać wtyczki Maven dla usługi Azure Web Apps oraz jak wdrożyć aplikację w usłudze aplikacja systemu Azure Service. Te kroki mają zastosowanie nie tylko do aplikacji JSF, ale także do większości aplikacji internetowych w języku Java.