Criar e implantar um aplicativo Node.js em um Serviço de Nuvem do Azure (clássico)
Importante
Os Serviços na Nuvem (clássicos) foram preteridos para todos os clientes a partir de 1º de setembro de 2024. Todas as implantações em execução existentes serão interrompidas e encerradas pela Microsoft e os dados serão perdidos permanentemente a partir de outubro de 2024. 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 Cloud Services são os blocos modulares de aplicações em nuvem dimensionáveis no Azure. Permitem a separação, bem como a gestão e ampliação independentes de componentes front-end e back-end da aplicação. Os Cloud Services fornecem uma máquina virtual dedicada robusta para alojar cada função de forma fiável.
Gorjeta
Quer construir um site? Se o seu cenário envolver apenas um front-end de site simples, considere a utilização de uma aplicação Web simples. Pode facilmente atualizar para um Serviço em Nuvem à medida que a aplicação Web aumenta e os seus requisitos se alteram.
Seguindo este tutorial, você cria um aplicativo Web hospedado dentro de uma função Web. Use o emulador de computação para testar seu aplicativo localmente e, em seguida, implante-o usando as ferramentas de linha de comando do PowerShell.
A aplicação é uma aplicação "hello world":
Pré-requisitos
Nota
Este tutorial utiliza o Azure PowerShell, que requer o Windows.
- Instale e configure o Azure PowerShell.
- Baixe e instale o [SDK do Azure para .NET 2.7]. Na configuração de instalação, selecione:
- MicrosoftAzureAuthoringTools
- MicrosoftAzureComputeEmulator
Criar um projeto do Serviço em Nuvem do Azure
Execute as seguintes tarefas para criar um novo projeto do Serviço em Nuvem do Azure, juntamente com andaime Node.js básico:
Execute o Windows PowerShell como Administrador; no Menu Iniciar ou Ecrã Inicial, procure Windows PowerShell.
Ligue o PowerShell à sua subscrição.
Insira o seguinte cmdlet do PowerShell para criar o projeto:
New-AzureServiceProject helloworld
O cmdlet New-AzureServiceProject gera uma estrutura básica para publicar uma aplicação Node.js num Serviço em Nuvem. Contém os ficheiros de configuração necessários para publicação no Azure. O cmdlet também altera o diretório de trabalho para o diretório do serviço.
O cmdlet cria os seguintes ficheiros:
- ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg e ServiceDefinition.csdef: ficheiros específicos do Azure necessários para publicar a aplicação. Para obter mais informações, consulte Descrição Geral da Criação de um Serviço Alojado do Azure.
- deploymentSettings.json: armazena as definições locais que são utilizadas pelos cmdlets de implementação do Azure PowerShell.
Introduza o comando seguinte para adicionar uma nova função da Web:
Add-AzureNodeWebRole
O cmdlet Add-AzureNodeWebRole cria uma aplicação Node.js básica. Também modifica os ficheiros .csfg e .csdef para adicionar entradas de configuração para a nova função.
Nota
Se não especificar um nome de função, será utilizado um nome predefinido. Pode fornecer um nome como o primeiro parâmetro do cmdlet:
Add-AzureNodeWebRole MyRole
A aplicação Node.js é definida no ficheiro server.js, localizado no diretório da função da Web (WebRole1, por predefinição). Aqui está 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);
Este código é, essencialmente, igual ao exemplo de “Olá, Mundo” no site nodejs.org, exceto que utiliza o número da porta atribuído pelo ambiente de nuvem.
Implementar a aplicação no Azure
Nota
Para concluir este tutorial, precisa de uma conta do Azure. Pode ativar os benefícios de subscritor do MSDN ou inscrever-se numa conta gratuita.
Transferir as definições de publicação do Azure
Para implementar a aplicação no Azure, primeiro tem de transferir as definições de publicação para a sua subscrição do Azure.
Execute o seguinte cmdlet do Azure PowerShell:
Get-AzurePublishSettingsFile
Este comando usa seu navegador para navegar até a página de download das configurações de publicação. Poderá ser-lhe pedido para iniciar sessão com uma Conta Microsoft. Se assim for, utilize a conta associada à subscrição do Azure.
Guarde o perfil transferido numa localização do ficheiro facilmente acessível.
Execute o seguinte cmdlet para importar o perfil de publicação transferido:
Import-AzurePublishSettingsFile [path to file]
Nota
Depois de importar as definições de publicação, considere eliminar o ficheiro .publishSettings transferido, porque contém informações que podem permitir a alguém aceder à sua conta.
Publicar a aplicação
Para publicar, execute os seguintes comandos:
$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName -Location "East US" -Launch
- -ServiceName: especifica o nome da implementação. Esse valor deve ser um nome exclusivo; caso contrário, o processo de publicação falhará. O comando Get-Data adiciona uma cadeia de data/hora que deve tornar o nome exclusivo.
- -Location especifica o datacenter que hospeda o aplicativo. Para ver uma lista de datacenters disponíveis, utilize 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:
Nota
Pode demorar alguns minutos para que a aplicação seja implementada e fique disponível quando publicada pela primeira vez.
Quando a implantação for concluída, uma janela do navegador será aberta e navegará até o serviço de nuvem.
A aplicação está agora em execução no Azure.
O cmdlet Publish-AzureServiceProject efetua os seguintes passos:
- Cria um pacote para implementação. O pacote contém todos os ficheiros da sua pasta da aplicação.
- Cria uma nova conta de armazenamento, se não existir. A conta do Storage do Azure é utilizada para armazenar o pacote de aplicação durante a implementação. Pode eliminar a conta do Storage em segurança após a implementação ser efetuada.
- Cria um novo serviço de nuvem, caso ainda não exista. Um serviço de nuvem é o contêiner no qual seu aplicativo é hospedado quando é implantado no Azure. Para obter mais informações, consulte Descrição Geral da Criação de um Serviço Alojado do Azure.
- Publica o pacote de implementação no Azure.
Parar e eliminar a aplicação
Depois de implementar a aplicação, poderá pretender desativá-la, para evitar custos adicionais. O Azure cobra as instâncias de função da Web por hora de tempo do servidor consumido. O tempo do servidor é consumido depois que o aplicativo é implantado, mesmo que as instâncias não estejam em execução e estejam no estado interrompido.
Na janela do Windows PowerShell, pare a implementação do serviço criada na secção anterior com o seguinte cmdlet:
Stop-AzureService
A paragem do serviço pode demorar vários minutos. Quando o serviço é interrompido, você recebe uma mensagem indicando que ele parou.
Para eliminar o serviço, chame o cmdlet seguinte:
Remove-AzureService
Quando lhe for pedido, introduza S para eliminar o serviço.
A eliminação do serviço pode demorar vários minutos. Depois de excluir o serviço, você recebe uma mensagem indicando que o serviço foi excluído.
Nota
A eliminação do serviço não elimina a conta do Storage que foi criada quando o serviço foi inicialmente publicado. por isso, continuará a ser-lhe cobrado o armazenamento utilizado. Se mais nada estiver a utilizar o armazenamento, poderá querer eliminá-lo.
Próximos passos
Para mais informações, consulte o Centro de Programadores de Node.js.