Compartilhar via


Criar e implantar um aplicativo Node.js para um Serviço de Nuvem do Azure (clássico)

Importante

Os Serviços de Nuvem (clássicos) estão obsoletos para todos os clientes desde 1º de setembro de 2024. Qualquer implantação em execução existente será interrompida e desligada pela Microsoft e os dados serão perdidos permanentemente a partir de outubro de 2024. As novas implantações devem usar o novo modelo de implantação baseado no Azure Resource Manager Serviços de Nuvem do Azure (suporte estendido) .

Este tutorial mostra como criar um aplicativo Node.js em execução em um serviço de nuvem do Azure. Os Serviços de Nuvem são os blocos de construção de aplicativos de nuvem escalonáveis no Azure. Eles permitem a separação e o gerenciamento independente e o dimensionamento dos componentes de front-end e back-end de seu aplicativo. Os serviços de nuvem fornecem uma máquina virtual exclusiva robusta para hospedar cada função confiável.

Dica

Procurando desenvolver um site? Se o seu cenário envolve apenas um site de front-end simples, considere usar um aplicativo Web leve. Você pode atualizar facilmente para um serviço de nuvem conforme o aplicativo Web cresce e suas necessidades mudam.

Seguindo este tutorial, você criará um aplicativo Web hospedado dentro de uma função Web. Você pode usar o emulador de computação para testar o aplicativo localmente e, em seguida, implantá-lo usando as ferramentas de linha de comando do PowerShell.

O aplicativo é um aplicativo “hello world”:

Um navegador exibindo a página da Web Hello World

Pré-requisitos

Observação

Este tutorial usa o PowerShell do Azure, que requer o Windows.

  • Instalar e configurar o Azure PowerShell.
  • Baixar e instalar o [SDK do Azure para .NET 2.7]. Na configuração da instalação, selecione:
    • MicrosoftAzureAuthoringTools
    • MicrosoftAzureComputeEmulator

Criar um projeto de Serviço de Nuvem do Azure

Execute as tarefas a seguir para criar um novo projeto do Serviço de Nuvem do Azure, juntamente com a estrutura básica do Node.js:

  1. Execute o Windows PowerShell como administrador. No Menu Iniciar ou na tela Início, procure o Windows PowerShell.

  2. Conecte o PowerShell à sua assinatura.

  3. Insira o seguinte cmdlet do PowerShell para criar o projeto:

    New-AzureServiceProject helloworld
    

    O resultado do comando New-AzureService helloworld

    O cmdlet New-AzureServiceProject gera uma estrutura básica para publicar um aplicativo do Node.js para um Serviço de Nuvem. Ele contém arquivos de configuração necessários para publicar no Azure. O cmdlet também altera o diretório de trabalho para o diretório de serviço.

    O cmdlet cria os seguintes arquivos:

    • ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg e ServiceDefinition.csdef: são arquivos específicos do Azure necessários para publicar seu aplicativo. Para saber mais, consulte Visão geral da criação de um serviço hospedado para o Azure.
    • deploymentSettings.json: armazena configurações locais que são usadas pelos cmdlets de implantação do Azure PowerShell.
  4. Digite o seguinte comando para adicionar uma nova função da Web:

    Add-AzureNodeWebRole
    

    A saída do comando Add-AzureNodeWebRole.

    O cmdlet Add-AzureNodeWebRole cria um aplicativo básico do Node.js. Ele também modifica os arquivos .csfg e .csdef para adicionar entradas de configuração para a nova função.

    Observação

    Se você não especificar um nome de função, um nome padrão será usado. Você pode fornecer um nome como o primeiro parâmetro do cmdlet: Add-AzureNodeWebRole MyRole

O aplicativo do Node.js é definido no arquivo server.js, localizado no diretório da função Web (WebRole1, por padrão). Este é o código :

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

Esse código é basicamente o mesmo código do exemplo "Hello World" no site nodejs.org , com a exceção de que ele usa o número de porta atribuído pelo ambiente de nuvem.

Implantar o aplicativo no Azure

Observação

Para concluir este tutorial, você precisa de uma conta do Azure. Você pode ativar os benefícios de assinante do MSDN ou se inscrever para fazer uma conta gratuita.

Baixar as configurações de publicação do Azure

Para implantar seu aplicativo do Azure, você deve primeiro baixar as definições de publicação para sua assinatura do Azure.

  1. Execute o seguinte cmdlet do PowerShell do Azure:

    Get-AzurePublishSettingsFile
    

    Esse comando usa o navegador para navegar para a página de download de configurações de publicação. Você pode ser solicitado a entrar com uma conta Microsoft. Se fizer, use a conta associada com sua assinatura do Azure.

    Salve o perfil baixado para um local de arquivo, que você pode acessar facilmente.

  2. Execute o seguinte cmdlet para importar o perfil de publicação que você baixou:

    Import-AzurePublishSettingsFile [path to file]
    

    Observação

    Depois de importar as configurações de publicação, considere a exclusão do arquivo .publishsettings baixado, pois ele contém informações que podem permitir que alguém acesse sua conta.

Publicar o aplicativo

Para publicar, execute os seguintes comandos:

$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName  -Location "East US" -Launch
  • -ServiceName especifica o nome para a implantação. Esse valor deve ser um nome exclusivo; caso contrário, o processo de publicação falhará. O comando Get-Date usa uma cadeia de caracteres de data/hora que deve tornar o nome exclusivo.
  • -Location especifica o datacenter que hospeda o aplicativo. Para ver uma lista dos centros de dados disponíveis, use o cmdlet Get-AzureLocation .
  • -Launch abre uma janela do navegador e navega para o serviço hospedado após a conclusão da implantação.

Depois que a publicação for bem-sucedida, você verá uma resposta semelhante à captura de tela:

A saída do comando Publish-AzureService

Observação

Pode levar alguns minutos para o aplicativo ser implantado e tornar-se disponível quando for publicado pela primeira vez.

Depois que a implantação for concluída, uma janela do navegador será aberta e navegará para o serviço de nuvem.

Uma janela do navegador exibindo a página hello world; a URL indica que a página está hospedada no Azure.

Seu aplicativo está em execução no Azure.

O cmdlet Publish-AzureServiceProject executa as seguintes etapas:

  1. Cria um pacote a ser implantado. O pacote contém todos os arquivos em sua pasta de aplicativos.
  2. Cria uma nova conta de armazenamento se não houver uma. A conta de armazenamento do Azure é usada para armazenar o pacote de aplicativos durante a implantação. Você pode excluir com segurança a conta de armazenamento após a conclusão da implantação.
  3. Cria um novo serviço de nuvem se ainda não houver um. Um serviço de nuvem é o contêiner no qual seu aplicativo é hospedado quando é implantado no Azure. Para saber mais, consulte Visão geral da criação de um serviço hospedado para o Azure.
  4. Publica o pacote de implantação do Azure.

Parando e excluindo seu aplicativo

Depois de implantar seu aplicativo, convém desativá-lo para que você possa evitar custos extras. O Azure cobra as instâncias de função web por hora de acordo com o tempo consumido do servidor. O tempo do servidor é consumido quando seu aplicativo é implantado, mesmo que as instâncias não estejam em execução e estejam no estado parado.

  1. Na janela do Windows PowerShell, interrompa a implantação do serviço criada na seção anterior com o seguinte cmdlet:

    Stop-AzureService
    

    Interromper o serviço pode levar alguns minutos. Quando o serviço é interrompido, você recebe uma mensagem indicando que ele parou.

    O status do comando Stop-AzureService

  2. Para excluir o serviço, chame o seguinte cmdlet:

    Remove-AzureService
    

    Quando solicitado, insira Y para excluir o serviço.

    Excluir o serviço pode levar alguns minutos. Depois de excluir o serviço, você receberá uma mensagem indicando que o serviço foi excluído.

    O status do comando Remove-AzureService

    Observação

    Excluir o serviço não exclui a conta de armazenamento criada quando o serviço foi inicialmente publicado e você continuará a ser cobrado pelo armazenamento usado. Se ninguém mais está usando o repositório, convém excluí-lo.

Próximas etapas

Para saber mais, confira o Centro de desenvolvedores do Node.js.