Een Node.js-web-app implementeren in Azure

In deze quickstart leert u hoe u uw eerste Node.js (Express)-web-app maakt en implementeert in Azure App Service. App Service ondersteunt verschillende versies van Node.js in Linux en Windows.

De Azure CLI-stappen in deze quickstart gebruiken de betaalde Premium v3-tier. De stappen van Visual Studio Code en Azure portal laten zien hoe je de Free-laag gebruikt.

In deze video ziet u hoe u een Node.js-web-app implementeert in Azure.

De stappen in de video worden ook beschreven in de volgende secties.

Uw eerste omgeving instellen

  • U moet beschikken over een Azure-account met een actief abonnement. Als u nog geen account hebt, kunt u gratis een account maken.
  • Installeer Node.js LTS. Voer de opdracht node --version uit om te controleren of Node.js is geïnstalleerd.
  • Installeer Azure CLI, die u kunt gebruiken om opdrachten uit te voeren in een shell om Azure-resources te maken en te configureren.
  • U moet beschikken over een Azure-account met een actief abonnement. Als u nog geen account hebt, kunt u gratis een account maken.
  • Installeer Node.js LTS. Voer de opdracht node --version uit om te controleren of Node.js is geïnstalleerd.
  • Een FTP-client, zoals FileZilla, hebben om bestanden over te dragen naar App Service.

Uw Node.js-toepassing maken

In deze stap maakt u een eenvoudige Node.js toepassing en zorgt u ervoor dat deze op uw computer wordt uitgevoerd.

Aanbeveling

Als u de Node.js zelfstudie al hebt voltooid, kunt u doorgaan naar Implementeren in Azure.

  1. Maak een Node.js toepassing met behulp van de express-toepassingsgenerator, die standaard is geïnstalleerd met Node.js en npm.

    npx express-generator myExpressApp --view ejs
    

    Als dit de eerste keer is dat u de generator hebt geïnstalleerd, vraagt NPX u akkoord te gaan met de installatie.

  2. Ga naar de map van de toepassing en installeer de npm-pakketten.

    cd myExpressApp && npm install
    
  3. Afhankelijkheden bijwerken naar de veiligste versie.

    npm audit fix --force
    
  4. Start de ontwikkelserver met foutopsporingsgegevens.

    DEBUG=myexpressapp:* npm start
    
  5. Navigeer in een browser naar http://localhost:3000. U zou iets moeten zien dat er ongeveer zo uitziet:

    Schermopname van een Express-toepassing die wordt uitgevoerd in een browser.

Implementeren in Azure

Voordat u doorgaat, moet u ervoor zorgen dat alle vereisten zijn geïnstalleerd en geconfigureerd.

Opmerking

Uw Node.js-toepassing kan alleen worden uitgevoerd in Azure als deze luistert op de poort die wordt geleverd door de PORT omgevingsvariabele. In uw gegenereerde Express-app wordt deze omgevingsvariabele al gebruikt in de bin/www van het opstartscript. Zoek naar process.env.PORT.

Aanmelden bij Azure

  1. Controleer in de terminal of u zich in de map myExpressApp bevindt en start Visual Studio Code met de volgende opdracht:

    code .
    
  2. Selecteer in Visual Studio Code in de activiteitenbalk het Azure-logo.

  3. Zorg ervoor dat u bent aangemeld met uw Azure-account.

De App Service-app configureren en code implementeren

  1. Klik met de rechtermuisknop op App Services en selecteer Nieuwe web-app maken. Een Linux-container wordt standaard gebruikt.

  2. Typ een wereldwijd unieke naam voor uw web-app en selecteer Enter. De naam moet uniek zijn in heel Azure en mag alleen alfanumerieke tekens (A-Z, a-zen ) en 0-9afbreekstreepjes () gebruiken.-

  3. Selecteer in 'Selecteer een runtimestack' de gewenste Node.js-versie. Node 24 LTS wordt aanbevolen.

  4. In Selecteer een prijscategorie, selecteer Gratis (F1) en wacht tot de resources in Azure zijn aangemaakt.

  5. Selecteer < in het pop-upvenster "Werkruimte 'myExpressApp' altijd implementeren naar >app-naam". Dit zorgt ervoor dat, zolang u zich in dezelfde werkruimte bevindt, Visual Studio Code elke keer in dezelfde App Service-app wordt geïmplementeerd.

    Terwijl Visual Studio Code de Azure-resources maakt en de code implementeert, worden voortgangsmeldingen weergegeven.

  6. Nadat de implementatie voltooid is, selecteer Website doorbladeren in de pop-upmelding. In de browser moet de standaardpagina van Express worden weergegeven.

Zorg er in de terminal voor dat je in de myExpressApp-map staat. Vervang <app-name> door een wereldwijd unieke naam, en maak vervolgens de resourcegroep, het App Service-plan en de app aan. Stel SCM_DO_BUILD_DURING_DEPLOYMENT zo in dat App Service de afhankelijkheden installeert en de app bouwt wanneer je het bronarchief uitrolt.

az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "NODE:24-lts"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
  • Als de az opdracht niet wordt herkend, controleert u of de Azure CLI is geïnstalleerd zoals beschreven in Uw eerste omgeving instellen.
  • Vervang <app-name> door een naam die uniek is voor heel Azure (geldige tekens zijn a-z, 0-9, en -).
  • Het --sku P0v3 argument selecteert de betaalde Premium v3 prijsklasse. Vervang eastus door je voorkeursregio; vermeld beschikbare regio's met az account list-locations.
  • --is-linux kiest een Linux-abonnement. Laat het weg voor een Windows-plan, zoals te zien is in het Windows-tabblad.

Maak een ZIP-archief van de bestanden in myExpressApp, niet van de bovenliggende map. Op Linux of macOS, draai zip -r ../app.zip . -x '*/node_modules/*' '*/.git/*' '*/.env*' in myExpressApp. Op Windows kun je Compress-Archive -Path (Get-ChildItem -Force -Name | Where-Object { $_ -notin @('node_modules', '.git') -and $_ -notlike '.env*' }) -DestinationPath ..\app.zip uitvoeren in PowerShell vanuit myExpressApp. Vervolgens deploy je het archief:

az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip

Blader naar https://<app-name>.azurewebsites.net om de app te zien.

Azure-resources maken

  1. Meld u aan bij het Azure-portaal.

  2. Om te beginnen met het maken van een Node.js-app, navigeer naar https://portal.azure.com/#create/Microsoft.WebSite.

  3. Controleer op het tabblad Basisinformatie onder Projectdetails of het juiste abonnement is geselecteerd en selecteer Nieuwe maken om een resourcegroep te maken. Typ myResourceGroup als de naam.

    Schermopname van de sectie Projectdetails waarin u het Azure-abonnement en de resourcegroep voor de web-app selecteert.

  4. Typ onder Exemplaardetails een wereldwijd unieke naam voor uw web-app en selecteer Code. Selecteer Node 24 LTS in runtimestack, een besturingssysteem en een regio waaruit u uw app wilt bedienen.

    Schermopname van de sectie Exemplaardetails.

  5. Selecteer onder Prijsplannen, nieuwe maken om een App Service-plan te maken. Typ myAppServicePlan als naam. Als u wilt overschakelen naar de gratis laag, selecteert u Gratis F1 in de lijst met abonnementen .

    Schermopname van de sectie App Service-plan.

  6. Selecteer de knop Beoordelen en maken onder aan de pagina.

    Screenshot van de knop 'Controleren en maken' onder aan de pagina

  7. Nadat de validatie is uitgevoerd, selecteert u de knop Maken onder aan de pagina.

  8. Nadat de implementatie is voltooid, selecteert u Ga naar de resource.

    schermopname met de knop Ga naar resource.

FTPS-referenties ophalen

Azure App Service ondersteunt twee typen referenties voor FTP/S-implementatie. Deze referenties zijn niet hetzelfde als uw Azure-abonnementsreferenties. In deze sectie krijgt u de referenties voor het toepassingsbereik die u met uw FTP-client wilt gebruiken.

  1. Selecteer implementatiecentrum onder Implementatie in het zijbalkmenu op de pagina App Service-app en selecteer vervolgens het tabblad FTPS-referenties .

    Schermopname van het tabblad REFERENTIES voor FTPS-implementatie.

  2. Open uw FTP-client en navigeer naar de map myExpressApp .

  3. Kopieer op het tabblad FTPS-referenties het FTPS-eindpunt, de gebruikersnaam en het wachtwoord naar uw FTP-client.

    Schermopname van de details van de FTPS-verbinding.

  4. Selecteer Verbinding maken in uw FTP-client.

Bestanden implementeren met FTPS

  1. Kopieer alle bestanden en mappen naar de map /site/wwwroot in Azure.

    Schermopname van de hoofdmap van WWW.

  2. Blader naar de URL van uw app om te controleren of de app correct wordt uitgevoerd.

Updates opnieuw implementeren

U kunt wijzigingen in deze app implementeren door wijzigingen aan te brengen in Visual Studio Code, uw bestanden op te slaan en vervolgens opnieuw te implementeren in uw Azure-app. Voorbeeld:

  1. Open het bestand views/index.ejs vanuit het voorbeeldproject en wijzig

    <p>Welcome to <%= title %></p>
    

    naar

    <p>Welcome to Azure</p>
    
  1. Selecteer in App Service Explorer nogmaals het pictogram Implementeren naar web-app en bevestig dit door Opnieuw implementeren te selecteren.

  2. Wacht tot deze implementatie is voltooid en klik op Website Bladeren in de pop-upmelding. U ziet dat het Welcome to Express bericht is gewijzigd in Welcome to Azure.

  1. Sla je wijzigingen op, maak ../app.zip opnieuw aan op basis van de appbestanden zoals beschreven in Deploy to Azure, en deploy opnieuw:

    az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip
    

    Vervang <app-name> door de naam die je gebruikte toen je de webapp maakte.

  2. Nadat de implementatie is voltooid, vernieuwt u de webpagina. U ziet dat het Welcome to Express bericht is gewijzigd in Welcome to Azure.

  1. Sla uw wijzigingen op en implementeer de app opnieuw met behulp van uw FTP-client.

  2. Nadat de implementatie is voltooid, vernieuwt u de webpagina. U ziet dat het Welcome to Express bericht is gewijzigd in Welcome to Azure.

Logbestanden streamen

U kunt logboekuitvoer (aanroepen naar console.log()) rechtstreeks vanuit de Azure-app streamen in het uitvoervenster van Visual Studio Code.

  1. Klik in Resources in Visual Studio Code met de rechtermuisknop op het app-knooppunt en selecteer Streaminglogboeken starten.

    Schermopname van de optie voor het starten van streaminglogboeken.

  2. Als u wordt gevraagd de app opnieuw te starten, selecteert u Ja. Zodra de app opnieuw is opgestart, wordt het uitvoervenster van Visual Studio Code geopend met een verbinding met de logboekstroom.

  3. Na een paar seconden wordt in het uitvoervenster een bericht weergegeven dat aangeeft dat u bent verbonden met de service voor logboekstreaming. U kunt meer uitvoeractiviteiten genereren door de pagina in de browser te vernieuwen.

    Connecting to log stream...
    2020-03-04T19:29:44  Welcome, you are now connected to log-streaming service. The default timeout is 2 hours.
    Change the timeout with the App Setting SCM_LOGSTREAM_TIMEOUT (in seconds).
    

U hebt toegang tot de consolelogboeken die zijn gegenereerd vanuit de app en de container waarin deze wordt uitgevoerd. Logboeken bevatten uitvoer die wordt gegenereerd door aanroepen naar console.log().

Als u logboeken wilt streamen, voert u de opdracht az webapp log tail uit:

  • Schakel eerst logging in: op Linux, start az webapp log config --resource-group myResourceGroup --name <app-name> --docker-container-logging filesystem; op Windows, start az webapp log config --resource-group myResourceGroup --name <app-name> --application-logging filesystem.
az webapp log tail --resource-group myResourceGroup --name <app-name>

Vervang <app-name> door de naam die je gebruikte toen je de webapp maakte.

Vernieuw de app in de browser om consolelogboeken te genereren. Deze omvatten berichten waarin HTTP-aanvragen voor de app worden beschreven. Als er niet meteen uitvoer verschijnt, probeer het dan over 30 seconden opnieuw.

Als u het streamen van logboeken wilt stoppen, selecteert u Ctrl+C in de terminal.

U hebt toegang tot de consolelogboeken die zijn gegenereerd vanuit de app en de container waarin deze wordt uitgevoerd. U kunt logboekuitvoer (aanroepen naar console.log()) rechtstreeks vanuit de Node.js-app streamen in Azure Portal.

  1. Gebruik op dezelfde App Service-pagina voor uw app het zijbalkmenu om naar de sectie Bewaking te schuiven en Logboekstream te selecteren.

    Schermafbeelding van Logboekstream in Azure-app Service.

  2. Na een paar seconden wordt in het uitvoervenster een bericht weergegeven dat aangeeft dat u bent verbonden met de service voor logboekstreaming. U kunt meer uitvoeractiviteiten genereren door de pagina in de browser te vernieuwen.

    Connecting...
    2021-10-26T21:04:14  Welcome, you are now connected to log-streaming service.
    Starting Log Tail -n 10 of existing logs ----
    /appsvctmp/volatile/logs/runtime/81b1b83b27ea1c3d598a1cdec28c71c4074ce66c735d0be57f15a8d07cb3178e.log
    2021-10-26T21:04:08.614384810Z: [INFO]
    2021-10-26T21:04:08.614393710Z: [INFO]  # Enter the source directory to make sure the script runs where the user expects
    2021-10-26T21:04:08.614399010Z: [INFO]  cd "/home/site/wwwroot"
    2021-10-26T21:04:08.614403210Z: [INFO]
    2021-10-26T21:04:08.614407110Z: [INFO]  export NODE_PATH=/usr/local/lib/node_modules:$NODE_PATH
    2021-10-26T21:04:08.614411210Z: [INFO]  if [ -z "$PORT" ]; then
    2021-10-26T21:04:08.614415310Z: [INFO]          export PORT=8080
    2021-10-26T21:04:08.614419610Z: [INFO]  fi
    2021-10-26T21:04:08.614423411Z: [INFO]
    2021-10-26T21:04:08.614427211Z: [INFO]  node /opt/startup/default-static-site.js
    Ending Log Tail of existing logs ---
    

De hulpbronnen opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Met de stappen in deze quickstart worden alle resources in deze resourcegroep geplaatst. Als u wilt opschonen, hoeft u alleen de resourcegroep te verwijderen.

  1. Selecteer in de Azure-extensie van Visual Studio Code in de lijst Groeperen op, de optie Groeperen op resourcegroep.

  2. Vouw in de lijst Resources het abonnement uit, klik met de rechtermuisknop op de resourcegroep die u eerder hebt gemaakt en selecteer Vervolgens Resourcegroep verwijderen.

    Schermopname van de Visual Studio Code-navigatie om een resource te verwijderen die App Service-resources bevat.

  3. Bevestig de verwijdering wanneer u hierom wordt gevraagd door de naam in te voeren van de resourcegroep die u verwijdert. Nadat u hebt bevestigd, wordt de resourcegroep verwijderd en ziet u een melding wanneer deze klaar is.

In de voorgaande CLI-stappen heb je Azure-bronnen aangemaakt in myResourceGroup.

Als u denkt dat u deze resources niet meer gaat gebruiken, verwijdert u de resourcegroep door de volgende opdracht uit te voeren:

az group delete --name myResourceGroup --no-wait

Met argument --no-wait kan de opdracht worden geretourneerd voordat de bewerking wordt voltooid.

U kunt de resourcegroep, App Service en alle gerelateerde resources verwijderen wanneer ze niet meer nodig zijn.

  1. Selecteer op de overzichtspagina van App Service de resourcegroep die u hebt gemaakt in de stap Azure-resources maken .

    Schermopname van de resourcegroep op de overzichtspagina van App Service.

  2. Selecteer op de pagina resourcegroep de optie Verwijder resourcegroep. Bevestig de naam van de resourcegroep om het verwijderen van de resources te voltooien.

    Schermopname van Verwijder resourcegroep.

Gefeliciteerd, u hebt deze quickstart voltooid.

Bekijk de andere Azure-extensies.

Of installeer het Node Pack voor Azure-extensiepakket om ze allemaal te krijgen.