Exercício – Implantar o aplicativo Web Java no Serviço de Aplicativo do Azure

Concluído

Nesta unidade, você implantará o aplicativo no Serviço de Aplicativo do Azure.

O que é o Serviço de Aplicativo do Azure?

O Azure oferece o Serviço de Aplicativo do Azure como uma PaaS (plataforma como serviço) para executar o Tomcat. Ele conta com um ambiente Windows e Linux, segurança, balanceamento de carga, dimensionamento automático e integração de DevOps. Você pode sair do gerenciamento do Tomcat e do sistema operacional para o Azure e se concentrar na criação de aplicativos.

Screenshot that shows the Azure portal screen.

Obter aplicativos JSF de exemplo

Para implantar um aplicativo Web Java, você pode obter um aplicativo JSF (JavaServer Faces) do GitHub como mostrado abaixo:

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

Após a clonagem, você verá os seguintes arquivos no diretório:

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 do Maven para o Serviço de Aplicativo do Azure

A Microsoft fornece o plug-in do Maven para o Serviço de Aplicativo do Azure para facilitar a implantação de aplicativos no Azure por desenvolvedores Java. Usando esse plug-in, você pode facilmente configurar e implantar seu aplicativo no Azure. Execute o comando a seguir para usar o plug-in do Maven para o Serviço de Aplicativo do Azure.

Configurar o Plug-in do Maven para o Serviço de Aplicativo do Azure

Para configurar o plug-in do Maven para o Serviço de Aplicativo do Azure, execute o seguinte comando:

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

Após o comando, algumas perguntas aparecerão no prompt, portanto, insira e selecione os itens apropriados e defina-os. Insira as seguintes opções:

Item Valor de entrada
Subscription Escolha a sua assinatura do Azure
Definir valor para SO 1: Linux
Definir um valor para tipo de preço P1v2
Definir um valor para a versão Java 1: Java 8 ou 2: Java 11
Definir um valor para a pilha de runtime 3: TOMCAT 9.0
Confirmar (S/N) S

Após a execução do comando, estes resultados serão exibidos:

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 : f77aafe8-6be4-4d3d-bd9c-d0c37687ef70
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] ------------------------------------------------------------------------

Você verá uma nova seção na seção <plugins> no arquivo pom.xml.

Se desejar alterar o nome do grupo de recursos, o nome da instância e o local de implantação, altere <resourceGroup>, <appName> e <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>

Compilar e fazer a implantação no Serviço de Aplicativo do Azure

Agora que as configurações para fazer a implantação no Serviço de Aplicativo do Azure foram concluídas, compile o código-fonte novamente:

mvn clean package

Depois da compilação, use o comando do plug-in do Maven para Aplicativos Web do Azure para implantar seu aplicativo. Execute o seguinte comando:

mvn azure-webapp:deploy

Quando a implantação for concluída, a mensagem a seguir será saída.

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

A URL pública do aplicativo implantado é exibida na linha Successfully deployed the artifact to. Acesse sua URL com um navegador, como no seguinte exemplo:

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

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

Confirmar o fluxo de log da linha de comando

Para acessar o fluxo de log, execute o seguinte comando da CLI:

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

Você terá o seguinte resultado:

Screenshot that shows the execution of the log stream.

Resumo do exercício

Nesta unidade, você aprendeu a criar e empacotar um aplicativo Web Java, a usar o plug-in do Maven para Aplicativos Web do Azure e a implantar seu aplicativo no Serviço de Aplicativo do Azure. Essas etapas são aplicáveis não apenas a aplicativos JSF, mas também à maioria dos aplicativos Web Java.