Partilhar via


Publicar um aplicativo Node.js no Azure (Serviço de Aplicativo Linux)

Este tutorial orienta você pela tarefa de criar um aplicativo Node.js simples e publicá-lo no Azure.

Ao publicar um aplicativo Node.js no Azure, há várias opções. Isso inclui o Serviço de Aplicativo do Azure, uma VM executando um sistema operacional de sua escolha, o Serviço de Contêiner do Azure (AKS) para gerenciamento com Kubernetes, uma Instância de Contêiner usando o Docker e muito mais. Para obter mais detalhes sobre cada uma dessas opções, consulte Compute.

Para este tutorial, você implanta o aplicativo no Linux App Service. O Serviço de Aplicativo Linux implanta um contêiner do Linux Docker para executar o aplicativo Node.js (em oposição ao Serviço de Aplicativo do Windows, que executa aplicativos Node.js atrás do IIS no Windows).

Este tutorial mostra como criar um aplicativo Node.js a partir de um modelo instalado com o Node.js Tools for Visual Studio, enviar o código para um repositório no GitHub e, em seguida, provisionar um Serviço de Aplicativo do Azure por meio do portal da Web do Azure para que você possa implantar a partir do repositório do GitHub. Para usar a linha de comando para provisionar o Serviço de Aplicativo do Azure e enviar o código de um repositório Git local, consulte Criar Node.js aplicativo.

Importante

As informações neste artigo aplicam-se apenas ao tipo de projeto Node.js (.njsproj). O modelo usado neste artigo não está mais disponível a partir do Visual Studio 2022 versão 17.8 Preview 2.

Neste tutorial, você aprenderá a:

  • Criar um projeto Node.js
  • Criar um repositório GitHub para o código
  • Criar um Serviço de Aplicativo Linux no Azure
  • Implantar no Linux

Pré-requisitos

  • Você deve ter o Visual Studio instalado e a carga de trabalho de desenvolvimento Node.js.

    Se você ainda não instalou o Visual Studio 2019, vá para a página de downloads do Visual Studio para instalá-lo gratuitamente.

    Se você precisar instalar a carga de trabalho, mas já tiver o Visual Studio, vá para Ferramentas>Obter Ferramentas e Recursos..., que abre o Visual Studio Installer. Escolha a carga de trabalho de desenvolvimento Node.js e, em seguida, escolha Modificar.

    Node.js carga de trabalho no VS Installer

  • Você deve ter o ambiente de execução Node.js instalado.

    Se não o tiver instalado, instale a versão LTS a partir do Web site Node.js. Em geral, o Visual Studio deteta automaticamente o tempo de execução do Node.js instalado. Se ele não detetar um tempo de execução instalado, você poderá configurar seu projeto para fazer referência ao tempo de execução instalado na página de propriedades (depois de criar um projeto, clique com o botão direito do mouse no nó do projeto e escolha Propriedades).

Criar um projeto Node.js para ser executado no Azure

  1. Abra o Visual Studio.

  2. Crie um novo aplicativo TypeScript Express.

    Pressione Esc para fechar a janela inicial. Digite Ctrl + Q para abrir a caixa de pesquisa, digite Node.jse, em seguida, escolha Criar novo de aplicativo Basic do Azure Node.js Express 4 (TypeScript). Na caixa de diálogo exibida, escolha Criar.

    Se você não vir o modelo de projeto aplicativo Basic Azure Node.js Express 4, deverá adicionar o Node.js desenvolvimento carga de trabalho. Para obter instruções detalhadas, consulte o Pré-requisitos.

    O Visual Studio cria o projeto e o abre no Gerenciador de Soluções (painel direito).

  3. Pressione F5 para criar e executar o aplicativo e certifique-se de que tudo está funcionando conforme o esperado.

  4. Selecione arquivo>Adicionar ao controle do código-fonte para criar um repositório Git local para o projeto.

    Neste ponto, uma aplicação Node.js utilizando a estrutura Express e escrita em TypeScript está a funcionar e foi registada no controlo do código-fonte local.

  5. Edite o projeto conforme desejado antes de prosseguir para as próximas etapas.

Enviar código do Visual Studio para o GitHub

Para configurar o GitHub para Visual Studio:

  1. Verifique se a extensão GitHub para Visual Studio está instalada e habilitada usando o item de menu Ferramentas>extensões e atualizações.

  2. No menu selecione Ver >Outras Janelas>GitHub.

    A janela do GitHub é aberta.

  3. Se você não vir o botão Introdução na janela do GitHub, clique em Arquivo >Adicionar ao controle do código-fonte e aguarde a atualização da interface do usuário.

    Abra a janela do GitHub

  4. Clique Começar.

    Se você já estiver conectado ao GitHub, a caixa de ferramentas será semelhante à ilustração a seguir.

    configurações de repositório do GitHub

  5. Preencha os campos para publicar o novo repositório e clique em Publicar.

    Após alguns momentos, um banner informando "Repositório criado com sucesso" aparece.

    Na próxima seção, você aprenderá a publicar a partir deste repositório em um Serviço de Aplicativo do Azure no Linux.

