Criar e implantar um aplicativo Node.js

Este artigo mostra como usar o Azure Pipelines para criar um pipeline que cria e implanta um aplicativo Node.js no Serviço de Aplicativo do Azure com integração contínua (CI) e implantação contínua (CD). O CI/CD reduz o tempo de inatividade e o risco de erros criando e implantando automaticamente seu aplicativo sempre que houver uma confirmação no repositório de código do aplicativo.

Pré-requisitos

Produto Requerimentos
Azure DevOps - Um projeto Azure DevOps.
- A capacidade de executar pipelines em agentes alojados pela Microsoft. Ativa o nível gratuito ou compra um trabalho paralelo.
- Conhecimentos básicos de YAML e Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline.
- Permissões:
     - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de compilação definida como Permitir. Os membros do grupo Administradores de Projeto podem gerenciar pipelines.
    - Para criar conexões de serviço: Você deve ter a função de Administrador ou Criador para conexões de serviço.
GitHub - Uma conta GitHub.
- Uma ligação de serviço do GitHub para autorizar o Azure Pipelines.
Azure Uma assinatura do Azure.
Produto Requerimentos
Azure DevOps - Um projeto Azure DevOps.
- Um agente auto-hospedado. Para criar um, consulte Agentes auto-hospedados.
- Conhecimentos básicos de YAML e Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline.
- Permissões:
    - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de compilação definida como Permitir. Os membros do grupo Administradores de Projeto podem gerenciar pipelines.
    - Para criar conexões de serviço: Você deve ter a função de Administrador ou Criador para conexões de serviço.
GitHub - Uma conta GitHub.
- Uma ligação de serviço do GitHub para autorizar o Azure Pipelines.
Azure Uma assinatura do Azure.

Nota

Os procedimentos que usam o GitHub podem exigir autenticação, autorização ou login em organizações do GitHub ou repositórios específicos. Siga as instruções para concluir os processos necessários. Para obter mais informações, consulte Acesso a repositórios do GitHub.

Copie a aplicação de exemplo

  1. No GitHub, vá para o repositório Node.js Hello World e selecione Fork no menu superior.

    Captura de tela do GitHub para selecionar o Node.js projeto a bifurcar.

  2. Selecione sua organização do GitHub como Proprietário da bifurcação, se ainda não estiver selecionada, e selecione Criar bifurcação.

    Captura de ecrã de criação de ramificação no GitHub.

O navegador vai para a sua nova bifurcação no URL https://github.com/<owner>/nodejs-docs-hello-world.

Criar e implantar o aplicativo Web do Serviço de Aplicativo

Crie seu aplicativo Web do Serviço de Aplicativo do Azure usando o Cloud Shell no portal do Azure. Para usar o Cloud Shell, entre no portal do Azure e selecione o botão Cloud Shell na barra de ferramentas superior.

Captura de ecrã do botão Azure Cloud Shell na barra de ferramentas do portal do Azure.

O Cloud Shell aparece na parte inferior do navegador. Certifique-se de que Bash está selecionado como ambiente no menu pendente.

Captura de ecrã do Azure Cloud Shell.

Sugestão

Para colar no Cloud Shell, use Ctrl+Shift+V ou clique com o botão direito do mouse e selecione Colar no menu de contexto.

Criar e implantar o aplicativo Web

  1. No Cloud Shell, clone seu repositório bifurcado para o Azure com o seguinte comando, substituindo <your-forked-repository-url> pela URL do seu repositório bifurcado.

    git clone <your-forked-repository-url>
    
  2. Altere o diretório para a pasta do repositório clonado.

    cd nodejs-docs-hello-world
    
  3. Execute o comando az webapp up para provisionar um aplicativo Web do Serviço de Aplicativo e faça a primeira implantação. O --sku F1 argumento cria o aplicativo Web no nível de preço gratuito, que não incorre em nenhum custo.

    A execução az webapp up sem parâmetros name atribui automaticamente um nome de aplicativo Web gerado aleatoriamente que é exclusivo no Azure. Você também pode usar o --name <web-app-name> parâmetro para atribuir qualquer nome exclusivo no Azure, como um nome pessoal ou de empresa com um identificador de aplicativo, como --name <your-name>-nodeapp.

    az webapp up --sku F1 --name <app-name>
    

O az webapp up comando reconhece o aplicativo como um aplicativo Node.js e executa as seguintes ações:

  1. Cria um grupo de recursos padrão.
  2. Cria um plano padrão do Serviço de Aplicativo.
  3. Cria um aplicativo Web com o nome atribuído e a URL <your-web-app-name>.azurewebsites.net.
  4. O ZIP implanta todos os arquivos do diretório de trabalho atual, com a automação de compilação habilitada.
  5. Armazena em cache os parâmetros localmente no arquivo .azure/config para que você não precise especificá-los novamente ao implantar a partir da pasta do projeto com az webapp up ou outros az webapp comandos.

Você pode substituir as ações padrão por seus próprios valores usando os parâmetros de comando. Para obter mais informações, consulte az webapp up.

