| = Implantação de TomEE no Azure |
| :index-group: Cloud |
| :jbake-type: page |
| :jbake-status: published |
| |
| 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 https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade[adicione uma assinatura]. |
| - https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest[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: |
| |
| `https://<your-sub-domain>.azurewebsites.net/cloud-tomee-azure-8.0.0-SNAPSHOT/echo/send-this-back` |
| |
| ==== 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` |
| |
| Você pode testar o aplicativo chamando `http://localhost/cloud-tomee-azure-8.0.0-SNAPSHOT/echo/send-this-back` |
| |
| 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. |