Criar e implantar um aplicativo Node.js para um Serviço de Nuvem do Azure (clássico)
Artigo
Importante
Os Serviços de Nuvem (clássicos) estão obsoletos para todos os clientes desde 1º de setembro de 2024. Todas as implantações em execução existentes serão interrompidas e desligadas pela Microsoft e os dados serão permanentemente perdidos 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”:
Pré-requisitos
Observação
Este tutorial usa o PowerShell do Azure, que requer o Windows.
Insira o seguinte cmdlet do PowerShell para criar o projeto:
PowerShell
New-AzureServiceProject 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.
Digite o seguinte comando para adicionar uma nova função da Web:
PowerShell
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 :
JavaScript
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.
Para implantar seu aplicativo do Azure, você deve primeiro baixar as definições de publicação para sua assinatura do Azure.
Execute o seguinte cmdlet do PowerShell do Azure:
PowerShell
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.
Execute o seguinte cmdlet para importar o perfil de publicação que você baixou:
PowerShell
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.
-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:
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.
Seu aplicativo está em execução no Azure.
O cmdlet Publish-AzureServiceProject executa as seguintes etapas:
Cria um pacote a ser implantado. O pacote contém todos os arquivos em sua pasta de aplicativos.
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.
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.
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.
Na janela do Windows PowerShell, interrompa a implantação do serviço criada na seção anterior com o seguinte cmdlet:
PowerShell
Stop-AzureService
Interromper o serviço pode levar alguns minutos. Quando o serviço é interrompido, você recebe uma mensagem indicando que ele parou.
Para excluir o serviço, chame o seguinte cmdlet:
PowerShell
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.
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.
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.
Use este tutorial para criar um novo aplicativo usando o módulo Express, que fornece uma estrutura MVC (Model-View-Control) para criar aplicativos Web Node.js.