Skapa och distribuera ett Node.js-program till en Azure Cloud Service (klassisk)
Viktigt!
Cloud Services (klassisk) är nu inaktuellt för alla kunder från och med den 1 september 2024. Alla befintliga distributioner som körs stoppas och stängs av av Microsoft och data kommer att förloras kontinuerligt från och med oktober 2024. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).
Den här självstudien visar hur du skapar ett Node.js program som körs i en Azure Cloud Service. Cloud Services är byggblocken för skalbara molnprogram i Azure. De gör att det går att separera och på ett oberoende sätt hantera och skala ut klient- och serverkomponenter i ditt program. Cloud Services ger en robust avsedd virtuell dator som på ett pålitligt sätt kan vara värd åt varje roll.
Dricks
Vill du skapa en webbplats? Om du planerar att använda en enkel webbplatsklient kan du använda en förenklad webbapp. Det är lätt att uppgradera till en molntjänst efter hand som webbappen växer och dina behov förändras.
Genom att följa den här självstudien skapar du ett webbprogram som finns i en webbroll. Du använder beräkningsemulatorn för att testa programmet lokalt och distribuerar det sedan med hjälp av PowerShell-kommandoradsverktyg.
Programmet är ett "hello world"-program:
Förutsättningar
Kommentar
I den här kursen används Azure PowerShell, vilket kräver Windows.
- Installera och konfigurera Azure PowerShell.
- Ladda ned och installera [Azure SDK för .NET 2.7]. I installationsprogrammet väljer du:
- MicrosoftAzureAuthoringTools
- MicrosoftAzureComputeEmulator
Skapa ett Azure Cloud Service-projekt
Utför följande uppgifter för att skapa ett nytt Azure Cloud Service-projekt med grundläggande scaffold-teknik för Node.js:
Kör Windows PowerShell med administratörsbehörighet. Öppna Start-menyn eller Startskärmen och sök efter Windows PowerShell.
Anslut PowerShell till din prenumeration.
Ange följande PowerShell-cmdlet för att skapa projektet:
New-AzureServiceProject helloworld
Cmdleten New-AzureServiceProject skapar en grundläggande struktur för att publicera ett Node.js-program till en molntjänst. Den innehåller konfigurationsfiler som krävs för publicering till Azure. Cmdleten ändrar även arbetskatalogen till katalogen för tjänsten.
Cmdleten skapar följande filer:
- ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg och ServiceDefinition.csdef: Azure-specifika filer som krävs för publicering av programmet. Mer information finns i Översikt över att skapa en värdbaserad tjänst för Azure.
- deploymentSettings.json: Lagrar lokala inställningar som används av Azure PowerShell-cmdletarna för distribution.
Ange följande kommando för att lägga till en ny webbroll:
Add-AzureNodeWebRole
Cmdleten Add-AzureNodeWebRole skapar ett grundläggande Node.js-program. Den modifierar även .csfg- och .csdef-filerna att lägga till konfigurationsposter för den nya rollen.
Kommentar
Om du inte anger ett rollnamn används ett standardnamn. Du kan ange ett namn som den första cmdlet-parametern:
Add-AzureNodeWebRole MyRole
Node.js-appen definieras i filen server.js, som finns i katalogen för webbrollen (WebRole1 som standard). Här är koden:
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);
Den här koden är i stort sett densamma som i exemplet ”Hello World” på webbplatsen nodejs.org, förutom att det använder portnumret som har tilldelats av molnmiljön.
Distribuera appen till Azure
Kommentar
Du behöver ett Azure-konto för att slutföra den här självstudien. Du kan aktivera dina MSDN-prenumerationsfördelar eller registrera dig för ett kostnadsfritt konto.
Hämta Azure-publiceringsinställningarna
Om du vill distribuera programmet till Azure måste du först hämta publiceringsinställningarna för din Azure-prenumeration.
Kör följande Azure PowerShell-cmdlet:
Get-AzurePublishSettingsFile
Det här kommandot använder webbläsaren för att navigera till nedladdningssidan för publiceringsinställningar. Du kan uppmanas att logga in med ett Microsoft-konto. I så fall använder du det konto som är kopplat till din Azure-prenumeration.
Spara den hämtade profilen på en plats som du enkelt kan komma åt.
Kör följande cmdlet för att importera publiceringsprofilen som du hämtade:
Import-AzurePublishSettingsFile [path to file]
Kommentar
När du har importerat publiceringsinställningarna bör du ta bort den hämtade .publishSettings-filen eftersom den innehåller information som kan göra det möjligt för någon att komma åt ditt konto.
Publicera programmet
Kör följande kommandon för att publicera:
$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName -Location "East US" -Launch
- -ServiceName anger namnet på distributionen. Det här värdet måste vara ett unikt namn. annars misslyckas publiceringsprocessen. Kommandot Get-Date lägger till en datum/tid-sträng som bör göra namnet unikt.
- -Plats anger det datacenter som är värd för programmet. Om du vill se en lista över tillgängliga datacenter ska du använda cmdleten Get-AzureLocation.
- -Starta öppnar ett webbläsarfönster och navigerar till den värdbaserade tjänsten när distributionen är klar.
När publiceringen har slutförts visas ett svar som liknar skärmbilden:
Kommentar
Det kan ta flera minuter för programmet att distribueras och bli tillgängligt när det publiceras för första gången.
När distributionen är klar öppnas ett webbläsarfönster och navigerar till molntjänsten.
Programmet körs nu på Azure.
Cmdleten Publish-AzureServiceProject utför följande steg:
- Skapar ett paket som ska distribueras. Paketet innehåller alla filer i programmappen.
- Skapar ett nytt lagringskonto om det inte finns något. Azure-lagringskontot används för att lagra programpaketet under distributionen. När distributionen är klar kan du ta bort lagringskontot.
- Skapar en ny molntjänst om den inte redan finns. En molntjänst är containern där programmet finns när det distribueras till Azure. Mer information finns i Översikt över att skapa en värdbaserad tjänst för Azure.
- Publicerar distributionspaketet till Azure.
Stoppa och ta bort programmet
När du har distribuerat programmet vill du kanske inaktivera det för att undvika extra kostnader. Azure fakturerar webbrollsinstanser per timme förbrukad servertid. Servertiden förbrukas när programmet har distribuerats, även om instanserna inte körs och är i stoppat tillstånd.
Stoppa tjänstdistributionen som skapades i föregående avsnitt med följande cmdlet i Windows PowerShell-fönstret:
Stop-AzureService
Det kan ta flera minuter att stoppa tjänsten. När tjänsten stoppas får du ett meddelande som anger att den har stoppats.
Ta bort tjänsten genom att anropa följande cmdlet:
Remove-AzureService
När du uppmanas, anger du Y för att ta bort tjänsten.
Det kan ta flera minuter att ta bort tjänsten. När du har tagit bort tjänsten får du ett meddelande som anger att tjänsten har tagits bort.
Kommentar
Om du tar bort tjänsten tar det inte bort lagringskontot som skapades när tjänsten inledningsvis publicerades, och du debiteras även i fortsättningen för det lagringsutrymme som används. Om lagringen inte används kan det vara lämpligt att ta bort den.
Nästa steg
Mer information finns i Node.js Developer Center.