Azure-functies lokaal maken en uitvoeren met behulp van de Core Tools

Voltooid

Met de Azure Functions Core Tools kunt u vanaf de opdrachtregel functies ontwikkelen en uitvoeren op uw lokale computer.

U wilt uw eerste functie, een eenvoudige rentecalculator, lokaal op uw eigen computer bouwen en niet in de functieseditor van Azure Portal. U weet niet zeker of u een ontwikkelomgeving zoals Visual Studio of Visual Studio Code wilt gebruiken, die beide kunnen worden uitgebreid om Azure Functions rechtstreeks te ondersteunen. Uiteindelijk besluit u de Core Tools te gebruiken vanaf de opdrachtregel en een eenvoudige teksteditor.

In deze les leert u hoe u de Core Tools gebruikt om functies lokaal te maken en uit te voeren. Laten we meer weten over Core Tools voordat we deze in de oefening in de volgende les gebruiken, waarmee u deze concepten doorloopt met behulp van De Azure Cloud Shell.

Wat is Azure Functions Core Tools?

Azure Functions Core Tools is een zelfstandige runtime, samen met een set opdrachtregelprogramma's die u kunt gebruiken om functiecode te ontwikkelen, uit te voeren en te implementeren vanaf uw lokale computer.

Core Tools biedt ondersteuning voor verschillende functies, waaronder:

  • Genereer de bestanden en mappen die u nodig hebt om functies lokaal te ontwikkelen.
  • Geef een lokale runtime op, zodat u functies op uw computer kunt testen en fouten kunt opsporen.
  • Publiceer uw functies naar Azure.

Met Core Tools kunt u deze taken uitvoeren vanaf de opdrachtregel. Gebruik een teksteditor die u graag code wilt schrijven en de configuratie wilt wijzigen. U hebt ook de Azure CLI of Azure PowerShell nodig om u aan te melden bij Azure, Azure-resources te maken en projectbestanden te implementeren.

Core Tools is verpakt als één opdrachtregelprogramma met de naam func. Als u vanaf de opdrachtregel zonder andere opdrachten uitvoert func , worden versiegegevens en een gebruikshandleiding weergegeven. U hoeft deze nu niet te lezen, maar het ziet er als volgt uit:

A portion of the help text output by func.

Visual Studio en Visual Studio Code maken gebruik van Core Tools om een geïntegreerde lokale foutopsporingservaring te bieden.

Hier volgen enkele fundamentele concepten over functies.

Functie-apps en Functions-projecten

Wanneer u functies lokaal ontwikkelt, werkt u binnen een functions-project. Het project is een map met de code- en configuratiebestanden die uw functies definiëren. Dit codeproject wordt geïmplementeerd in een functie-app-resource in Azure. In een exemplaar van een functie-app delen alle functies een gemeenschappelijke set configuratiewaarden en -resources.

Elke functie-app is gericht op een specifieke taalstack en elke stack heeft zijn eigen taalspecifieke projectvereisten. Gelukkig hoeft u zelf nooit handmatig een functions-project te maken. U kunt Core Tools gebruiken om volledig nieuwe functieprojecten en functies te genereren in uw gewenste taal.

Versies van Core Tools

Omdat Core Tools de Azure Functions-runtime bevatten, moet de primaire versie van de Core Tools die u gebruikt altijd overeenkomen met de primaire versie van de Functions-runtime in Azure. Op dit moment is versie 4.x de aanbevolen versie van de Functions-runtime en de enige versie die alle talen ondersteunt. Hoewel in deze zelfstudie Core Tools versie 4.x wordt besproken en gebruikt, hoeft u niets op uw eigen computer te installeren. In deze zelfstudie gebruikt u in plaats daarvan Core Tools in een Azure Cloud Shell-omgeving in uw browser. Cloud Shell heeft al de juiste versies van Core Tools, Azure CLI en Node.js, samen met een code-editor die al is geïnstalleerd.

Lokale ontwikkeling versus Azure Portal-ontwikkeling

Hoewel Azure Portal wel een ingebouwde editor voor uw functiecode biedt, kunt u deze alleen gebruiken voor specifieke taalstacks. U kunt de portal ook niet gebruiken om functies te bewerken die u lokaal ontwikkelt en implementeert in Azure. Wanneer u een lokale ontwikkelwerkstroom gaat gebruiken, kunt u Azure Portal niet gebruiken om wijzigingen aan te brengen in uw functiecode.

