Dela via


Publicera ett Node.js program till Azure (Linux App Service)

Den här självstudien beskriver hur du skapar ett enkelt Node.js program och publicerar det till Azure.

När du publicerar ett Node.js program till Azure finns det flera alternativ. Dessa inkluderar Azure App Service, en virtuell dator som kör ett operativsystem som du väljer, Azure Container Service (AKS) för hantering med Kubernetes, en containerinstans med Docker med mera. Mer information om vart och ett av dessa alternativ finns i Compute.

I den här handledningen distribuerar du appen till Linux App Service,. Linux App Service distribuerar en Linux Docker-container för att köra Node.js-programmet (till skillnad från Windows App Service, som kör Node.js appar bakom IIS i Windows).

Den här självstudien visar hur du skapar ett Node.js program från en mall som är installerad med Node.js Tools för Visual Studio, push-överför koden till en lagringsplats på GitHub och sedan etablerar en Azure App Service via Azure-webbportalen så att du kan distribuera från GitHub-lagringsplatsen. Information om hur du använder kommandoraden för att etablera Azure App Service och push-överföra koden från en lokal Git-lagringsplats finns i Skapa Node.js App.

Viktig

Informationen i den här artikeln gäller endast för Node.js projekttyp (.njsproj). Mallen som används i den här artikeln är inte längre tillgänglig från och med Visual Studio 2022 version 17.8 Preview 2.

I den här instruktionen lär du dig att:

  • Skapa ett Node.js projekt
  • Skapa en GitHub-lagringsplats för koden
  • Skapa en Linux App Service på Azure
  • Distribuera till Linux

Förutsättningar

  • Du måste ha Visual Studio installerat och arbetsbelastningen Node.js för utveckling.

    Om du inte redan har installerat Visual Studio 2019 går du till Visual Studio-nedladdningar sidan för att installera den kostnadsfritt.

    Om du behöver installera arbetsbelastningen men redan har Visual Studio går du till Verktyg>Hämta verktyg och funktioner..., som öppnar Installationsprogrammet för Visual Studio. Välj arbetsbelastningen Node.js utveckling och välj sedan Ändra.

    Node.js arbetsbelastning i VS Installer

  • Du måste ha Node.js-körtid installerad.

    Om du inte har installerat den installerar du LTS-versionen från Node.js webbplats. I allmänhet upptäcker Visual Studio automatiskt den installerade Node.js-runtime. Om den inte identifierar en installerad körning kan du konfigurera projektet så att det refererar till den installerade körningen på egenskapssidan (när du har skapat ett projekt högerklickar du på projektnoden och väljer Egenskaper).

Skapa ett Node.js projekt som ska köras i Azure

  1. Öppna Visual Studio.

  2. Skapa en ny TypeScript Express-app.

    Tryck på Esc för att stänga startfönstret. Skriv Ctrl + Q för att öppna sökrutan, skriv Node.jsoch välj sedan Skapa nytt Basic Azure Node.js Express 4-program (TypeScript). I dialogrutan som visas väljer du Skapa.

    Om du inte ser Basic Azure Node.js Express 4- projektmall måste du lägga till arbetsbelastningen Node.js utveckling. Detaljerade instruktioner finns i Krav.

    Visual Studio skapar projektet och öppnar det i Solution Explorer (höger fönster).

  3. Tryck på F5 för att skapa och köra appen och se till att allt körs som förväntat.

  4. Välj Fil>Lägg till i källkontrollen för att skapa en lokal Git-lagringsplats för projektet.

    Nu fungerar en Node.js-app som använder Express-ramverket och skrivs i TypeScript och checkas in på den lokala källkontrollen.

  5. Redigera projektet efter behov innan du fortsätter till nästa steg.

Skicka kod från Visual Studio till GitHub

Så här konfigurerar du GitHub för Visual Studio:

  1. Kontrollera att GitHub-tillägget för Visual Studio är installerat och aktiverat med menyalternativet Verktyg>Tillägg och uppdateringar.

  2. På menyn väljer du Visa>Andra fönster>GitHub.

    GitHub-fönstret öppnas.

  3. Om du inte ser knappen Kom igång i GitHub-fönstret klickar du på Fil>Lägg till i källkontroll och väntar tills användargränssnittet uppdateras.

    Öppna GitHub-fönstret

  4. Klicka på Kom igång.

    Om du redan är ansluten till GitHub ser verktygslådan ut ungefär som följande bild.

    GitHub-lagringsplatsens inställningar

  5. Fyll i fälten för den nya lagringsplatsen som ska publiceras och klicka sedan på Publicera.

    Efter en liten stund visas ett meddelande med texten "Lagringsplatsen har skapats framgångsrikt".

    I nästa avsnitt får du lära dig hur du publicerar från den här lagringsplatsen till en Azure App Service i Linux.

Skapa en Linux App Service i Azure

  1. Logga in på Azure-portalen.

  2. Välj App Services i listan över tjänster till vänster och klicka sedan på Lägg till.

  3. Om det behövs skapar du en ny resursgrupp och en App Service-plan som värd för den nya appen.

  4. Se till att ange OS- till Linuxoch ange Runtime Stack till den Node.js version som krävs enligt bilden.

    Skapa en Linux App Service-

  5. Klicka på Skapa för att skapa App Service.

    Det kan ta några minuter att distribuera.

  6. När den har distribuerats går du till avsnittet Programinställningar och lägger till en inställning med namnet SCM_SCRIPT_GENERATOR_ARGS och värdet --node.

    Programinställningar

    Varning

    App Service-distributionsprocessen använder en uppsättning heuristik för att avgöra vilken typ av program som ska försöka köras. Om en .sln fil identifieras i det distribuerade innehållet förutsätter det att ett MSBuild-baserat projekt distribueras. Inställningen ovan åsidosätter den här logiken och anger uttryckligen att det här är ett Node.js program. Utan den här inställningen kan Node.js-programmet inte distribueras om .sln fil är en del av lagringsplatsen som distribueras till App Service.

  7. Under Programinställningarlägger du till en annan inställning med namnet WEBSITE_NODE_DEFAULT_VERSION och värdet 8.9.0.

  8. När den har distribuerats öppnar du App Service och väljer Distributionsalternativ.

    Distributionsalternativ

  9. Klicka på Välj källaoch välj sedan GitHuboch konfigurera sedan nödvändiga behörigheter.

    GitHub-behörigheter

  10. Välj den lagringsplats och gren som ska publiceras och välj sedan OK.

    Publicera på Linux App Service

    Sidan distributionsalternativ visas vid synkronisering.

    Distribuera och synkronisera med GitHub

    När synkroniseringen är klar visas en bockmarkering.

    Webbplatsen kör nu Node.js-programmet från GitHub-lagringsplatsen och den är tillgänglig på url:en som skapats för Azure App Service (som standard namnet som ges till Azure App Service följt av .azurewebsites.net).

Ändra din app och pusha ändringar

  1. Lägg till koden som visas här i app.ts efter raden app.use('/users', users);. Detta lägger till ett REST-API på URL:en /api.

    app.use('/api', (req, res, next) => {
        res.json({"result": "success"});
    });
    
  2. Skapa koden och testa den lokalt, checka sedan in den och skicka den till GitHub.

    I Azure-portalen tar det en stund att identifiera ändringar i GitHub-lagringsplatsen och sedan startar en ny synkronisering av distributionen. Detta liknar följande bild.

    Ändra och synkronisera

  3. När distributionen är klar navigerar du till den offentliga webbplatsen och lägger till /api- till URL:en. JSON-svaret returneras.

Felsökning

  • Om node.exe-processen dör (dvs. ett ohanterat undantag inträffar) startar containern om.
  • När containern startas går den igenom olika heuristiker för att ta reda på hur du startar Node.js processen. Information om implementeringen finns på generateStartupCommand.js.
  • Du kan ansluta till containern som körs via SSH för undersökningar. Detta är enkelt att göra med hjälp av Azure-portalen. Välj App Service och rulla ned listan över verktyg tills du når SSH- under avsnittet Development Tools.
  • Om du vill ha hjälp med felsökning går du till Diagnostikloggar inställningar för App Service och ändrar inställningen Docker-containerloggning från Av till Filsystem. Loggar skapas i containern under /home/LogFiles/_docker.log*, och kan nås på rutan med hjälp av SSH eller FTP(S).
  • Ett anpassat domännamn kan tilldelas webbplatsen i stället för den *.azurewebsites.net URL som tilldelats som standard. Mer information finns i avsnittet Anpassad domänskarta.
  • Det är bästa praxis att distribuera till en mellanlagringsplats för ytterligare testning innan du går över till produktion. Mer information om hur du konfigurerar detta finns i avsnittet Skapa mellanlagringsmiljöer.
  • Se vanliga frågor och svar om App Service på Linux i för mer vanliga frågor.

Nästa steg

I den här självstudien har du lärt dig hur du skapar en Linux App Service och distribuerar ett Node.js-program till tjänsten. Du kanske vill veta mer om Linux App Service.