Azure Functions lokaal ontwikkelen met Behulp van Core Tools

Met Azure Functions Core Tools kunt u uw functies ontwikkelen en testen op uw lokale computer. Wanneer u klaar bent, kunt u ook Core Tools gebruiken om uw codeproject in Azure te implementeren en met toepassingsinstellingen te werken.

U bekijkt de C#-versie van dit artikel. Zorg ervoor dat u bovenaan het artikel uw favoriete Functions-programmeertaal selecteert.

Als u meteen aan de slag wilt gaan, voltooit u het snelstartartikel over Core Tools.

U bekijkt de Java-versie van dit artikel. Zorg ervoor dat u bovenaan het artikel uw favoriete Functions-programmeertaal selecteert.

Als u meteen aan de slag wilt gaan, voltooit u het snelstartartikel over Core Tools.

U bekijkt de JavaScript-versie van dit artikel. Zorg ervoor dat u bovenaan het artikel uw favoriete Functions-programmeertaal selecteert.

Als u meteen aan de slag wilt gaan, voltooit u het snelstartartikel over Core Tools.

U bekijkt de PowerShell-versie van dit artikel. Zorg ervoor dat u bovenaan het artikel uw favoriete Functions-programmeertaal selecteert.

Als u meteen aan de slag wilt gaan, voltooit u het snelstartartikel over Core Tools.

U bekijkt de Python-versie van dit artikel. Zorg ervoor dat u bovenaan het artikel uw favoriete Functions-programmeertaal selecteert.

Als u meteen aan de slag wilt gaan, voltooit u het snelstartartikel over Core Tools.

U bekijkt de TypeScript-versie van dit artikel. Zorg ervoor dat u bovenaan het artikel uw favoriete Functions-programmeertaal selecteert.

Als u meteen aan de slag wilt gaan, voltooit u het snelstartartikel over Core Tools.

Azure Functions Core Tools installeren

De aanbevolen manier om Core Tools te installeren, is afhankelijk van het besturingssysteem van uw lokale ontwikkelcomputer.

In de volgende stappen wordt een Windows Installer (MSI) gebruikt om Core Tools v4.x te installeren. Zie de leesmij voor Core Tools voor meer informatie over andere installatieprogramma's op basis van pakketten.

Download en voer het Core Tools-installatieprogramma uit op basis van uw versie van Windows:

Als u eerder Windows Installer (MSI) hebt gebruikt om Core Tools in Windows te installeren, moet u de oude versie verwijderen uit Programma's toevoegen voordat u de nieuwste versie installeert.

Zie Core Tools-versies voor hulp bij versieproblemen.

Uw lokale project maken

Belangrijk

Voor Python moet u Core Tools-opdrachten uitvoeren in een virtuele omgeving. Zie Quickstart: Een Python-functie maken in Azure vanaf de opdrachtregel voor meer informatie.

Voer in het terminalvenster of vanaf een opdrachtprompt de volgende opdracht uit om een project in de MyProjFolder map te maken:

func init MyProjFolder --worker-runtime dotnet-isolated 

Met deze opdracht wordt standaard een project gemaakt dat in uitvoering wordt uitgevoerd met de Functions-host op de huidige LTS-versie (Long-Term Support) van .NET Core. U kunt de --target-framework optie gebruiken om een specifieke ondersteunde versie van .NET te targeten, waaronder .NET Framework. Raadpleeg de referentie func init voor meer informatie.

Zie het artikel over de vergelijking van de procesmodus in de procesmodus voor een vergelijking tussen de twee .NET-procesmodellen.

Java maakt gebruik van een Maven-archetype om het lokale project te maken, samen met uw eerste door HTTP geactiveerde functie. In plaats van deze te gebruiken func init en func newmoet u in plaats daarvan de stappen in de quickstart voor de opdrachtregel volgen.

func init MyProjFolder --worker-runtime javascript --model V4