Criar um Serviço de Aplicativo Linux no Azure

  1. Inicie sessão no portal do Azure.

  2. Selecione Serviços de Aplicativo na lista de serviços à esquerda e clique em Adicionar.

  3. Se necessário, crie um novo Grupo de Recursos e um novo plano do Serviço de Aplicativo para hospedar o novo aplicativo.

  4. Certifique-se de definir o do sistema operacional para Linuxe defina Runtime Stack para a versão Node.js necessária, conforme mostrado na ilustração.

    Criar um Serviço Linux de Aplicações

  5. Clique Criar para criar o App Service.

    Pode levar alguns minutos para implantar.

  6. Uma vez implantado, vá para a seção Configurações do aplicativo, e adicione uma configuração com um nome de SCM_SCRIPT_GENERATOR_ARGS e um valor de --node.

    Configurações do aplicativo

    Advertência

    O processo de implantação do Serviço de Aplicativo usa um conjunto de heurísticas para determinar qual tipo de aplicativo tentar executar. Se um ficheiro . sln for detetado no conteúdo desdobrado, presume-se que um projeto baseado no MSBuild está a ser desdobrado. A configuração adicionada acima substitui essa lógica e especifica explicitamente que este é um aplicativo Node.js. Sem essa configuração, a aplicação Node.js falhará ao ser implementada se o arquivo. sln fizer parte do repositório que está a ser implantado no Serviço de Aplicações.

  7. Em Configurações do aplicativo, adicione outra configuração com um nome de WEBSITE_NODE_DEFAULT_VERSION e um valor de 8.9.0.

  8. Depois de implantado, abra o App Service e selecione Opções de Implantação.

    Opções de implantação

  9. Clique em Escolha a fonte, em seguida, escolha GitHub, e, em seguida, configure as permissões necessárias.

    permissões do GitHub

  10. Selecione o repositório e a ramificação a serem publicados e, em seguida, selecione OK.

    Publicar no Serviço de Aplicativo Linux

    A página de opções de implantação aparece durante a sincronização.

    Implantando e sincronizando com o GitHub

    Quando terminar a sincronização, uma marca de seleção aparecerá.

    O site agora está executando o aplicativo Node.js do repositório GitHub e pode ser acessado na URL criada para o Serviço de Aplicativo do Azure (por padrão, o nome dado ao Serviço de Aplicativo do Azure seguido de .azurewebsites.net).

Modificar seu aplicativo e enviar alterações por push

  1. Adicione o código mostrado aqui em app.ts após a linha app.use('/users', users);. Isso adiciona uma API REST na URL /api.

    app.use('/api', (req, res, next) => {
        res.json({"result": "success"});
    });
    
  2. Construa o código e teste-o localmente, depois confirme e faça o push para o GitHub.

    No portal do Azure, leva alguns momentos para detetar alterações no repositório GitHub e, em seguida, uma nova sincronização da implantação é iniciada. Isso é semelhante à ilustração a seguir.

    Modificar e sincronizar

  3. Quando a implantação estiver concluída, navegue até o site público e anexe /api à URL. A resposta JSON é retornada.

Solução de problemas

  • Se o processo node.exe terminar (ou seja, ocorrer uma exceção não tratada), o contentor será reiniciado.
  • Quando o contêiner é iniciado, ele passa por várias heurísticas para descobrir como iniciar o processo de Node.js. Os detalhes da implementação podem ser vistos em generateStartupCommand.js.
  • Você pode se conectar ao contêiner em execução via SSH para investigações. Isso é feito facilmente usando o portal do Azure. Selecione o App Service e desça na lista de ferramentas até chegar a SSH na seção Ferramentas de Desenvolvimento.
  • Para ajudar na solução de problemas, vá para as configurações de de logs de Diagnóstico do para o Serviço de Aplicativo e altere a configuração de log do Contêiner do Docker de desativado para do sistema de arquivos. Os logs são criados no contêiner em /home/LogFiles/_docker.log*, e podem ser acessados na caixa usando SSH ou FTP(S).
  • Um nome de domínio personalizado pode ser atribuído ao site, em vez do URL *.azurewebsites.net atribuído por padrão. Para obter mais detalhes, consulte o tópico Mapear domínio personalizado.
  • A implantação em um local de preparo para testes adicionais antes de entrar em produção é uma prática recomendada. Para obter detalhes sobre como configurar isso, consulte o tópico Criar ambientes de preparo.
  • Consulte as Perguntas Frequentes do App Service no Linux para obter perguntas mais frequentes.

Próximos passos

Neste tutorial, você aprendeu como criar um Serviço de Aplicativo Linux e implantar um aplicativo Node.js no serviço. Você pode querer saber mais sobre o Linux App Service.