Exercício – Implementar uma aplicação Web Java no Serviço de Aplicações do Azure

Concluído

Nesta unidade, irá implementar a sua aplicação no Serviço de Aplicações do Azure.

O que é o Serviço de Aplicações do Azure?

O Azure fornece o Serviço de Aplicações do Azure como uma plataforma como serviço (PaaS) para executar o Tomcat. Inclui um ambiente Windows e Linux, segurança, balanceamento de carga, dimensionamento automático e integração de DevOps. Pode deixar a gestão do SO e do Tomcat com o Azure e concentrar-se na criação de aplicações.

Screenshot that shows the Azure portal screen.

Obter aplicações do JSF de exemplo

Para implantar uma aplicação Web Java, você pode obter uma aplicação Web PrimeFaces JavaServer Faces (JSF) do GitHub, conforme mostrado aqui:

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

Depois de clonar, 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

Maven Plugin for Azure App Service (Configurar o Plug-in do Maven para o Serviço de Aplicações do Azure)

A Microsoft fornece o plug-in Maven para o Serviço de Aplicativo do Azure para facilitar a implantação de aplicativos no Azure por desenvolvedores Java. Este plug-in permite-lhe configurar e implementar a sua aplicação no Azure com facilidade. Execute o seguinte comando para usar o plug-in Maven para o Serviço de Aplicativo do Azure.

Configurar o Plug-in do Maven para o Serviço de Aplicações do Azure

Para configurar o plug-in 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

Depois de executar o comando, serão apresentadas algumas perguntas na linha de comandos, portanto, introduza e selecione os itens apropriados e defina-os. Introduza as seguintes opções:

Item Valor de entrada
Subscrição Escolher a sua subscrição do Azure
Defina o valor para SO 1: Linux
Defina o valor do escalão de preço P1v2
Defina o valor da versão do Java 1: Java 8 ou 2: Java 11
Defina o valor da pilha de runtime 3: TOMCAT 9.0
Confirme (S/N) Y

Depois de executar o comando, estes resultados aparecerão:

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

Verá uma nova secção em <plugins> no ficheiro pom.xml.

Se quiser alterar o nome do grupo de recursos, o nome da instância e a localização da implementaçã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 implementar no Serviço de Aplicações do Azure

Agora que as definições de implementação no Serviço de Aplicações do Azure foram concluídas, compile novamente o código fonte:

mvn clean package

Depois de compilado, use o comando Maven Plugin for Azure Web Apps para implantar seu aplicativo. Execute o seguinte comando:

mvn azure-webapp:deploy

Quando a implementação for concluída, terá como resultado a seguinte mensagem.

[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 Successfully deployed the artifact to linha. Acesse seu URL com um navegador, como no exemplo a seguir:

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

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

Confirmar o fluxo de registo da linha de comandos

Para aceder ao fluxo de registo, execute o seguinte comando da CLI:

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

Você obterá o seguinte resultado:

Screenshot that shows the execution of the log stream.

Resumo do exercício

Nesta unidade, você aprendeu como criar e empacotar um aplicativo Web Java, como usar o plug-in Maven para Aplicativos Web do Azure e como implantar seu aplicativo no Serviço de Aplicativo do Azure. Estes passos aplicam-se a aplicações JSF e à maioria das aplicação Web Java.