Met deze opdracht maakt u een JavaScript-project dat gebruikmaakt van de gewenste versie van het programmeermodel.

func init MyProjFolder --worker-runtime typescript --model V4

Met deze opdracht maakt u een TypeScript-project dat gebruikmaakt van de gewenste versie van het programmeermodel.

func init MyProjFolder --worker-runtime powershell
func init MyProjFolder --worker-runtime python --model V2

Met deze opdracht maakt u een Python-project dat gebruikmaakt van de gewenste versie van het programmeermodel.

Wanneer u zonder de --worker-runtime optie uitvoertfunc init, wordt u gevraagd uw projecttaal te kiezen. Zie func init de verwijzing voor meer informatie over de beschikbare opties voor de func init opdracht.

Een functie maken

Als u een functie aan uw project wilt toevoegen, voert u de func new opdracht uit met behulp van de --template optie om de triggersjabloon te selecteren. In het volgende voorbeeld wordt een HTTP-trigger gemaakt met de naam MyHttpTrigger:

func new --template "Http Trigger" --name MyHttpTrigger

In dit voorbeeld wordt een Queue Storage-trigger gemaakt met de naam MyQueueTrigger:

func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger

De volgende overwegingen zijn van toepassing bij het toevoegen van functies:

  • Wanneer u zonder de --template optie uitvoertfunc new, wordt u gevraagd een sjabloon te kiezen.

  • Gebruik de func templates list opdracht om de volledige lijst met beschikbare sjablonen voor uw taal weer te geven.

  • Wanneer u een trigger toevoegt die verbinding maakt met een service, moet u ook een toepassingsinstelling toevoegen die verwijst naar een verbindingsreeks of een beheerde identiteit naar het local.settings.json-bestand. Als u app-instellingen op deze manier gebruikt, voorkomt u dat u referenties in uw code hoeft in te sluiten. Zie Werken met app-instellingen lokaal voor meer informatie.

  • Core Tools voegt ook een verwijzing naar de specifieke bindingsextensie toe aan uw C#-project.

Zie func new de verwijzing voor meer informatie over de beschikbare opties voor de func new opdracht.

Een binding toevoegen aan uw functie

Functions biedt een set servicespecifieke invoer- en uitvoerbindingen, waardoor uw functie gemakkelijker verbinding kan maken met andere Azure-services zonder dat u de servicespecifieke client-SDK's hoeft te gebruiken. Zie Concepten van Azure Functions-triggers en -bindingen voor meer informatie.

Als u een invoer- of uitvoerbinding wilt toevoegen aan een bestaande functie, moet u de functiedefinitie handmatig bijwerken.

In het volgende voorbeeld ziet u de functiedefinitie nadat u een Queue Storage-uitvoerbinding hebt toegevoegd aan een door HTTP geactiveerde functie:

Omdat een door HTTP geactiveerde functie ook een HTTP-antwoord retourneert, retourneert de functie een MultiResponse object, dat zowel de HTTP- als de wachtrijuitvoer vertegenwoordigt.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Dit voorbeeld is de definitie van het MultiResponse object dat de uitvoerbinding bevat:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

Wanneer u dat voorbeeld toepast op uw eigen project, moet u mogelijk overschakelen naar en naar, afhankelijk van of u ASP.NET Core-integratie gebruikt of niet.HttpResponseDataIActionResultHttpRequestDataHttpRequest

Berichten worden naar de wachtrij verzonden wanneer de functie is voltooid. De manier waarop u de uitvoerbinding definieert, is afhankelijk van uw procesmodel. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

Voorbeeldbinding voor Node.js model v4 nog niet beschikbaar.

De manier waarop u de uitvoerbinding definieert, is afhankelijk van de versie van uw Node.js model. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

De manier waarop u de uitvoerbinding definieert, is afhankelijk van de versie van uw Python-model. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

Voorbeeldbinding voor Node.js model v4 nog niet beschikbaar.

De manier waarop u de uitvoerbinding definieert, is afhankelijk van de versie van uw Node.js model. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

De volgende overwegingen zijn van toepassing bij het toevoegen van bindingen aan een functie:

  • Wanneer u bindingen toevoegt die verbinding maken met een service, moet u ook een toepassingsinstelling toevoegen die verwijst naar een verbindingsreeks of beheerde identiteit naar het local.settings.json bestand. Zie Werken met app-instellingen lokaal voor meer informatie.
  • Wanneer u een ondersteunde binding toevoegt, moet de extensie al worden geïnstalleerd wanneer uw app gebruikmaakt van extensiebundel. Zie uitbreidingsbundels voor meer informatie.
  • Wanneer u een binding toevoegt waarvoor een nieuwe bindingsextensie is vereist, moet u ook een verwijzing toevoegen naar die specifieke bindingsextensie in uw C#-project.

De Functions-runtime starten

Voordat u de functies in uw project kunt uitvoeren of er fouten in kunt opsporen, moet u de Functions-host starten vanuit de hoofdmap van uw project. De host schakelt triggers in voor alle functies in het project. Gebruik deze opdracht om de lokale runtime te starten:

mvn clean package 
mvn azure-functions:run
func start
npm install
npm start     

Deze opdracht moet worden uitgevoerd in een virtuele omgeving.

Wanneer de Functions-host wordt gestart, wordt een lijst met functies in het project uitgevoerd, met inbegrip van de URL's van door HTTP geactiveerde functies, zoals in dit voorbeeld:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

Houd rekening met de volgende overwegingen bij het lokaal uitvoeren van uw functies:

  • Autorisatie wordt standaard niet lokaal afgedwongen voor HTTP-eindpunten. Dit betekent dat alle lokale HTTP-aanvragen worden verwerkt als authLevel = "anonymous". Zie het HTTP-bindingsartikel voor meer informatie. U kunt de --enableAuth optie gebruiken om autorisatie te vereisen wanneer u lokaal wordt uitgevoerd. Zie func start voor meer informatie

  • U kunt de lokale Azurite-emulator gebruiken bij het lokaal uitvoeren van functies die toegang nodig hebben tot Azure Storage-services (Queue Storage, Blob Storage en Table Storage) zonder dat u verbinding hoeft te maken met deze services in Azure. Wanneer u lokale emulatie gebruikt, moet u Azurite starten voordat u de lokale host start (func.exe). Zie De emulatie van lokale opslag voor meer informatie.

  • U kunt lokale Azurite-emulatie gebruiken om te voldoen aan de opslagvereiste van de Python v2-werkrol.
  • U kunt niet-HTTP-functies lokaal activeren zonder verbinding te maken met een liveservice. Zie Een lokale functie uitvoeren voor meer informatie.

  • Wanneer u uw Application Insights-verbindingsgegevens opneemt in het local.settings.json-bestand, worden lokale logboekgegevens naar het specifieke Application Insights-exemplaar geschreven. Als u lokale telemetriegegevens gescheiden wilt houden van productiegegevens, kunt u een afzonderlijk Application Insights-exemplaar gebruiken voor ontwikkeling en testen.

  • Wanneer u versie 1.x van de Core Tools gebruikt, gebruikt u in plaats daarvan de func host start opdracht om de lokale runtime te starten.

Een lokale functie uitvoeren

Wanneer uw lokale Functions-host (func.exe) wordt uitgevoerd, kunt u nu afzonderlijke functies activeren om uw functiecode uit te voeren en fouten op te sporen. De manier waarop u een afzonderlijke functie uitvoert, is afhankelijk van het triggertype.

Notitie

In voorbeelden in dit onderwerp wordt het cURL-hulpprogramma gebruikt om HTTP-aanvragen vanuit de terminal of een opdrachtprompt te verzenden. U kunt een hulpprogramma van uw keuze gebruiken om HTTP-aanvragen naar de lokale server te verzenden. Het cURL-hulpprogramma is standaard beschikbaar op Linux-systemen en Windows 10 build 17063 en hoger. In oudere Windows moet u eerst het cURL-hulpprogramma downloaden en installeren.

HTTP-triggers worden gestart door een HTTP-aanvraag te verzenden naar het lokale eindpunt en de poort, zoals weergegeven in de func.exe-uitvoer, met deze algemene indeling:

http://localhost:<PORT>/api/<FUNCTION_NAME>

In deze URL-sjabloon <FUNCTION_NAME> is dit de naam van de functie of route en <PORT> is dit de lokale poort waarop func.exe luistert.

Met deze cURL-opdracht wordt bijvoorbeeld de MyHttpTrigger quickstart-functie geactiveerd vanuit een GET-aanvraag met de naamparameter die is doorgegeven in de queryreeks:

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

Dit voorbeeld is dezelfde functie die wordt aangeroepen vanuit een POST-aanvraag die de naam doorgeeft in de hoofdtekst van de aanvraag, die wordt weergegeven voor zowel de Bash-shell als de Windows-opdrachtregel:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"

De volgende overwegingen zijn van toepassing bij het lokaal aanroepen van HTTP-eindpunten:

  • U kunt GET-aanvragen doen vanuit een browser die gegevens doorgeeft in de queryreeks. Voor alle andere HTTP-methoden moet u cURL, Fiddler, Postman of een vergelijkbaar HTTP-testprogramma gebruiken dat POST-aanvragen ondersteunt.

  • Zorg ervoor dat u dezelfde servernaam en poort gebruikt waarop de Functions-host luistert. U ziet een eindpunt zoals dit in de uitvoer die wordt gegenereerd bij het starten van de functiehost. U kunt deze URL aanroepen met elke HTTP-methode die wordt ondersteund door de trigger.

Publiceren naar Azure

De Azure Functions Core Tools ondersteunt drie typen implementatie:

Implementatietype Opdracht Beschrijving
Projectbestanden func azure functionapp publish Hiermee worden functieprojectbestanden rechtstreeks in uw functie-app geïmplementeerd met behulp van zip-implementatie.
Azure Container Apps func azurecontainerapps deploy Implementeert een containerfunctie-app in een bestaande Container Apps-omgeving.
Kubernetes-cluster func kubernetes deploy Hiermee wordt uw Linux-functie-app geïmplementeerd als een aangepaste Docker-container in een Kubernetes-cluster.

U moet de Azure CLI of Azure PowerShell lokaal hebben geïnstalleerd om vanuit Core Tools naar Azure te kunnen publiceren. Core Tools gebruikt deze hulpprogramma's standaard om te verifiëren met uw Azure-account.

Als u deze hulpprogramma's niet hebt geïnstalleerd, moet u in plaats daarvan een geldig toegangstoken ophalen dat tijdens de implementatie moet worden gebruikt. U kunt een toegangstoken presenteren met behulp van de --access-token optie in de implementatieopdrachten.

Projectbestanden implementeren

Als u uw lokale code wilt publiceren naar een functie-app in Azure, gebruikt u de func azure functionapp publish publish opdracht, zoals in het volgende voorbeeld:

func azure functionapp publish <FunctionAppName>

Met deze opdracht worden projectbestanden uit de huidige map naar het <FunctionAppName> implementatiepakket .zip gepubliceerd. Als voor het project compilatie is vereist, wordt dit op afstand gedaan tijdens de implementatie.

Java gebruikt Maven om uw lokale project te publiceren naar Azure in plaats van Core Tools. Gebruik de volgende Maven-opdracht om uw project te publiceren naar Azure:

mvn azure-functions:deploy

Wanneer u deze opdracht uitvoert, worden Azure-resources gemaakt tijdens de eerste implementatie op basis van de instellingen in uw pom.xml-bestand . Zie Het functieproject implementeren in Azure voor meer informatie.

De volgende overwegingen zijn van toepassing op dit type implementatie:

  • Het publiceren overschrijft bestaande bestanden in de implementatie van de externe functie-app.

  • U moet al een functie-app in uw Azure-abonnement hebben gemaakt. Core Tools implementeert uw projectcode in deze functie-app-resource. Zie Een functie-app maken voor serverloze uitvoering voor informatie over het maken van een functie-app vanaf de opdrachtprompt of het terminalvenster met behulp van de Azure CLI of Azure PowerShell. U kunt deze resources ook maken in Azure Portal. Er wordt een foutbericht weergegeven wanneer u probeert te publiceren naar een <FunctionAppName> abonnement dat niet bestaat in uw abonnement.

  • Een projectmap kan taalspecifieke bestanden en mappen bevatten die niet mogen worden gepubliceerd. Uitgesloten items worden weergegeven in een .funcignore-bestand in de hoofdprojectmap.

  • Uw project wordt standaard geïmplementeerd, zodat het wordt uitgevoerd vanuit het implementatiepakket. Als u deze aanbevolen implementatiemodus wilt uitschakelen, gebruikt u de --nozip optie.

  • Er wordt een externe build uitgevoerd op gecompileerde projecten. Dit kan worden beheerd met behulp van de --no-build optie.

  • Gebruik de --publish-local-settings optie om automatisch app-instellingen in uw functie-app te maken op basis van waarden in het bestand local.settings.json.

  • Als u wilt publiceren naar een specifieke benoemde site in uw functie-app, gebruikt u de --slot optie.

Containers implementeren

Met Core Tools kunt u uw containerfunctie-app implementeren in zowel beheerde Azure Container Apps-omgevingen als Kubernetes-clusters die u beheert.

Gebruik de volgende func azurecontainerapps deploy opdracht om een bestaande containerinstallatiekopieën te implementeren in een Container Apps-omgeving:

func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]

Wanneer u implementeert in een Azure Container Apps-omgeving, zijn de volgende overwegingen van toepassing:

  • De omgeving en het opslagaccount moeten al bestaan. Het opslagaccount verbindingsreeks u opgeeft, wordt gebruikt door de geïmplementeerde functie-app.

  • U hoeft geen afzonderlijke functie-app-resource te maken bij het implementeren in Container Apps.

  • Opslag verbindingsreeks s en andere servicereferenties zijn belangrijke geheimen. Zorg ervoor dat u scriptbestanden veilig opslaat en func azurecontainerapps deploy deze niet opslaat in openbaar toegankelijke broncodebeheersystemen. U kunt het local.settings.json-bestand versleutelen voor extra beveiliging.

Zie Azure Container Apps die als host fungeren voor Azure Functions voor meer informatie.

Lokaal werken met app-instellingen

Wanneer u in een functie-app in Azure uitvoert, worden instellingen die vereist zijn voor uw functies veilig opgeslagen in app-instellingen. Tijdens lokale ontwikkeling worden deze instellingen in plaats daarvan toegevoegd aan de Values verzameling in het local.settings.json-bestand. Het bestand local.settings.json slaat ook instellingen op die worden gebruikt door lokale ontwikkelhulpprogramma's.

Items in de verzameling in het Values local.settings.json-bestand van uw project zijn bedoeld om items in de toepassingsinstellingen van uw functie-app in Azure te spiegelen.

