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":

Um browser a apresentar a página Web “Olá, Mundo”

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:

  1. Execute o Windows PowerShell como Administrador; no Menu Iniciar ou Ecrã Inicial, procure Windows PowerShell.

  2. Ligue o PowerShell à sua subscrição.

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

    New-AzureServiceProject helloworld
    

    O resultado do comando olámundo New-AzureService

    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.
  4. Introduza o comando seguinte para adicionar uma nova função da Web:

    Add-AzureNodeWebRole
    

    O resultado do comando 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.

  1. 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.

  2. 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:

The output of the Publish-AzureService command

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.

Uma janela do browser a apresentar a página olá, mundo; o URL indica que a página está alojada no Azure.

A aplicação está agora em execução no Azure.

O cmdlet Publish-AzureServiceProject efetua os seguintes passos:

  1. Cria um pacote para implementação. O pacote contém todos os ficheiros da sua pasta da aplicação.
  2. 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.
  3. 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.
  4. 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.

  1. 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.

    The status of the Stop-AzureService command

  2. 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.

    O estado do comando Remove-AzureService

    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.