Core Tools ondersteunt lokale ontwikkeling voor alle taalstacks die worden ondersteund door Azure Functions.

Functies lokaal maken

Hier volgt een nader overzicht van het maken van functies met Core Tools en deze lokaal uitvoeren. Meer informatie over het publiceren naar Azure verderop in deze zelfstudie.

Een nieuw functions-project maken met func init

Als u een nieuw Functions-project wilt maken, voert u func init uit op de opdrachtregel.

Output from func init creating a JavaScript function project.

func init vraagt u welke taalruntime moet worden gebruikt voor de app. De inhoud van de projectmap wordt op de juiste wijze aangepast.

Wanneer u een nieuw functions-project maakt, zijn de bestanden in de projectmap afhankelijk van de taalruntime die u selecteert. Ongeacht welke runtime u kiest, zijn de twee meest kritieke projectbestanden altijd aanwezig:

  • host.json bevat runtime-configuratiewaarden, zoals opties voor logboekregistratie, voor de functie-app. De instellingen die in dit bestand zijn opgeslagen, worden zowel gebruikt wanneer u functies lokaal als in Azure uitvoert.
  • local.settings.json slaat configuratiewaarden op die alleen van toepassing zijn op de functie-app wanneer deze lokaal wordt uitgevoerd met de Core Tools. Dit bestand bevat twee soorten instellingen:
    • Lokale runtime-instellingen: wordt gebruikt om de lokale functions-runtime zelf te configureren.
    • Aangepaste toepassingsinstellingen: u voegt deze toe en configureert deze op basis van de behoeften van uw app. Alle functies in de app kunnen deze openen en gebruiken.

Functions-projecten die door func init worden gegenereerd, bevatten geen functies. In de volgende sectie leert u hoe u er een toevoegt.

Een nieuwe functie maken met func new

Elke afzonderlijke functie in een project vereist code en een configuratie om het gedrag ervan te definiëren. Als func new u in een projectmap van functions uitvoert, wordt een nieuwe functie gemaakt en alle bestanden die u nodig hebt om te beginnen met ontwikkelen.

Output from func new creating a JavaScript function.

Nadat u hebt gevraagd welk type functietrigger u wilt gebruiken en wat u de naam van uw functie wilt geven, func new genereert u een volledige implementatie die gereed is voor publiceren in de gekozen taal van uw functieproject. De starterscode illustreert hoe u het type trigger gebruikt dat u hebt geselecteerd en is er om snel aan de slag te gaan. Vervang de hoofdtekst van de functie door uw eigen implementatie en u bent klaar om te bouwen, uit te voeren, te testen en te publiceren.

In het volgende deel van deze zelfstudie gebruikt func new u voor het maken van een door HTTP geactiveerde functie en het wijzigen van de starter-implementatie om een eenvoudige renteberekening uit te voeren.

Functies lokaal uitvoeren

Functies zijn geen programma's die zelfstandig kunnen worden uitgevoerd. Ze moeten worden gehost. De Azure Functions-host is wat alles buiten uw functiecode mogelijk maakt: de configuratie wordt geladen, luistert naar triggers en HTTP-aanvragen, start het werkproces voor de taal waarin uw functies zijn geschreven, schrijft logboekuitvoer en meer. In Azure voeren functie-apps de host automatisch uit wanneer ze worden gestart.

U kunt de Core Tools gebruiken om uw eigen exemplaar van de Azure Functions-host uit te voeren en uw functies lokaal uit te proberen voordat u ze publiceert. Door uw functies uit te voeren voordat u ze publiceert, kunt u ervoor zorgen dat uw configuratie en code goed worden geladen en kunt u functies testen met daadwerkelijke HTTP-aanroepen zonder dat er Azure-resources nodig zijn.

Als u de Functions-host lokaal wilt starten, voert u func start uit vanuit de map van het Functions-project. Aan het einde van de uitvoer geven de Core Tools lokale URL's weer die u kunt gebruiken om elk van uw functies aan te roepen. Terwijl de host wordt uitgevoerd, kunt u hulpprogramma's of bibliotheken gebruiken die HTTP-aanroepen versturen, zoals curl, om te communiceren met uw functies. De Core Tools schrijven logboekuitvoer die door de host in realtime naar de terminal wordt geproduceerd.

func start output showing a function invocation URL.