O comando produz mensagens de status à medida que é executado. Depois de o site ser iniciado com sucesso, poderá selecionar o link em You can launch the app at https://<your-web-app-name>.azurewebsites.net para ir para a aplicação web Hello World.

O az webapp up comando produz a seguinte saída JSON para o aplicativo Web de exemplo:

{
  "URL": "<your-web-app-url>",
  "appserviceplan": "<your-app-service-plan-name>",
  "location": "<your-azure-region>",
  "name": "<your-web-app-name>",
  "os": "Linux",
  "resourcegroup": "<your-resource-group-name>",
  "runtime_version": "node|20-LTS",
  "runtime_version_detected": "10.0",
  "sku": "FREE",
  "src_path": "<repository-source-path>"
}

Criar o pipeline a partir de um modelo

  1. No seu projeto do Azure DevOps, selecione Pipelines no menu de navegação esquerdo e, em seguida, selecione Novo pipeline ou Criar pipeline se este pipeline for o primeiro do projeto.

  2. Na tela Onde está seu código , selecione GitHub.

  3. Na tela Selecione um repositório , selecione seu repositório nodejs-docs-hello-world bifurcado.

  4. O Azure Pipelines reconhece o código como um aplicativo Node.js e sugere vários modelos de pipeline na página Configurar seu pipeline . Selecione Node.js Express Web App para Linux no Azure.

  5. Na tela seguinte, selecione sua assinatura do Azure e selecione Continuar. Esta ação cria uma conexão de serviço com seus recursos do Azure.

  6. Na tela seguinte, selecione seu aplicativo Web do Azure e selecione Validar e configurar. O Azure Pipelines cria um arquivo de azure-pipelines.yml e o exibe no editor de pipeline YAML.

  7. Na página Rever o seu pipeline YAML, reveja o código do seu pipeline.

    O pipeline executa as seguintes ações:

    • Define um gatilho para ser executado em cada confirmação para a ramificação de código principal.
    • Estabelece e usa variáveis para a conexão de serviço, aplicativo Web, imagem de máquina e ambiente.
    • Instala Node.js no agente de compilação e usa npm para executar e testar a compilação do aplicativo.
    • Empacota a aplicação criada em um arquivo ZIP e carrega o ZIP para um local de destino.
    • Implanta o pacote ZIP no aplicativo do Serviço de Aplicativo e inicia o aplicativo.

Salve e execute o pipeline

  1. Depois de revisar o código, selecione Salvar e executar e Salvar e executar novamente para salvar e executar seu pipeline. O ficheiro azure-pipelines.yml guarda-se no seu repositório derivado, e o código é implantado no Serviço de Aplicações do Azure.

    Nota

    Na primeira vez que o pipeline é executado, ele solicita permissão para acesso ao ambiente que cria. Selecione Permitir para conceder permissão para o pipeline aceder ao ambiente.

  2. Na página Resumo da execução, selecione a tarefa para monitorizar a execução do pipeline e rastrear a sua construção.

  3. Quando a execução for bem-sucedida, selecione a tarefa Implantação de Aplicações Web do Azure e selecione a URL do Serviço de Aplicações para visualizar o site implantado.

    Captura de ecrã da localização do URL do Web site no Azure Pipelines.

  4. Verifique se você vê o site em execução no Serviço de Aplicativo na URL do site implantado.

    Captura de tela do aplicativo Node.js em execução em um navegador da Web.

Executar uma compilação e implantação de CI

A trigger: main palavra-chave configura o seu pipeline para ser executado sempre que uma alteração for efetuada na main ramificação do seu repositório de código bifurcado. Para executar uma compilação de CI:

  1. Vá para o repositório do GitHub bifurcado e faça uma pequena alteração no arquivo README.md .
  2. Selecione Confirmar alterações e Confirmar alterações novamente.
  3. No Azure Pipelines, verifique se o pipeline nodejs-docs-hello-world é executado novamente com uma descrição de CI individual.

Limpar recursos

Você pode excluir os recursos criados para este artigo se não precisar mais deles.

  • Para remover os recursos do Serviço de Aplicativo do Azure, execute os seguintes comandos na ordem do Cloud Shell. Você deve excluir o aplicativo Web antes de excluir seu plano de serviço de aplicativo e deve excluir o plano de serviço de aplicativo antes de excluir seu grupo de recursos.

    az webapp delete --name <web-app-name> --resource-group <resource-group-name>
    az appservice plan delete --name <app-service-plan-name> --resource-group <resource-group-name>
    az group delete --name <resource-group-name>
    
  • Para remover seu pipeline no Azure Pipelines, selecione o pipeline, selecione o ícone Mais ações no canto superior direito da página do pipeline e selecione Excluir. Para remover seu projeto do Azure DevOps, consulte Excluir um projeto.

  • Para excluir seu repositório do GitHub nodejs-docs-hello-world bifurcado, vá para o repositório e selecione Configurações na barra de menu superior. Role até a parte inferior da página e selecione Excluir este repositório.