De volgende overwegingen zijn van toepassing bij het werken met het lokale instellingenbestand:

  • Omdat de local.settings.json geheimen kan bevatten, zoals verbindingsreeks s, moet u deze nooit opslaan in een externe opslagplaats. Met Core Tools kunt u dit bestand met lokale instellingen versleutelen voor een betere beveiliging. Zie het bestand Met lokale instellingen voor meer informatie. U kunt het local.settings.json-bestand ook versleutelen voor extra beveiliging.

  • Lokale instellingen worden standaard niet automatisch gemigreerd wanneer het project wordt gepubliceerd naar Azure. Gebruik de --publish-local-settings optie wanneer u uw projectbestanden publiceert om ervoor te zorgen dat deze instellingen worden toegevoegd aan de functie-app in Azure. Waarden in de ConnectionStrings sectie worden nooit gepubliceerd. U kunt instellingen ook op elk gewenst moment uploaden vanuit het local.settings.json bestand .

  • U kunt instellingen in uw local.settings.json-bestand downloaden en overschrijven met instellingen van uw functie-app in Azure. Zie Toepassingsinstellingen downloaden voor meer informatie.

  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • Wanneer er geen geldige opslag verbindingsreeks is ingesteld AzureWebJobsStorage en er geen lokale opslagemulator wordt gebruikt, wordt er een fout weergegeven. U kunt Core Tools gebruiken om een specifieke verbindingsreeks te downloaden van een van uw Azure Storage-accounts.

Toepassingsinstellingen downloaden

Gebruik vanuit de hoofdmap van het project de volgende opdracht om alle toepassingsinstellingen uit de myfunctionapp12345 app in Azure te downloaden:

func azure functionapp fetch-app-settings myfunctionapp12345

Met deze opdracht worden alle bestaande instellingen in het bestand local.settings.json overschreven met waarden uit Azure. Wanneer deze nog niet aanwezig is, worden er nieuwe items toegevoegd aan de verzameling. Zie de func azure functionapp fetch-app-settings opdracht voor meer informatie.

Een verbindingsreeks voor opslag downloaden

Met Core Tools kunt u ook eenvoudig de verbindingsreeks krijgen van elk opslagaccount waartoe u toegang hebt. Gebruik vanuit de hoofdmap van het project de volgende opdracht om de verbindingsreeks te downloaden uit een opslagaccount met de naam mystorage12345.

func azure storage fetch-connection-string mystorage12345

Met deze opdracht wordt een instelling met de naam toegevoegd mystorage12345_STORAGE aan het local.settings.json-bestand, dat de verbindingsreeks voor het mystorage12345 account bevat. Zie de func azure storage fetch-connection-string opdracht voor meer informatie.

Voor een betere beveiliging tijdens de ontwikkeling kunt u overwegen het local.settings.json-bestand te versleutelen.

Lokale instellingen uploaden naar Azure

Wanneer u uw projectbestanden naar Azure publiceert zonder de --publish-local-settings optie te gebruiken, worden instellingen in het local.settings.json bestand niet ingesteld in uw functie-app. U kunt de func azure functionapp publish--publish-settings-only optie altijd opnieuw uitvoeren om alleen de instellingen te uploaden zonder de projectbestanden opnieuw te publiceren.

In het volgende voorbeeld worden alleen instellingen uit de Values verzameling in het local.settings.json-bestand geüpload naar de functie-app in Azure met de naam myfunctionapp12345:

func azure functionapp publish myfunctionapp12345 --publish-settings-only

Het bestand met lokale instellingen versleutelen

Om de beveiliging van verbindingsreeks s en andere waardevolle gegevens in uw lokale instellingen te verbeteren, kunt u met Core Tools het local.settings.json bestand versleutelen. Wanneer dit bestand is versleuteld, ontsleutelt de runtime automatisch de instellingen zo nodig op dezelfde manier als met de toepassingsinstelling in Azure. U kunt ook een lokaal versleuteld bestand ontsleutelen om met de instellingen te werken.

Gebruik de volgende opdracht om het bestand met lokale instellingen voor het project te versleutelen:

func settings encrypt

Gebruik de volgende opdracht om een versleutelde lokale instelling te ontsleutelen, zodat u ermee kunt werken:

func settings decrypt

Wanneer het instellingenbestand is versleuteld en ontsleuteld, wordt de instelling van het bestand IsEncrypted ook bijgewerkt.

Bindingsextensies configureren

Functions-triggers en -bindingen worden geïmplementeerd als .NET-extensiepakketten (NuGet). Als u een specifieke bindingsextensie wilt kunnen gebruiken, moet die extensie in het project worden geïnstalleerd.

Deze sectie is niet van toepassing op versie 1.x van de Functions-runtime. In versie 1.x zijn ondersteunde bindingen opgenomen in de belangrijkste productextensie.

Voor C#-klassebibliotheekprojecten voegt u verwijzingen toe naar de specifieke NuGet-pakketten voor de bindingsextensies die vereist zijn voor uw functies. C#-scriptproject (.csx) moet extensiebundels gebruiken.

Functions biedt uitbreidingsbundels waarmee u eenvoudig kunt werken met bindingsextensies in uw project. Uitbreidingsbundels, die zijn versiebeheer en gedefinieerd in het host.json-bestand, installeren een volledige set compatibele bindingsextensiepakketten voor uw app. Uw host.json moet al uitbreidingsbundels hebben ingeschakeld. Als u om een of andere reden de extensiebundel in het host.json-bestand wilt toevoegen of bijwerken, raadpleegt u Extensiebundels.

Als u een bindingsextensie of een extensieversie niet in een ondersteunde bundel moet gebruiken, moet u extensies handmatig installeren. Zie de func extensions install opdracht voor dergelijke zeldzame scenario's.

Versies van Core Tools

Primaire versies van Azure Functions Core Tools zijn gekoppeld aan specifieke primaire versies van de Azure Functions-runtime. Versie 4.x van Core Tools ondersteunt bijvoorbeeld versie 4.x van de Functions-runtime. Deze versie is de aanbevolen primaire versie van zowel de Functions-runtime als Core Tools. U kunt de nieuwste releaseversie van Core Tools bepalen in de Opslagplaats van Azure Functions Core Tools.

Voer de volgende opdracht uit om de versie van uw huidige Core Tools-installatie te bepalen:

func --version

Tenzij anders vermeld, zijn de voorbeelden in dit artikel bedoeld voor versie 4.x.

De volgende overwegingen zijn van toepassing op Core Tools-installaties:

  • U kunt slechts één versie van Core Tools op een bepaalde computer installeren.

  • Wanneer u een upgrade uitvoert naar de nieuwste versie van Core Tools, moet u dezelfde methode gebruiken die u hebt gebruikt voor de oorspronkelijke installatie om de upgrade uit te voeren. Als u bijvoorbeeld een MSI in Windows hebt gebruikt, verwijdert u de huidige MSI en installeert u de meest recente. Of als u npm hebt gebruikt, voert u het npm install commandopnieuw uit.

  • Versie 2.x en 3.x van Core Tools zijn gebruikt met versies 2.x en 3.x van de Functions-runtime, die hun einde van de ondersteuning hebben bereikt. Raadpleeg Overzicht van Azure Functions-runtime voor meer informatie.

  • Versie 1.x van Core Tools is vereist wanneer u versie 1.x van de Functions Runtime gebruikt, die nog steeds wordt ondersteund. Deze versie van Core Tools kan alleen lokaal worden uitgevoerd op Windows-computers. Als u momenteel werkt met versie 1.x, kunt u overwegen om uw app vandaag te migreren naar versie 4.x .

Wanneer u Visual Studio Code gebruikt, kunt u Rosetta integreren met de ingebouwde Terminal. Zie Emulatie inschakelen in Visual Studio Code voor meer informatie.

Volgende stappen

Meer informatie over het ontwikkelen, testen en publiceren van Azure-functies met behulp van Azure Functions-kernhulpprogramma's. Azure Functions Core Tools is open source en wordt gehost op GitHub. Als u een bug- of functieaanvraag wilt indienen, opent u een GitHub-probleem.