Exercício – Implantar um aplicativo de exemplo do Spring Boot
Neste exercício, você usará um fluxo de trabalho automatizado para compilar e implantar o aplicativo Spring Boot de exemplo.
Configurar uma ação do GitHub para implantar o aplicativo de exemplo
Agora que você provisionou seus recursos do Azure, implante seu aplicativo de exemplo do Spring Boot.
Para criar o fluxo de trabalho do GitHub do Maven, você usará a ferramenta interna do assistente de CI/CD (integração contínua e entrega contínua) disponível no Centro de Implantação no portal do Serviço de Aplicativo do Azure.
O Centro de Implantação do Serviço de Aplicativo do Azure gera automaticamente um arquivo de fluxo de trabalho do GitHub Actions baseado na sua pilha de aplicativos. Em seguida, o Centro de Implantação faz commit do arquivo no repositório GitHub no diretório correto. Ele também vincula sua ação do GitHub a um perfil de publicação do Serviço de Aplicativo do Azure.
No portal do Azure, acesse seu aplicativo Web do Serviço de Aplicativo do Azure.
No painel de menu à esquerda, em Implantação, selecione Centro de Implantação.
Na lista suspensa Origem, em CI/CD (Implantação Contínua), selecione GitHub.
Escolha GitHub Actions. (Esse deve ser o padrão, mas se não for, selecione Alterar provedor para carregar as opções de provedor).
Em Configurações, nas listas suspensas, faça o seguinte:
a. Selecione seu repositório GitHub.
b. Para o branch, selecione main.
c. Para a pilha de aplicativos, selecione JAVA 8.Na página final, examine suas seleções e visualize o arquivo de fluxo de trabalho que será confirmado no repositório.
Selecione Salvar para fazer commit do arquivo de fluxo de trabalho no repositório e comece a compilar e implantar seu aplicativo imediatamente.
Observação
Dispare também o fluxo de trabalho do GitHub Actions no seu repositório selecionando a guia Ações, escolhendo o fluxo de trabalho build e implantação e Executar trabalhos novamente.
Confirmar o build do GitHub Actions
No repositório GitHub, selecione a guia Ações e, no lado esquerdo, em Todos os Fluxos de Trabalho, selecione "Criar e implantar aplicativo JAR no Aplicativo Web do Azure".
Em seguida, na tabela do lado direito, em Execução de fluxo de trabalho, selecione a execução de fluxo de trabalho Adicionar ou atualizar a configuração do fluxo de trabalho de implantação do Serviço de Aplicativo.
Aguarde até que a execução de fluxo de trabalho seja concluída e, no trabalho Implantar na execução de fluxo de trabalho, copie a URL no trabalho Implantar que exibe a URL do aplicativo Web do Azure.
Por fim, abra a URL em um navegador e verifique se o aplicativo Java está implantado, conectado ao banco de dados MySQL e se está retornando dados.
Próximas etapas
Parabéns! Agora você tem dois fluxos de trabalho do GitHub Actions: uma ação de provisionamento e uma ação de build e implantação.
Toda vez que você inserir um comando git push
para fazer commit do código, a ação de build e implantação será disparada e o aplicativo será implantado.
Importante
A nova execução do provisionamento da ação do GitHub não recriará os recursos se eles já existirem. Será necessário excluir o grupo de recursos ou os recursos manualmente e executar de novo a ação do GitHub.
A nova execução da ação de build e implantação do GitHub substituirá o aplicativo.
Se você recriar a instância do Serviço de Aplicativo, também precisará alterar para o novo perfil de publicação. Você precisará alterar apenas a seguinte linha:
publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}
Configurar um pipeline do Azure para implantar o aplicativo de exemplo
Como antes, você precisará criar um pipeline do Azure para compilar e implantar seu aplicativo.
No Azure DevOps, acesse o projeto, selecione "Pipelines" e "Novo Pipeline" (canto superior direito).
Agora, haverá quatro guias para configurar o pipeline:
- Na guia "Conectar", selecione "GitHub" (arquivo YAML).
- Na guia "Selecionar", escolha o repositório do GitHub que contém o modelo.
- Na guia "Configurar", escolha o uso de um "Arquivo YAML existente do Azure Pipelines".
- No caminho, desta vez, selecione "/azuredevops/build_deploy.yml"
- Escolha Continuar para acessar a guia "*Examinar" e examine o pipeline antes de executá-lo.
Na tela Examinar o YAML do pipeline, inspecione o arquivo YAML que você usará para criar o pipeline:
name: Build and Deploy
trigger:
- main
stages:
# Build your Spring Boot App using Maven
- stage: Build
displayName: Build stage
jobs:
- job: MavenPackageAndPublishArtifacts
displayName: Maven Package and Publish Artifacts
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Maven@3
displayName: 'Maven Package'
inputs:
mavenPomFile: 'pom.xml'
- task: CopyFiles@2
displayName: 'Copy Files to artifact staging directory'
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: '**/target/*.?(war|jar)'
TargetFolder: $(Build.ArtifactStagingDirectory)
- upload: $(Build.ArtifactStagingDirectory)
artifact: drop
# Deploy to Azure using the AzureWebApp task using your Service Connection
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeployLinuxWebApp
displayName: Deploy Linux Web App
environment: 'production'
pool:
vmImage: 'ubuntu-latest'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy'
inputs:
azureSubscription: $(serviceConnection)
appType: webAppLinux
appName: '$(webAppName)'
package: '$(Pipeline.Workspace)/drop/**/target/*.?(war|jar)'
Vamos examinar alguns dos campos usados na configuração de "Build":
- azureSubscription: sua assinatura do Azure
- appType: o tipo de aplicativo Web
- appName: o nome do serviço de aplicativo existente
- package: o caminho do arquivo para o pacote ou uma pasta que contém o conteúdo do serviço de aplicativo
Adicionar variáveis de build
Assim como em nosso pipeline de provisionamento, antes de salvar e executar o pipeline de build e implantação, você precisa adicionar as variáveis do pipeline:
- Selecione Variables na parte superior direita.
- Adicione uma variável denominada serviceConnection usando como valor o nome da Conexão de Serviço.
- Escolha OK (canto inferior direito) para salvar a variável.
- Adicione uma segunda variável denominada webAppName com o nome do Serviço de Aplicativo (mesmo valor definido na variável "application_name" do Terraform).
- Selecione OK para salvar a variável.
- Clique em Salvar (canto inferior direito) para salvar as duas variáveis.
Inspecionar a execução de pipeline
- Selecione && para salvar e executar o pipeline
- Como você fez no pipeline de Provisionamento, acompanhe o processo de build em cada uma das fases e etapas.
- Verifique se o aplicativo Java foi implantado, se está conectado ao banco de dados MySQL e se está retornando dados.
Próximas etapas
Parabéns! Agora você tem dois fluxos de trabalho do Azure Pipeline: um pipeline de provisionamento e um pipeline de build e implantação.
Toda vez que você inserir um comando git push
para fazer commit do código no branch main, o pipeline de build e implantação será disparado e o aplicativo será implantado.
Importante
A nova execução do pipeline de provisionamento não recriará os recursos se eles já existirem. Será necessário excluir o grupo de recursos ou os recursos manualmente e executar o pipeline de novo. Na seção Resumo, veja mais informações de como atingir esse objetivo.
A nova execução do pipeline de build e implantação substituirá o aplicativo.
A próxima unidade é uma verificação de conhecimentos para ver o que você aprendeu neste módulo.