Preloader image

Este exemplo usa um aplicativo de echo básico, implantado com o TomEE incorporado na nuvem do Azure.

Usamos o plugin do maven do TomEE para empacotar o aplicativo com o TomEE Embedded a fim de gerar um fat jar. Este jar é então escolhido e deployado pelo azure-webapp-maven-plugin.

Configuração do Azure

Para que o plug-in do Azure funcione, você precisará ter uma conta do Azure e adicionar uma assinatura a ela.

Então, em sua máquina de desenvolvimento, instale a interface da linha de comandos (CLI) do Azure e faça a autenticação com a linha de comando, antes que você possa implantar seu aplicativo.

  • Crie uma conta Azure, se você não tem uma, faça aqui https://azure.microsoft.com/en-us

  • Use a opção free, se disponível ou adicione uma assinatura.

  • Instale o Azure (CLI) de acordo com o sistema operacional do computador que você está usando para desenvolver.

  • Finalmente, você pode configurar seu computador de desenvolvimento.

Fazendo login no Azure

az login

O resultado:

[
   {
     "cloudName": "AzureCloud",
     "id": "aaaaaaaa-aaaa-aaaa-aaaaa-aaaaaaaaaa",
     "isDefault": true,
     "name": "Pay-As-You-Go",
     "state": "Enabled",
     "tenantId": "bbbbbbb-bbbbb-bbbb-bbbbb-bbbbbbbbbbb",
     "user": {
       "name": "<o email da sua conta azure>",
       "type": "user"
     }
   }
 ]

O TenantId é alguém que pode registrar e gerenciar aplicativos por conta própria. Você precisará disso para mais tarde.

Criando um service principal

Um Azure service principal é uma identidade de segurança usada por aplicativos, serviços e ferramentas de automação para acessar recursos específicos do Azure:

az ad sp create-for-rbac --name  http://<seu-sub-domínio> --password <password para este aplicativo>

{
  "appId": "cccccccc-cccc-cccc-cccc-ccccccccccccccc",
  "displayName": "cloud-tomee-azure",
  "name": "http://cloud-tomee-azure",
  "password": "<password for this app>",
  "tenant": "bbbbbbb-bbbbb-bbbb-bbbbb-bbbbbbbbbbb"
}

O <seu-sub-domínio>, também é chamado de service principal name (nome principal do serviço) na documentação do Azure. Neste exemplo "http://cloud-tomee-azure" tem que ser exclusivo no Azure. O appId é a identificação do serviço de aplicativo.

Configurando o Maven

Você pode continuar usando apenas a CLI do Azure para autenticação, mas também podemos fazê-lo permanentemente com o Maven.

Nesse caso, precisamos editar o arquivo settings.xml do Maven para que o plugin azure-webapp-maven possa autenticar no Azure:

Você pode adicionar um novo servidor em ~ / .m2 / settings.xml assim:

<server>
  <id>azure-auth</id>
  <configuration>
     <client>cccccccc-cccc-cccc-cccc-ccccccccccccccc</client>
     <tenant>bbbbbbb-bbbbb-bbbb-bbbbb-bbbbbbbbbbb</tenant>
     <key><password para este aplicativo></key>
     <environment>AZURE</environment>
   </configuration>
</server>

É isso aí. Agora você pode criar o exemplo e implantá-lo no Azure usando o Maven:

mvn clean install -Pazure-single-jar azure-webapp:deploy

O azure-webapp é explicitamente chamado porque depende de sua conta do Azure. O build padrão do TomEE não usará uma conta do Azure.

O URL final será semelhante a:

Notas

No momento da criação deste exemplo, há um erro no azure com o JAVA_HOME que impede a implementação. Verificar: https://github.com/Azure-App-Service/java/issues/11 A solução é definir a variável de ambiente no console da Web do Azure e reiniciar o aplicativo.

Para implantar o aplicativo de echo localmente, você pode executar:

mvn tomee:run

Ele retornará send-this-back.

O aplicativo echo também está disponível com um arquivo war simples que você pode implantar no TomEE manualmente, para fins de teste.