Implantar um Aplicativo Web Helidon no Serviço de Aplicativo do Azure com o Maven

Neste início rápido, você usará o Plug-in do Maven para os Aplicativos Web do Serviço de Aplicativo do Azure a fim de implantar um aplicativo Helidon no Serviço de Aplicativo do Azure no Linux. Escolha a implantação Java SE em vez dos arquivos Tomcat e WAR quando quiser consolidar as dependências, o runtime e a configuração do aplicativo em um único artefato de implantação.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Entrar na CLI do Azure

A maneira mais simples e fácil de obter o plug-in do Maven implantando seu aplicativo Helidon é usando a CLI do Azure.

Entre em sua conta do Azure usando a CLI do Azure:

az login

Siga as instruções na tela para concluir o processo de entrada.

Criar aplicativo de exemplo com base no MicroProfile Starter

Nesta seção, você criará um aplicativo Helidon e o testará localmente.

  1. Abra o navegador da Web e acesse o site do MicroProfile Starter.

    Captura de tela mostrando o MicroProfile Starter com o tempo de execução do Helidon selecionado.

  2. Insira ou selecione o campo da maneira a seguir.

    Campo Valor
    groupId com.microsoft.azure.samples.helidon
    artifactId helidon-hello-azure
    Versão do MicroProfile MP 3.2
    Versão do Java SE Java 11
    MicroProfile Runtime Helidon
    Exemplos de especificações Métricas, OpenAPI
  3. Selecione DOWNLOAD para baixar o projeto.

  4. Descompactar o arquivo morto, por exemplo:

    unzip helidon-hello-azure.zip
    
  5. Ou você pode criar o projeto com o seguinte comando:

    mvn -U archetype:generate -DinteractiveMode=false \
        -DarchetypeGroupId=io.helidon.archetypes \
        -DarchetypeArtifactId=helidon-quickstart-se \
        -DarchetypeVersion=2.0.0 \
        -DgroupId=com.microsoft.azure.samples.helidon \
        -DartifactId=helidon-hello-azure \
        -Dpackage=com.microsoft.azure.samples.helidon
    
  6. Altere o diretório para o projeto concluído. Por exemplo:

    cd helidon-hello-azure/
    
  7. Crie o arquivo JAR usando o Maven. Por exemplo:

    mvn clean package
    
  8. Após a criação do aplicativo Web, inicie-o usando o Maven; por exemplo:

    java -jar target/helidon-hello-azure.jar
    
  9. Teste o aplicativo Web navegando até ele localmente usando um navegador da Web. Por exemplo, use o comando a seguir, se você tiver o curl disponível:

    curl http://localhost:8080/greet
    
  10. Você verá a seguinte mensagem exibida: Hello World

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

Nesta seção, você vai configurar o arquivo pom.xml do projeto Helidon para que o Maven possa implantar o aplicativo no Serviço de Aplicativo do Azure no Linux.

  1. Abra o arquivo pom.xml em um editor de texto.

  2. Na seção <build> do arquivo pom.xml, insira a entrada <plugin> a seguir dentro da marca <plugins>.

    <build>
      <finalName>helidon-hello-azure</finalName>
      <plugins>
        <plugin>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-webapp-maven-plugin</artifactId>
          <version>1.10.0</version>
        </plugin>
      </plugins>
    </build>
    
  3. Em seguida, você pode configurar a implantação, execute o seguinte comando Maven:

    mvn azure-webapp:config
    

    Escolha as seguintes opções quando solicitado:

    Campo de entrada Entrada/Selecionar Valor
    Definir valor para OS(Padrão: Linux): 1. linux
    Defina o valor para javaVersion(Default: Java 8): 1. Java 11
    Confirmar (S/N) y

    Esse comando produz uma saída semelhante ao seguinte exemplo:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.helidon:helidon-hello-azure >-------
    [INFO] Building myproject 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:1.10.0:config (default-cli) @ helidon-hello-azure ---
    Define value for OS(Default: Linux):
    1. linux [*]
    2. windows
    3. docker
    Enter index to use: 1
    Define value for javaVersion(Default: Java 8):
    1. Java 11
    2. Java 8 [*]
    Enter index to use: 1
    Please confirm webapp properties
    AppName : helidon-hello-azure-1600998900939
    ResourceGroup : helidon-hello-azure-1600998900939-rg
    Region : westeurope
    PricingTier : PremiumV2_P1v2
    OS : Linux
    RuntimeStack : JAVA 11-java11
    Deploy to slot : false
    Confirm (Y/N)? : y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  02:44 min
    [INFO] Finished at: 2020-09-25T10:57:35+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. Adicione a <appSettings> seção à <configuration> seção de PORT, WEBSITES_PORTe WEBSITES_CONTAINER_START_TIME_LIMIT. Adicione o <include>/libs/*.jar</include> aos recursos na implantação.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>1.10.0</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>helidon-hello-azure-1591663020899</appName>
        <pricingTier>P1v2</pricingTier>
        <region>japaneast</region>
        <runtime>
          <os>linux</os>
          <javaVersion>java11</javaVersion>
          <webContainer>java11</webContainer>
        </runtime>
        <appSettings>
          <property>
            <name>PORT</name>
            <value>8080</value>
          </property>
          <property>
            <name>WEBSITES_PORT</name>
            <value>8080</value>
          </property>
          <property>
            <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name>
            <value>600</value>
          </property>
        </appSettings>
        <deployment>
          <resources>
            <resource>
              <directory>${project.basedir}/target</directory>
              <includes>
                <include>*.jar</include>
                <include>/libs/*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    

Implantar o aplicativo no Azure

Depois de definir todas as configurações nas seções anteriores deste artigo, você estará pronto para implantar seu aplicativo Web no Azure. Para fazer isso, execute as seguintes etapas:

  1. Do prompt de comando ou janela de terminal que você estava usando antes, recompile o arquivo JAR usando o Maven, se você tiver feito alterações no arquivo pom.xml; por exemplo:

    mvn clean package
    
  2. Implante seu aplicativo Web no Azure usando o Maven; por exemplo:

    mvn azure-webapp:deploy
    

O Maven implantará seu aplicativo Web no Azure. Se o plano de aplicativo Web ou aplicativo Web ainda não existir, ele será criado para você. Pode levar alguns minutos para que o aplicativo Web fique visível na URL mostrada na saída. Navegue até a URL em um navegador da Web. Você deve ver a mensagem exibida: Hello World

Quando sua Web tiver sido implantada, você poderá gerenciá-la por meio do portal do Azure.

Seu aplicativo Web será listado nos Serviços de Aplicativo.

Você pode acessar seu aplicativo Web selecionando Procurar na página Visão geral do seu aplicativo Web.

Verifique se a implantação foi bem-sucedida usando o mesmo comando cURL de antes (/data/hello) e com a URL do aplicativo Web do Portal em vez de localhost. Você verá a seguinte mensagem exibida: Hello World

Confirmar o fluxo de log do Serviço de Aplicativo em execução

Você pode ver (ou "acompanhar") os logs do Serviço de Aplicativo em execução. Todas as chamadas para console.log no código do site são exibidas no terminal.

az webapp log tail \
    --resource-group microprofile \
    --name helidon-hello-azure-1600998900939

Captura de tela da janela do terminal mostrando a saída do log.

Limpar os recursos

Quando os recursos do Azure já não forem necessários, limpe os recursos implantados excluindo o grupo de recursos.

  • No portal do Azure, escolha Grupos de recursos do menu à esquerda.
  • Insira microprofile no campo Filtrar por nome; o grupo de recursos criado neste tutorial deverá ter esse prefixo.
  • Selecione o grupo de recursos criado neste tutorial.
  • Escolha Excluir grupo de recursos no menu superior.

Próximas etapas

Para saber mais sobre o MicroProfile e o Azure, prossiga para o centro de documentação do MicroProfile no Azure.

Recursos adicionais

Para saber mais sobre as diversas tecnologias discutidas neste artigo, veja os artigos a seguir: