Distribuera en Node.js webbapp i Azure

Kommentar

Från och med den 1 juni 2024 har alla nyligen skapade App Service-appar möjlighet att generera ett unikt standardvärdnamn med hjälp av namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net. Befintliga appnamn förblir oförändrade.

Exempel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Mer information finns i Unikt standardvärdnamn för App Service-resurs.

I den här snabbstarten får du lära dig hur du skapar och distribuerar din första Node.js-webbapp (Express) till Azure App Service. App Service stöder olika versioner av Node.js på både Linux och Windows.

Den här snabbstarten konfigurerar en App Service-app på den kostnadsfria nivån och medför ingen kostnad för din Azure-prenumeration.

Den här videon visar hur du distribuerar en Node.js webbapp i Azure.

Stegen i videon beskrivs också i följande avsnitt.

Konfigurera din första miljö

  • Ha ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
  • Installera Node.js LTS och npm. Kör kommandot node --version för att verifiera att Node.js har installerats.
  • Installera Azure CLI, där du kör kommandon i ett gränssnitt för att skapa och konfigurera Azure-resurser.

Skapa ditt Node.js-program

I det här steget skapar du ett grundläggande Node.js program och ser till att det körs på datorn.

Dricks

Om du redan har slutfört Node.js-självstudien kan du gå vidare till Distribuera till Azure.

  1. Skapa ett Node.js program med expressgeneratorn, som installeras som standard med Node.js och npm.

    npx express-generator myExpressApp --view ejs
    
  2. Ändra till programmets katalog och installera npm-paketen.

    cd myExpressApp && npm install
    
  3. Starta utvecklingsservern med felsökningsinformation.

    DEBUG=myexpressapp:* npm start
    
  4. I en webbläsare navigerar du till http://localhost:3000. Du bör se något som liknar följande:

    Skärmbild av ett Express-program som körs.

Distribuera till Azure

Kontrollera att allt som krävs är installerat och konfigurerat innan du fortsätter.

Kommentar

För att ditt Node.js program ska kunna köras i Azure måste det lyssna på porten som tillhandahålls av PORT miljövariabeln. I din genererade Express-app används den här miljövariabeln redan i startskriptets lagerplats/www. (Sök process.env.PORTefter .)

Logga in på Azure

  1. Kontrollera att du är i katalogen myExpressApp i terminalen och starta sedan Visual Studio Code med följande kommando:

    code .
    
  2. I Visual Studio Code går du till aktivitetsfältet och väljer Azure-logotypen.

  3. I App Service-utforskaren väljer du Logga in på Azure och följer anvisningarna.

    I Visual Studio Code bör du se din Azure-e-postadress i statusfältet och din prenumeration i App Service-utforskaren.

    Skärmar inte för alternativet Logga in på Azure.

Konfigurera App Service-appen och distribuera kod

  1. Välj mappen myExpressApp.
  1. Högerklicka på App Services och välj Skapa ny webbapp. En Linux-container används som standard.

  2. Ange ett globalt unikt namn för webbappen och välj Retur. Namnet måste vara unikt i hela Azure och endast använda alfanumeriska tecken (A–Z, a–z och 0–9) och bindestreck (-). Se anteckningen i början av den här artikeln.

  3. I Välj en körningsstack väljer du den Node.js version du vill använda. Vi rekommenderar en LTS-version.

  4. I Välj en prisnivå väljer du Kostnadsfri (F1) och väntar tills resurserna har skapats i Azure.

  5. I popup-fönstret Distribuera alltid arbetsytan "myExpressApp" till <appnamn>" och välj Ja. Detta säkerställer att Visual Studio Code distribueras till samma App Service-app varje gång så länge du befinner dig på samma arbetsyta.

    Visual Studio Code skapar Azure-resurserna och distribuerar koden, men den visar förloppsmeddelanden.

  6. När distributionen är klar väljer du Bläddra på webbplatsen i meddelande-popup-fönstret. Webbläsaren bör visa standardsidan för Express.

I terminalen kontrollerar du att du är i katalogen myExpressApp och distribuerar koden i din lokala mapp (myExpressApp) med kommandot az webapp up :

az webapp up --sku F1 --name <app-name>
  • az Om kommandot inte känns igen kontrollerar du att Azure CLI är installerat enligt beskrivningen i Konfigurera din första miljö.
  • Ersätt <app_name> med ett namn som är unikt i hela Azure. (Giltiga tecken är a-z, 0-9och -.) Se anteckningen i början av den här artikeln. Ett bra mönster är att använda en kombination av företagets namn och en appidentifierare.
  • Argumentet --sku F1 skapar webbappen på prisnivån Kostnadsfri, vilket inte medför någon kostnad.
  • Du kan också inkludera argumentet --location <location-name> där <location_name> är en tillgänglig Azure-region. Du kan hämta en lista över tillåtna regioner för ditt Azure-konto genom att az account list-locations köra kommandot .
  • Kommandot skapar en Linux-app för Node.js som standard. Använd argumentet för --os-type att skapa en Windows-app i stället.
  • Om du ser felet "Det gick inte att identifiera körningsstacken för din app automatiskt" kontrollerar du att du kör kommandot i katalogen myExpressApp (se Felsöka problem med automatisk identifiering med az webapp up.)

Det kan ta några minuter att slutföra kommandot. När den körs visas meddelanden om hur du skapar resursgruppen, App Service-planen och appresursen, konfigurerar loggning och utför Zip-distribution. Meddelandet "Du kan starta appen på http://< app-name.azurewebsites.net>", som är appens URL i Azure. (Se anteckningen i början av den här artikeln.)

The webapp '<app-name>' doesn't exist
Creating Resource group '<group-name>' ...
Resource group creation complete
Creating AppServicePlan '<app-service-plan-name>' ...
Creating webapp '<app-name>' ...
Configuring default logging for the app, if not already enabled
Creating zip with contents of dir /home/cephas/myExpressApp ...
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
You can launch the app at http://<app-name>.azurewebsites.net
{
  "URL": "http://<app-name>.azurewebsites.net",
  "appserviceplan": "<app-service-plan-name>",
  "location": "centralus",
  "name": "<app-name>",
  "os": "<os-type>",
  "resourcegroup": "<group-name>",
  "runtime_version": "node|10.14",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "//home//cephas//myExpressApp"
}

Kommentar

Kommandot az webapp up utför följande åtgärder:

  • Skapa en standardresursgrupp.

  • Skapa en standardplan för App Service.

  • Skapa en app med det angivna namnet.

  • Zip-distribuera alla filer från den aktuella arbetskatalogen, med build automation aktiverat.

  • Cachelagra parametrarna lokalt i .azure/config-filen så att du inte behöver ange dem igen när du distribuerar dem senare med az webapp up eller andra az webapp kommandon från projektmappen. De cachelagrade värdena används automatiskt som standard.

Logga in på Azure-portalen

Logga in på Azure-portalen.

Skapa Azure-resurser

  1. Om du vill börja skapa en Node.js app bläddrar du till https://portal.azure.com/#create/Microsoft.WebSite.

  2. På fliken Grundläggande information under Projektinformation kontrollerar du att rätt prenumeration har valts och väljer sedan Skapa ny för att skapa en resursgrupp. Skriv myResourceGroup som namn.

    Skärmbild av avsnittet Projektinformation som visar var du väljer Azure-prenumerationen och resursgruppen för webbappen.

  3. Under Instansinformation skriver du ett globalt unikt namn för webbappen och väljer Kod. (Se anteckningen i början av den här artikeln.) Välj Nod 18 LTS i Körningsstack, ett operativsystem och en region som du vill hantera appen från.

    Skärmbild av avsnittet Instansinformation.

  4. Under App Service-plan väljer du Skapa ny för att skapa en App Service-plan. Ange myAppServicePlan som namn. Om du vill ändra till den kostnadsfria nivån väljer du Ändra storlek, väljer fliken Dev/Test , väljer F1 och sedan knappen Tillämpa längst ned på sidan.

    Skärmbild av avsnittet App Service-plan.

  5. Välj knappen Granska + skapa längst ned på sidan.

    Skärmbild som visar knappen Granska och skapa längst ned på sidan

  6. När valideringen har körts väljer du knappen Skapa längst ned på sidan.

  7. När distributionen är klar väljer du Gå till resurs.

    Skärmbild som visar knappen Gå till resurs.

Hämta FTPS-autentiseringsuppgifter

Azure App Service stöder två typer av autentiseringsuppgifter för FTP/S-distribution. Dessa autentiseringsuppgifter är inte samma som dina autentiseringsuppgifter för Din Azure-prenumeration. I det här avsnittet får du de autentiseringsuppgifter för programomfattning som ska användas med FileZilla.

  1. På appsidan App Service väljer du Distributionscenter på den vänstra menyn och väljer sedan fliken FTPS-autentiseringsuppgifter .

    Skärmbild som visar fliken autentiseringsuppgifter för FTPS-distribution.

  2. Öppna FileZilla och skapa en ny webbplats.

  3. På fliken FTPS-autentiseringsuppgifter kopierar du FTPS-slutpunkten, användarnamnet och lösenordet till FileZilla.

    Skärmbild av FTPS-anslutningsinformationen.

  4. Välj Anslut i FileZilla.

Distribuera filer med FTPS

  1. Kopiera alla filer och katalogfiler till katalogen /site/wwwroot i Azure.

    Skärmbild av katalogen /site/wwwroot.

  2. Bläddra till appens URL för att kontrollera att appen körs korrekt.

Distribuera om uppdateringar

Du kan distribuera ändringar i den här appen genom att göra ändringar i Visual Studio Code, spara dina filer och sedan distribuera om till din Azure-app. Till exempel:

  1. Öppna vyer/index.ejs från exempelprojektet och ändra

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

    to

    <p>Welcome to Azure</p>
    
  1. I App Service-utforskaren väljer du ikonen Distribuera till webbapp igen och bekräftar genom att välja Distribuera igen.

  2. Vänta tills distributionen har slutförts och välj sedan Bläddra på webbplatsen i meddelande-popup-fönstret. Du bör se att meddelandet Welcome to Express har ändrats till Welcome to Azure.

  1. Spara ändringarna och distribuera sedan om appen med kommandot az webapp up igen utan argument för Linux. Lägg till --os-type Windows för Windows:

    az webapp up
    

    Det här kommandot använder värden som cachelagras lokalt i .azure/config-filen , till exempel appnamn, resursgrupp och App Service-plan.

  2. När distributionen är klar uppdaterar du webbsidan http://<app-name>.azurewebsites.net. (Se anteckningen i början av den här artikeln.) Du bör se att meddelandet Welcome to Express har ändrats till Welcome to Azure.

  1. Spara ändringarna och distribuera sedan om appen med ftp-klienten.

  2. När distributionen är klar uppdaterar du webbsidan http://<app-name>.azurewebsites.net. (Se i början av den här artikeln.) Du bör se att meddelandet Welcome to Express har ändrats till Welcome to Azure.

Strömningsloggar

Du kan strömma loggutdata (anrop till console.log()) från Azure-appen direkt i Visual Studio Code-utdatafönstret.

  1. I App Service-utforskaren högerklickar du på appnoden och väljer Starta direktuppspelningsloggar.

    Starta direktuppspelningsloggar

  2. Om du uppmanas att starta om appen väljer du Ja. När appen har startats om öppnas Visual Studio Code-utdatafönstret med en anslutning till loggströmmen.

  3. Efter några sekunder visar utdatafönstret ett meddelande som anger att du är ansluten till loggströmningstjänsten. Du kan generera mer utdata genom att uppdatera sidan i webbläsaren.

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

Du kan komma åt konsolloggarna som genereras inifrån appen och containern där den körs. Loggar inkluderar alla utdata som genereras av anrop till console.log().

Om du vill strömma loggar kör du kommandot az webapp log tail :

az webapp log tail

Kommandot använder resursgruppens namn som cachelagras i .azure/config-filen .

Du kan också inkludera parametern --logs med kommandot az webapp up för att automatiskt öppna loggströmmen vid distribution.

Uppdatera appen i webbläsaren för att generera konsolloggar, som innehåller meddelanden som beskriver HTTP-begäranden till appen. Om inga utdata visas omedelbart kan du försöka igen om 30 sekunder.

Om du vill stoppa loggströmningen när som helst väljer du Ctrl+C i terminalen.

Du kan komma åt konsolloggarna som genereras inifrån appen och containern där den körs. Du kan strömma loggutdata (anrop till console.log()) från Node.js-appen direkt i Azure Portal.

  1. På samma App Service-sida för din app använder du den vänstra menyn för att rulla till avsnittet Övervakning och välja Loggström.

    Skärmbild av Loggström i Azure App Service.

  2. Efter några sekunder visar utdatafönstret ett meddelande som anger att du är ansluten till loggströmningstjänsten. Du kan generera mer utdata genom att uppdatera sidan i webbläsaren.

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

Rensa resurser

I de föregående stegen skapade du Azure-resurser i en resursgrupp. Stegen i den här snabbstarten placerar alla resurser i den här resursgruppen. För att rensa behöver du bara ta bort resursgruppen.

  1. I Azure-tillägget i Visual Studio expanderar du utforskaren Resursgrupper .

  2. Expandera prenumerationen, högerklicka på resursgruppen som du skapade tidigare och välj Ta bort.

    Skärmbild av Visual Studio Code-navigeringen för att ta bort en resurs som innehåller App Service-resurser.

  3. När du uppmanas att göra det bekräftar du borttagningen genom att ange namnet på den resursgrupp som du tar bort. När du har bekräftat tas resursgruppen bort och du ser ett meddelande när den är klar.

I de föregående stegen skapade du Azure-resurser i en resursgrupp. Resursgruppen har ett namn som "appsvc_rg_Linux_CentralUS", beroende på din plats.

Om du inte förväntar dig att behöva dessa resurser i framtiden tar du bort resursgruppen genom att köra följande kommando:

az group delete --no-wait

Kommandot använder resursgruppens namn som cachelagras i .azure/config-filen .

Argumentet --no-wait gör att kommandot kan returneras innan åtgärden är klar.

Du kan ta bort resursgruppen, App Service och alla relaterade resurser när de inte längre behövs.

  1. På översiktssidan för App Service väljer du den resursgrupp som du skapade i steget Skapa Azure-resurser.

    Resursgrupp på apptjänstöversiktssidan

  2. På resursgruppssidan väljer du Ta bort resursgrupp. Bekräfta namnet på resursgruppen för att slutföra borttagningen av resurserna.

    Ta bort resursgrupp.

Nästa steg

Bra jobbat, du har slutfört den här snabbstarten!

Se de andra Azure-tilläggen.

Du kan även hämta alla genom att installera tilläggspaketet Nodpaket för Azure.