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

Ukończone

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

Co to jest usługa Azure App Service?

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

Zrzut ekranu przedstawiający ekran witryny Azure Portal.

Pobieranie przykładowych aplikacji JSF

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

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 Azure App Service, aby ułatwić deweloperom języka Java wdrażanie aplikacji na platformie Azure. Korzystając z tej wtyczki, można łatwo skonfigurować i wdrożyć aplikację na platformie Azure. Wykonaj następujące polecenie, aby użyć wtyczki Maven dla usługi Azure App Service.

Konfigurowanie wtyczki Maven dla usługi Azure App Service

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

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

Po wykonaniu polecenia, w wierszu polecenia (konsoli) pojawią się pewne pytania, więc odpowiedz na nie, wybierz odpowiednie elementy i następnie je ustaw. Wprowadź następujące opcje:

Przedmiot Wartość wejściowa
Subskrypcja Wybieranie subskrypcji platformy Azure
Definiowanie wartości dla systemu operacyjnego 1: Linux
Definiowanie wartości dla warstwy cenowej P1v2
Definiowanie wartości dla wersji języka Java 1: Java 8 lub 2: Java 11
Zdefiniuj wartość dla stosu uruchomieniowego 3: TOMCAT 9.0
Potwierdź (Y/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] ------------------------------------------------------------------------

W sekcji <plugins> w pliku pom.xml zostanie wyświetlona nowa sekcja.

Jeśli chcesz zmienić nazwę grupy zasobów, nazwę wystąpienia i lokalizację wdrożenia, zmień <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 zostały ukończone, skompiluj kod źródłowy ponownie:

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 wierszu Successfully deployed the artifact to. Uzyskaj dostęp do adresu URL za pomocą przeglądarki, jak w poniższym przykładzie:

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

Zrzut ekranu przedstawiający wdrożona aplikację internetową w usłudze Azure App Service.

Potwierdzanie strumienia dziennika z wiersza polecenia

Aby uzyskać dostęp do log stream, wykonaj następujące polecenie CLI:

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

Otrzymasz następujący wynik:

Zrzut ekranu przedstawiający wykonywanie strumienia dziennika.

Podsumowanie ćwiczenia

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 Azure App Service. Te kroki dotyczą nie tylko aplikacji JSF, ale także większości aplikacji internetowych Java.