Cvičení – nasazení webové aplikace v Javě do služby Azure App Service

Dokončeno

V této lekci nasadíte aplikaci do služby Azure App Service.

Co je Azure App Service?

Azure poskytuje Azure App Service jako platformu jako službu (PaaS) pro spuštění Tomcatu. Je vybaven prostředím Windows a Linuxem, zabezpečením, vyrovnáváním zatížení, automatickým škálováním a integrací DevOps. Správu operačního systému a Tomcat můžete nechat v Azure a soustředit se na vytváření aplikací.

snímek obrazovky webu Azure Portal

Získání ukázkových aplikací JSF

Pokud chcete nasadit webovou aplikaci v Javě, můžete z GitHubu získat webovou aplikaci PrimeFaces JavaServer Faces (JSF), jak je znázorněno tady:

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

Po naklonování se v adresáři zobrazí následující soubory:

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

Plug-in Maven pro Azure App Service

Microsoft poskytuje modul plug-in Maven pro Azure App Service, který vývojářům v Javě usnadňuje nasazování aplikací do Azure. Pomocí tohoto modulu plug-in můžete snadno nakonfigurovat a nasadit aplikaci do Azure. Spuštěním následujícího příkazu použijte modul plug-in Maven pro Azure App Service.

Konfigurace modulu plug-in Maven pro Azure App Service

Pokud chcete nakonfigurovat modul plug-in Maven pro Azure App Service, spusťte následující příkaz:

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

Po příkazu se na příkazovém řádku zobrazí některé otázky, takže zadejte a vyberte příslušné položky a nastavte je. Zadejte následující možnosti:

Položka Vstupní hodnota
Předplatné Volba předplatného Azure
Definování hodnoty pro operační systém 1: Linux
Definování hodnoty pro cenovou úroveň P1v2
Definování hodnoty pro verzi Javy 1: Java 8 nebo 2: Java 11
Definování hodnoty pro zásobník modulu runtime 3: TOMCAT 9.0
Potvrdit (Y/N) Y

Po provedení příkazu se zobrazí tyto výsledky:

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] ------------------------------------------------------------------------

V sekci <plugins> ve vašem souboru pom.xml se zobrazí nová sekce.

Pokud chcete změnit název skupiny prostředků, název instance a umístění nasazení, změňte <resourceGroup>, <appName>a <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>

Kompilace a nasazení do služby Azure App Service

Teď, když jsou nastavení pro nasazení do služby Azure App Service dokončené, zkompilujte zdrojový kód znovu:

mvn clean package

Po kompilaci nasaďte aplikaci pomocí příkazu plug-in Maven pro Azure Web Apps. Spusťte následující příkaz:

mvn azure-webapp:deploy

Po dokončení nasazení se zobrazí následující zpráva.

[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] ------------------------------------------------------------------------

Veřejná adresa URL nasazené aplikace se zobrazí na řádku Successfully deployed the artifact to. Přístup k adrese URL pomocí prohlížeče, jak je znázorněno v následujícím příkladu:

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

snímek obrazovky znázorňující nasazenou webovou aplikaci ve službě Azure App Service

Potvrďte protokolový proud z příkazového řádku

Pokud chcete získat přístup k protokolovému streamu, spusťte následující příkaz CLI:

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

Zobrazí se následující výsledek:

snímek obrazovky znázorňující spuštění protokolového streamu

Souhrn cvičení

V této lekci jste se dozvěděli, jak vytvořit a zabalit webovou aplikaci v Javě, jak používat modul plug-in Maven pro Azure Web Apps a jak nasadit aplikaci do služby Azure App Service. Tyto kroky platí nejen pro aplikace JSF, ale také pro většinu webových aplikací Java.