Partilhar via


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

Neste guia de início rápido, usa o plug-in Maven para Aplicativos Web do Serviço de Aplicativo do Azure para implantar um aplicativo Quarkus no Serviço de Aplicativo do Azure no Linux. Escolha a implementação Java SE em vez de arquivos Tomcat e WAR quando quiser consolidar as dependências, o tempo de execução e a configuração do seu aplicativo em um único artefato implementável.

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 Maven implantando seu aplicativo Quarkus é usando a CLI do Azure.

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

az login

Siga as instruções para concluir o processo de início de sessão.

Criar aplicativo de exemplo a partir do MicroProfile Starter

Nesta seção, você cria um aplicativo Quarkus e o testa localmente.

Criar um projeto base Java SE 8

  1. Abra um navegador da Web e navegue até o site MicroProfile Starter.

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

  2. Forneça os seguintes valores para os campos indicados:

    Campo Valor
    ID do grupo com.microsoft.azure.samples.quarkus
    artifactId quarkus-hello-azure
    Versão do MicroProfile MP 3,2
    Versão Java SE Java 8
    Tempo de execução do MicroProfile Quarkus
    Exemplos de especificações Métricas, OpenAPI
  3. Selecione DOWNLOAD para baixar o projeto.

  4. Descompacte o ficheiro de arquivo usando o seguinte comando:

    unzip Quarkus-hello-azure.zip
    

Criar projeto base Java SE 11

Para criar o projeto base Java 11, use o seguinte comando:

mvn io.quarkus:quarkus-maven-plugin:2.6.1.Final:create \
  -DprojectGroupId=com.microsoft.azure.samples.quarkus \
  -DprojectArtifactId=quarkus-hello-azure \
  -DclassName="com.microsoft.azure.samples.quarkus.App" \
  -Dpath="/hello"

Execute o aplicativo em um ambiente local

  1. Altere o diretório para o projeto concluído usando o seguinte comando:

    cd quarkus-hello-azure/
    
  2. Crie e execute o projeto usando o seguinte comando Maven:

    mvn quarkus:dev
    
  3. Teste o aplicativo Web navegando até ele localmente usando um navegador da Web. Por exemplo, você pode usar o seguinte comando se tiver curl disponível:

    Para um projeto Java SE 8:

    curl http://localhost:8080/data/hello
    

    Para um projeto Java SE 11:

    curl http://localhost:8080/hello
    
  4. Você verá a seguinte mensagem exibida: Hello World ou hello.

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

Nesta seção, você configura o arquivo de pom.xml do projeto Quarkus 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 código.

  2. Na seção <build> do arquivo pom.xml, insira a seguinte entrada <plugin> dentro da marca <plugins> após maven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
    </plugin>
    
  3. Para configurar a implantação, execute o seguinte comando Maven:

    mvn azure-webapp:config
    

    Selecione as seguintes opções quando solicitado:

    Campo de entrada Valor de entrada/seleção
    Escolha uma subscrição Introduza o ID da sua subscrição.
    Defina o valor para OS(Padrão: Linux): 2. Linux
    Definir valor para javaVersion (Padrão: Java 8): 2. Java 11
    Definir valor para pricingTier(Padrão: P1v2): 3. P1v2
    Confirmar (S/N) y

    Este comando produz uma saída semelhante ao exemplo a seguir:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.quarkus:quarkus-hello-azure >-------
    [INFO] Building quarkus-hello-azure 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:2.13.0:config (default-cli) @ quarkus-hello-azure ---
    [INFO] Auth type: OAUTH2
    Username: abc@xyz.com
    Available subscriptions:
    *  1: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
       2: Subscription2(yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy)
    Please choose a subscription [xxx]: 1
    [INFO] Subscription: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
    Define value for OS [Linux]:
      1: Windows
    * 2: Linux
      3: Docker
    Enter your choice: 2
    Define value for javaVersion [Java 8]:
    * 1: Java 8
      2: Java 11
      3: Java 17
    Enter your choice: 2
    Define value for pricingTier [P1v2]:
      1: D1
      2: B3
    * 3: P1v2
      4: P1v3
      5: P2v2
      6: P2v3
      7: P3v2
      8: P3v3
      9: B1
     10: B2
     11: F1
     12: S1
     13: S2
     14: S3
     15: EP3
     16: EP2
     17: EP1
     18: Y1
     19: FC1
    Enter your choice: 3
    Please confirm webapp properties
    Subscription Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
    AppName : quarkus-hello-azure-1601011883156
    ResourceGroup : quarkus-hello-azure-1601011883156-rg
    Region : centralus
    PricingTier : P1v2
    OS : Linux
    Java : Java 11
    Web server stack: Java SE
    Deploy to slot : false
    Confirm (Y/N) [Y]:
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  16.502 s
    [INFO] Finished at: 2020-09-25T14:31:34+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. Adicione a seção <appSettings> à seção <configuration> de PORT, WEBSITES_PORTe WEBSITES_CONTAINER_START_TIME_LIMIT. Sua entrada XML para azure-webapp-maven-plugin deve ser semelhante ao exemplo a seguir:

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>quarkus-hello-azure-1591836715762</appName>
        <pricingTier>P1v2</pricingTier>
        <region>centralus</region>
        <runtime>
          <os>linux</os>
          <javaVersion>java 11</javaVersion>
          <webContainer>java SE</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>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    </plugin>
    
  5. Adicione a seguinte entrada ao arquivo src/main/resources/application.properties para criar o uber-jar, também conhecido comofat Jar :

    quarkus.package.type=uber-jar
    

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, use as seguintes etapas:

  1. Se você fez alterações no arquivo pom.xml, reconstrua o arquivo JAR usando o seguinte comando:

    mvn clean package
    
  2. Implante seu aplicativo Web no Azure usando o seguinte comando:

    mvn azure-webapp:deploy
    

Se a implantação for bem-sucedida, você verá a seguinte saída:

[INFO] Successfully deployed the artifact to https://quarkus-hello-azure-1591836715762.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:20 min
[INFO] Finished at: 2020-06-11T10:06:51+09:00
[INFO] ------------------------------------------------------------------------

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

Captura de tela do navegador da Web mostrando a página inicial do Quarkus.

Depois que seu aplicativo Web for implantado, você poderá gerenciá-lo por meio do portal do Azure.

O seu aplicativo web está listado no grupo de recursos do microperfil .

Você pode acessar seu aplicativo Web selecionando Procurar na página Visão Geral do do seu aplicativo Web. Verifique se a implantação foi bem-sucedida e está em execução.

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

Você pode usar o comando a seguir para visualizar - ou acompanhar - os logs do App Service 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 quarkus-hello-azure-1601011883156

Captura de tela da janela do terminal mostrando o fluxo de log.

Limpar recursos

Quando os recursos do Azure não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos. Para fazer isso, use as seguintes etapas:

  1. No portal do Azure, selecione o grupo de recursos no menu.
  2. Insira microperfil no campo Filtro por nome. O grupo de recursos criado neste tutorial deve ter esse prefixo.
  3. Selecione o grupo de recursos criado neste tutorial.
  4. Selecione Excluir grupo de recursos no menu.

Próximos passos

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

Recursos adicionais

Para obter mais informações sobre as várias tecnologias discutidas neste artigo, consulte os seguintes artigos: