Implantar aplicativos Java Spring Boot em aplicativos de contêiner do Azure

Este artigo mostra como implantar um aplicativo Java Spring Boot com entrada pela conta Microsoft Entra em Aplicativos de Contêiner do Azure.

Este artigo pressupõe que você concluiu um dos seguintes artigos usando apenas a guia Executar localmente e agora deseja implantar no Azure. Estas instruções são as mesmas que as da guia Implantar no Azure nestes artigos:

Pré-requisitos

Preparar o projeto primavera

Use as seguintes etapas para preparar o projeto:

  1. Use o seguinte comando Maven para criar o projeto:

    mvn clean verify
    
  2. Execute o projeto de exemplo localmente usando o seguinte comando:

    mvn spring-boot:run
    

Configurar

Para entrar no Azure a partir da CLI, execute o seguinte comando e siga os prompts para concluir o processo de autenticação.

az login

Para garantir que você esteja executando a versão mais recente da CLI, execute o comando upgrade.

az upgrade

Em seguida, instale ou atualize a extensão Aplicativos de Contêiner do Azure para a CLI.

Se você receber erros sobre parâmetros ausentes ao executar az containerapp comandos na CLI do Azure, certifique-se de ter a versão mais recente da extensão Aplicativos de Contêiner do Azure instalada.

az extension add --name containerapp --upgrade

Nota

A partir de maio de 2024, as extensões da CLI do Azure não habilitam mais recursos de visualização por padrão. Para acessar os recursos de visualização do Container Apps, instale a extensão Container Apps com --allow-preview trueo .

az extension add --name containerapp --upgrade --allow-preview true

Agora que a extensão ou módulo atual está instalado, registre os Microsoft.App namespaces e Microsoft.OperationalInsights .

Nota

Os recursos dos Aplicativos de Contêiner do Azure migraram do Microsoft.Web namespace para o Microsoft.App namespace. Consulte Migração de namespace de Microsoft.Web para Microsoft.App em março de 2022 para obter mais detalhes.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Criar o ambiente de Aplicativos de Contêiner do Azure

Agora que a configuração da CLI do Azure está concluída, você pode definir as variáveis de ambiente usadas ao longo deste artigo.

Defina as seguintes variáveis em seu shell bash.

export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"

Crie um grupo de recursos.

az group create  \
    --name $RESOURCE_GROUP \
    --location $LOCATION \

Crie um ambiente com um espaço de trabalho do Log Analytics gerado automaticamente.

az containerapp env create \
    --name $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION

Mostrar o domínio padrão do ambiente do aplicativo de contêiner. Anote este domínio para usar em seções posteriores.

az containerapp env show \
    --name $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --query properties.defaultDomain

Preparar o aplicativo para implantação

Quando você implanta seu aplicativo nos Aplicativos de Contêiner do Azure, sua URL de redirecionamento muda para a URL de redirecionamento da instância do aplicativo implantado nos Aplicativos de Contêiner do Azure. Use as seguintes etapas para alterar essas configurações no arquivo application.yml :

  1. Navegue até o arquivo src\main\resources\application.yml do seu aplicativo e altere o valor de para o nome de domínio do post-logout-redirect-uri aplicativo implantado, conforme mostrado no exemplo a seguir. Certifique-se de substituir <API_NAME> e <default-domain-of-container-app-environment> com seus valores reais. Por exemplo, com o domínio padrão para seu ambiente de Aplicativo de Contêiner do Azure da etapa anterior e ms-identity-api para o nome do seu aplicativo, você usaria https://ms-identity-api.<default-domain> para o post-logout-redirect-uri valor.

    post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
    
  2. Depois de salvar esse arquivo, use o seguinte comando para reconstruir seu aplicativo:

    mvn clean package
    

Importante

O arquivo application.yml do aplicativo atualmente contém o valor do segredo do cliente no client-secret parâmetro. Não é uma boa prática manter esse valor neste arquivo. Você também pode estar correndo um risco se confirmar o arquivo em um repositório Git. Para obter a abordagem recomendada, consulte Gerenciar segredos em Aplicativos de Contêiner do Azure.

Atualizar o registo da aplicação Microsoft Entra ID

Como o URI de redirecionamento é alterado para seu aplicativo implantado em Aplicativos de Contêiner do Azure, você também precisa alterar o URI de redirecionamento no registro do aplicativo Microsoft Entra ID. Use as seguintes etapas para fazer essa alteração:

  1. Navegue até a página Registros de aplicativos da plataforma de identidade da Microsoft para desenvolvedores.

  2. Use a caixa de pesquisa para pesquisar o registro do seu aplicativo - por exemplo, java-servlet-webapp-authentication.

  3. Abra o registro do aplicativo selecionando seu nome.

  4. Selecione Autenticação a partir do menu.

  5. Na seção URIs de redirecionamento da Web - , selecione Adicionar URI.

  6. Preencha o URI do seu aplicativo, anexando /login/oauth2/code/ - por exemplo, https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/.

  7. Selecione Guardar.

Implementar a aplicação

Implante o pacote JAR nos Aplicativos de Contêiner do Azure.

Nota

Se necessário, você pode especificar a versão do JDK nas variáveis de ambiente de construção Java. Para obter mais informações, consulte Criar variáveis de ambiente para Java em Aplicativos de Contêiner do Azure.

Agora você pode implantar seu arquivo WAR com o az containerapp up comando CLI.

az containerapp up \
    --name $API_NAME \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --environment $ENVIRONMENT \
    --artifact <JAR_FILE_PATH_AND_NAME> \
    --ingress external \
    --target-port 8080 \
    --query properties.configuration.ingress.fqdn

Nota

A versão padrão do JDK é 17. Se você precisar alterar a versão do JDK para compatibilidade com seu aplicativo, poderá usar o --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION> argumento para ajustar o número da versão.

Para obter mais variáveis de ambiente de compilação, consulte Criar variáveis de ambiente para Java em Aplicativos de Contêiner do Azure.

Validar a aplicação

Neste exemplo, o containerapp up comando inclui o --query properties.configuration.ingress.fqdn argumento, que retorna o nome de domínio totalmente qualificado (FQDN), também conhecido como URL do aplicativo. Use as seguintes etapas para verificar os logs do aplicativo para investigar qualquer problema de implantação:

  1. Acesse a URL do aplicativo de saída na página Saídas da seção Implantação .

  2. No painel de navegação da página Visão Geral da instância dos Aplicativos de Contêiner do Azure, selecione Logs para verificar os logs do aplicativo.

Mais informações

Próximos passos

Para obter mais informações e outras opções de implantação, consulte os seguintes artigos: