Een Node.js-toepassing publiceren naar Azure (Linux App Service)
In deze zelfstudie wordt u begeleid bij het maken van een eenvoudige Node.js toepassing en het publiceren ervan naar Azure.
Wanneer u een Node.js-toepassing naar Azure publiceert, zijn er verschillende opties. Deze omvatten Azure App Service, een VM waarop een besturingssysteem van uw keuze wordt uitgevoerd, Azure Container Service (AKS) voor beheer met Kubernetes, een containerinstantie met docker en meer. Zie Computevoor meer informatie over elk van deze opties.
Voor deze zelfstudie implementeert u de app in Linux App Service-. Linux App Service implementeert een Linux Docker-container om de Node.js-toepassing uit te voeren (in plaats van de Windows App Service, waarop Node.js apps achter IIS in Windows worden uitgevoerd).
In deze zelfstudie ziet u hoe u een Node.js toepassing maakt die begint met een sjabloon die is geïnstalleerd met de Node.js Tools voor Visual Studio, de code naar een opslagplaats op GitHub pusht en vervolgens een Azure App Service inricht via de Azure-webportal, zodat u deze kunt implementeren vanuit de GitHub-opslagplaats. Als u de opdrachtregel wilt gebruiken om de Azure App Service in te richten en de code vanuit een lokale Git-opslagplaats naar de server te pushen, raadpleegt u App Node.js maken.
Belangrijk
De informatie in dit artikel is alleen van toepassing op het Node.js projecttype (.njsproj). De sjabloon die in dit artikel wordt gebruikt, is niet meer beschikbaar vanaf Visual Studio 2022 versie 17.8 Preview 2.
In deze zelfstudie leert u het volgende:
- Een Node.js-project maken
- Een GitHub-opslagplaats voor de code maken
- Een Linux App Service maken in Azure
- Implementeren in Linux
Voorwaarden
Om Visual Studio te gebruiken moet je Visual Studio geïnstalleerd hebben en de Node.js-ontwikkelwerkbelasting hebben.
Als u Visual Studio 2019 nog niet hebt geïnstalleerd, gaat u naar de Visual Studio-downloadpagina pagina om deze gratis te installeren.
Als u de workload wilt installeren maar visual Studio al hebt, gaat u naar Tools>Hulpprogramma's en onderdelen ophalen..., waarmee het installatieprogramma van Visual Studio wordt geopend. Kies de Node.js ontwikkelworkload en kies vervolgens Wijzigen.
U moet de Node.js runtime hebben geïnstalleerd.
Als u deze niet hebt geïnstalleerd, installeert u de LTS-versie vanaf de Node.js website. Over het algemeen detecteert Visual Studio automatisch de geïnstalleerde Node.js runtime. Als er geen geïnstalleerde runtime wordt gedetecteerd, kunt u uw project configureren om te verwijzen naar de geïnstalleerde runtime op de eigenschappenpagina (nadat u een project hebt gemaakt, klikt u met de rechtermuisknop op het projectknooppunt en kiest u Eigenschappen).
Een Node.js-project maken dat moet worden uitgevoerd in Azure
Open Visual Studio.
Maak een nieuwe TypeScript Express-app.
Druk op Esc om het startvenster te sluiten. Typ Ctrl + Q om het zoekvak te openen, typ Node.jsen kies vervolgens Nieuwe Basic Azure Node.js Express 4-toepassing maken (TypeScript). Kies in het dialoogvenster dat verschijnt, Maak.
Als u de Basic Azure Node.js Express 4-toepassing projectsjabloon niet ziet, moet u de Node.js ontwikkelingsworkload toevoegen. Zie de Vereistenvoor gedetailleerde instructies.
Visual Studio maakt het project en opent het in Solution Explorer (rechterdeelvenster).
Druk op F5- om de app te bouwen en uit te voeren en zorg ervoor dat alles wordt uitgevoerd zoals verwacht.
Selecteer Bestand>Toevoegen aan broncodebeheer om een lokale Git-opslagplaats voor het project te maken.
Op dit moment werkt een Node.js-app die met behulp van het Express-framework in TypeScript is geschreven en is toegevoegd aan lokaal broncodebeheer.
Bewerk het project naar wens voordat u doorgaat met de volgende stappen.
Code pushen van Visual Studio naar GitHub
GitHub instellen voor Visual Studio:
Zorg ervoor dat de GitHub-extensie voor Visual Studio is geïnstalleerd en ingeschakeld met behulp van het menu-item Tools>Extensions and Updates.
Selecteer in het menu de optie View>Andere vensters>GitHub.
Het GitHub-venster wordt geopend.
Als u de knop Aan de slag niet ziet in het GitHub-venster, klikt u op bestand>toevoegen aan broncodebeheer en wacht u totdat de gebruikersinterface is bijgewerkt.
Klik op Aan de slag.
Als u al verbinding hebt met GitHub, lijkt de werkset op de volgende afbeelding.
Voltooi de velden voor de nieuwe opslagplaats die u wilt publiceren en klik vervolgens op Publiceren.
Na enkele ogenblikken wordt een banner met de tekst 'Opslagplaats succesvol aangemaakt' weergegeven.
In de volgende sectie leert u hoe u vanuit deze opslagplaats publiceert naar een Azure App Service in Linux.
Een Linux App Service maken in Azure
Meld u aan bij de Azure Portal.
Selecteer App Services- in de lijst met services aan de linkerkant en klik vervolgens op toevoegen.
Maak indien nodig een nieuwe resourcegroep en een App Service-plan om de nieuwe app te hosten.
Zorg ervoor dat u het besturingssysteem instelt op Linux-en Runtime Stack instelt op de vereiste Node.js versie, zoals wordt weergegeven in de afbeelding.
maken
Klik op maken om de App Service te maken.
Het kan enkele minuten duren voordat de implementatie is uitgevoerd.
Nadat deze is geïmplementeerd, gaat u naar de sectie Toepassingsinstellingen en voegt u een instelling toe met een naam van
SCM_SCRIPT_GENERATOR_ARGS
en een waarde van--node
.Waarschuwing
Het App Service-implementatieproces maakt gebruik van een set heuristieken om te bepalen welk type toepassing moet worden uitgevoerd. Als een .sln bestand wordt gedetecteerd in de geïmplementeerde inhoud, wordt ervan uitgegaan dat er een op MSBuild gebaseerd project wordt geïmplementeerd. De bovenstaande instelling overschrijft deze logica en geeft expliciet aan dat dit een Node.js toepassing is. Zonder deze instelling kan de Node.js-toepassing niet worden geïmplementeerd als de .sln bestand maakt deel uit van de opslagplaats die wordt geïmplementeerd in App Service.
Voeg onder toepassingsinstellingeneen andere instelling toe met een naam van
WEBSITE_NODE_DEFAULT_VERSION
en een waarde van8.9.0
.Nadat deze is geïmplementeerd, opent u de App Service en selecteert u implementatieopties.
Klik op Bronkiezen en kies vervolgens GitHub-en configureer vervolgens de vereiste machtigingen.
Selecteer de opslagplaats en vertakking die u wilt publiceren en selecteer vervolgens OK.
De implementatieopties pagina wordt weergegeven tijdens het synchroniseren.
Zodra het synchroniseren is voltooid, wordt er een vinkje weergegeven.
De site voert nu de Node.js toepassing uit vanuit de GitHub-opslagplaats en is toegankelijk via de URL die is gemaakt voor De Azure App Service (standaard de naam die wordt gegeven aan De Azure App Service, gevolgd door
.azurewebsites.net
).
Uw app wijzigen en wijzigingen pushen
Voeg de code toe die hier wordt weergegeven in app.ts na de regel
app.use('/users', users);
. Hiermee voegt u een REST API toe aan de URL /api-.app.use('/api', (req, res, next) => { res.json({"result": "success"}); });
Bouw de code en test deze lokaal, check deze in en push deze naar GitHub.
In De Azure-portal duurt het even voordat wijzigingen in de GitHub-opslagplaats worden gedetecteerd. Vervolgens wordt een nieuwe synchronisatie van de implementatie gestart. Dit ziet er ongeveer als volgt uit.
wijzigen en synchroniseren
Zodra de implementatie is voltooid, gaat u naar de openbare site en voegt u /API- toe aan de URL. Het JSON-antwoord wordt geretourneerd.
Probleemoplossing
- Wanneer het node.exe-proces uitvalt (dat wil zeggen, er een onverwerkte uitzondering optreedt), wordt de container opnieuw opgestart.
- Wanneer de container wordt gestart, doorloopt deze verschillende heuristieken om erachter te komen hoe het Node.js proces moet worden gestart. Details van de implementatie zijn te zien op generateStartupCommand.js.
- U kunt verbinding maken met de actieve container via SSH voor onderzoek. Dit kunt u eenvoudig doen met behulp van Azure Portal. Selecteer de App Service en schuif omlaag in de lijst met hulpprogramma's totdat u SSH- bereikt onder de sectie Ontwikkelhulpprogramma's.
- Om problemen op te lossen gaat u naar de instellingen voor diagnostische logboeken van de App Service en wijzigt u de Docker-containerregistratie van Uit naar Bestandssysteem. Logboeken worden gemaakt in de container onder /home/LogFiles/_docker.log*, en kunnen worden geopend op de server met behulp van SSH of FTP(S).
- Een aangepaste domeinnaam kan worden toegewezen aan de site in plaats van de URL *.azurewebsites.net die standaard is toegewezen. Zie het onderwerp Aangepast domein toewijzenvoor meer informatie.
- Implementeren op een faseringssite voor verdere tests voordat u naar productie gaat, is een best practice. Zie het onderwerp Faseringsomgevingen makenvoor meer informatie over het configureren hiervan.
- Zie de veelgestelde vragen over de App Service op Linux voor meer voorkomende vragen.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u een Linux App Service maakt en een Node.js-toepassing implementeert in de service. Misschien wilt u meer informatie over Linux App Service.