Arbeta med Azure Functions Core Tools

Med Azure Functions Core Tools kan du utveckla och testa funktioner på din lokala dator från kommandotolken eller terminalen. Dina lokala funktioner kan ansluta till Azure-livetjänster och du kan felsöka dina funktioner på din lokala dator med hjälp av den fullständiga Functions-körningen. Du kan även distribuera en funktionsapp till din Azure-prenumeration.

Viktigt

Blanda inte lokal utveckling med Portal utveckling i samma Function-app. När du skapar och publicerar funktioner från ett lokalt projekt bör du inte försöka att underhålla eller ändra projekt koden i portalen.

När du utvecklar funktioner på din lokala dator och publicerar dem till Azure med hjälp av Core Tools följer du dessa grundläggande steg:

Core Tools-versioner

Det finns tre versioner av Azure Functions Core Tools. Vilken version du använder beror på din lokala utvecklingsmiljö, val av språkoch vilken supportnivå som krävs:

Du kan bara installera en version av Core Tools på en viss dator. Om inget annat anges gäller exemplen i den här artikeln version 3.x.

Förutsättningar

Azure Functions Core Tools för närvarande beroende av antingen Azure CLI eller Azure PowerShell för autentisering med ditt Azure-konto. Det innebär att du måste installera något av dessa verktyg för att kunna publicera till Azure från Azure Functions Core Tools.

Installera Azure Functions Core Tools

Azure Functions Core Tools innehåller en version av samma körning som används Azure Functions körtid som du kan köra på din lokala utvecklingsdator. Den innehåller också kommandon för att skapa funktioner, ansluta till Azure och distribuera funktionsprojekt.

Version 3.x och 2.x

Version 3.x/2.x av verktygen använder Azure Functions som bygger på .NET Core. Den här versionen stöds på alla plattformar som .NET Core stöder, inklusive Windows, macOSoch Linux.

Viktigt

Du kan kringgå kravet på att installera .NET Core SDK med hjälp av [tilläggspaketet].

Följande steg använder ett Windows-installationsprogram (MSI) för att installera Core Tools v3.x. Mer information om andra paketbaserade installationsprogram, som krävs för att installera Core Tools v2.x, finns i viktigt för Core Tools.

  1. Ladda ned och kör installationsprogrammet för Core Tools, baserat på din version av Windows:

  2. Om du inte planerar att använda tilläggspaketet installerardu .NET Core 3.x SDK för Windows.

Skapa ett lokalt Functions-projekt

En Functions-projektkatalog innehåller de filerhost.jspålocal.settings.js, tillsammans med undermappar som innehåller koden för enskilda funktioner. Den här katalogen motsvarar en funktionsapp i Azure. Mer information om Functions-mappstrukturen finns i guiden för Azure Functions utvecklare.

Version 3.x/2.x kräver att du väljer ett standardspråk för projektet när det initieras. I version 3.x/2.x använder alla funktioner som lagts till standardspråkmallar. I version 1.x anger du språket varje gång du skapar en funktion.

Kör följande kommando i terminalfönstret eller från en kommandotolk för att skapa projektet och den lokala Git-lagringsplatsen:

func init MyFunctionProj

Viktigt

Java använder en Maven-arketyp för att skapa det lokala Functions-projektet, tillsammans med din första HTTP-utlösta funktion. Använd följande kommando för att skapa ditt Java-projekt: mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype . Ett exempel på hur du använder Maven-arketypen finns i snabbstarten för kommandoraden.

När du anger ett projektnamn skapas och initieras en ny mapp med det namnet. Annars initieras den aktuella mappen.
När du kör kommandot i version 3.x/2.x måste du välja en körningsversion för projektet.

Select a worker runtime:
dotnet
node
python 
powershell

Använd upp-/nedpilarna för att välja ett språk och tryck sedan på Retur. Om du planerar att utveckla JavaScript- eller TypeScript-funktioner väljer du nod och sedan språket. TypeScript har vissa ytterligare krav.

Utdata ser ut som i följande exempel för ett JavaScript-projekt:

Select a worker runtime: node
Writing .gitignore
Writing host.json
Writing local.settings.json
Writing C:\myfunctions\myMyFunctionProj\.vscode\extensions.json
Initialized empty Git repository in C:/myfunctions/myMyFunctionProj/.git/

func init har stöd för följande alternativ, som är endast version 3.x/2.x, om inget annat anges:

Alternativ Beskrivning
--csx Skapar .NET-funktioner som C#-skript, vilket är beteendet i version 1.x. Gäller endast med --worker-runtime dotnet .
--docker Skapar en Dockerfile för en container med hjälp av en basavbildning som baseras på den valda --worker-runtime . Använd det här alternativet när du planerar att publicera till en anpassad Linux-container.
--docker-only Lägger till en Dockerfile i ett befintligt projekt. Frågar efter worker-runtime om det inte anges eller anges i local.settings.jspå. Använd det här alternativet när du planerar att publicera ett befintligt projekt till en anpassad Linux-container.
--force Initiera projektet även när det finns befintliga filer i projektet. Den här inställningen skriver över befintliga filer med samma namn. Andra filer i projektmappen påverkas inte.
--language Initierar ett språkspecifikt projekt. Stöds för närvarande --worker-runtime när det är inställt på node . Alternativen är typescript och javascript . Du kan också använda --worker-runtime javascript eller --worker-runtime typescript .
--managed-dependencies Installerar hanterade beroenden. För närvarande stöder endast PowerShell Worker-körningen den här funktionen.
--source-control Styr om en git-lagringsplats skapas. Som standard skapas ingen lagringsplats. När true skapas en lagringsplats.
--worker-runtime Anger språkkörningen för projektet. Värden som stöds är: csharp dotnet , , , javascript node (JavaScript), powershell , och python typescript . För Java använder du Maven. När den inte har angetts uppmanas du att välja din körning under initieringen.

Viktigt

Som standard skapar version 2.x och senare versioner av Core Tools funktionsappprojekt för .NET-körningen som C#-klassprojekt (.csproj). Dessa C#-projekt, som kan användas med Visual Studio eller Visual Studio Code, kompileras under testning och vid publicering till Azure. Om du i stället vill skapa och arbeta med samma C#-skriptfiler (.csx) som skapades i version 1.x och i portalen måste du inkludera parametern när du skapar och distribuerar --csx funktioner.

Registrera tillägg

Med undantag för HTTP- och timerutlösare implementeras Functions-bindningar i körningsversion 2.x och senare som tilläggspaket. HTTP-bindningar och timerutlösare kräver inte tillägg.

För att minska inkompatibiliteten mellan de olika tilläggspaketen kan du med Functions referera till ett tilläggspaketet i ditt host.jspå projektfilen. Om du väljer att inte använda tilläggspaketet måste du även installera .NET Core 2.x SDK lokalt och underhålla ett extensions.csproj med ditt funktionsprojekt.

I version 2.x och senare Azure Functions måste du uttryckligen registrera tilläggen för de bindningstyper som används i dina funktioner. Du kan välja att installera bindningstillägg individuellt, eller så kan du lägga till en tilläggssamlingsreferens till host.jspå projektfilen. Tilläggspaket tar bort risken för paketkompatibilitetsproblem när du använder flera bindningstyper. Det är den rekommenderade metoden för att registrera bindningstillägg. Tilläggspaketet tar även bort kravet på att installera .NET Core 2.x SDK.

Använda tilläggspaket

Det enklaste sättet att installera bindnings tillägg är att aktivera paket för tillägg. När du aktiverar paket installeras en fördefinierad uppsättning tilläggs paket automatiskt.

Om du vill aktivera tilläggs paket öppnar du host.jspå filen och uppdaterar innehållet så att det matchar följande kod:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[1.*, 2.0.0)"
    }
}

Mer information finns i Registrera Azure Functions bindningstillägg. Du bör lägga till tilläggspaket i host.jsinnan du lägger till bindningar till function.jspå filen.

Installera tillägg uttryckligen

Om du inte kan använda paket för tillägg kan du använda Azure Functions Core Tools lokalt för att installera de speciella tilläggs paket som krävs för ditt projekt.

Viktigt

Du kan inte uttryckligen installera tillägg i en Function-app som använder tilläggs paket. Ta bort extensionBundle avsnittet i host.jspå innan du installerar tillägg explicit.

Följande objekt beskriver några orsaker till att du kan behöva installera tillägg manuellt:

  • Du måste ha åtkomst till en speciell version av ett tillägg som inte är tillgängligt i ett paket.
  • Du måste ha åtkomst till ett anpassat tillägg som inte är tillgängligt i ett paket.
  • Du måste ha åtkomst till en viss kombination av tillägg som inte är tillgängliga i ett enda paket.

Anteckning

Om du vill installera tillägg manuellt med hjälp av kärn verktyg måste du ha installerat .net Core 2. x SDK . .NET Core SDK används av Azure Functions Core Tools för att installera tillägg från NuGet. Du behöver inte känna till .NET för att använda Azure Functions-tillägg.

När du uttryckligen installerar tillägg läggs en .NET-projekt fil med namnet Extensions. CSPROJ till i projektets rot. Den här filen definierar den uppsättning NuGet-paket som krävs av dina funktioner. Även om du kan arbeta med NuGet-paketets referenser i den här filen kan du installera tillägg utan att behöva redigera filen manuellt.

Det finns flera sätt att använda kärn verktyg för att installera de nödvändiga tilläggen i det lokala projektet.

Installera alla tillägg

Använd följande kommando för att automatiskt lägga till alla tilläggs paket som används av bindningarna i det lokala projektet:

func extensions install

Kommandot läser function.jspå fil för att se vilka paket du behöver, installerar dem och återkonstruerar tilläggs projektet (Extensions. CSPROJ). Den lägger till eventuella nya bindningar i den aktuella versionen men uppdaterar inte befintliga bindningar. Använd --force alternativet för att uppdatera befintliga bindningar till den senaste versionen när du installerar nya.

Om din Function-app använder bindningar som grund verktygen inte känner igen måste du installera det angivna tillägget manuellt.

Installera ett angivet tillägg

Använd följande kommando för att installera ett särskilt tilläggs paket i en speciell version, i det här fallet lagrings tillägget:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 4.0.2

Fil för lokala inställningar

local.settings.jspå fil lagrar inställningar för appar, anslutnings strängar och inställningar som används av lokala utvecklingsverktyg. Inställningarna i local.settings.jspå filen används endast när du kör projekt lokalt. Den lokala inställnings filen har den här strukturen:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "AzureWebJobsDashboard": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>",
    "AzureWebJobs.HttpExample.Disabled": "true"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

De här inställningarna stöds när du kör projekt lokalt:

Inställning Beskrivning
IsEncrypted När den här inställningen är inställd på true krypteras alla värden med en lokal dator nyckel. Används med- func settings kommandon. Standardvärdet är false. Du kanske vill kryptera local.settings.jsfilen på den lokala datorn när den innehåller hemligheter, t. ex. tjänst anslutnings strängar. Värden dekrypterar automatiskt inställningarna när den körs. Använd func settings decrypt kommandot innan du försöker läsa lokalt krypterade inställningar.
Values Matris med program inställningar och anslutnings strängar som används när ett projekt körs lokalt. Dessa nyckel värdes par (sträng sträng) motsvarar program inställningarna i din Function-app i Azure, t [AzureWebJobsStorage] . ex.. Många utlösare och bindningar har en egenskap som refererar till en app-inställning för anslutnings strängen, till exempel Connection för Blob Storage-utlösaren. För dessa egenskaper behöver du en program inställning som definierats i Values matrisen. I följande tabell visas en lista över de inställningar som används ofta.
Värden måste vara strängar och inte JSON-objekt eller matriser. Inställnings namn får inte innehålla kolon ( : ) eller dubbel understrykning ( __ ). Dubbla understryknings tecken reserveras av körnings miljön och kolonet är reserverat för att stödja beroende inmatning.
Host Inställningarna i det här avsnittet anpassar funktionens värd process när du kör projekt lokalt. De här inställningarna är separata från host.jspå Inställningar, som också gäller när du kör projekt i Azure.
LocalHttpPort Anger standard porten som används när du kör den lokala funktionens värd ( func host start och func run ). --portKommando rads alternativet har företräde framför den här inställningen. När du till exempel kör i Visual Studio IDE kan du ändra port numret genom att gå till fönstret "projekt egenskaper-> fel sökning" och uttryckligen ange port numret i ett host start --port <your-port-number> kommando som kan anges i fältet "program argument".
CORS Definierar de ursprung som tillåts för resurs delning mellan ursprung (CORS). Ursprung anges som en kommaavgränsad lista utan blank steg. Jokertecknet ( * ) stöds, vilket tillåter begär Anden från alla ursprung.
CORSCredentials När den är inställd på true tillåter withCredentials begär Anden.
ConnectionStrings En samling. Använd inte den här samlingen för de anslutnings strängar som används av funktions bindningarna. Den här samlingen används endast av ramverk som vanligt vis hämtar anslutnings strängar från ConnectionStrings avsnittet i en konfigurations fil, t. ex. Entity Framework. Anslutnings strängar i det här objektet läggs till i miljön med providertypen för system. data. SqlClient. Objekt i den här samlingen publiceras inte i Azure med andra AppData. Du måste uttryckligen lägga till de här värdena i Connection strings samlingen av dina funktions program inställningar. Om du skapar en SqlConnection i funktions koden bör du lagra värdet för anslutnings strängen med dina andra anslutningar i program inställningarna i portalen.

Följande program inställningar kan inkluderas i Values matrisen när de körs lokalt:

Inställning Värden Beskrivning
AzureWebJobsStorage Anslutnings sträng för lagrings konto eller
UseDevelopmentStorage=true
Innehåller anslutnings strängen för ett Azure Storage-konto. Krävs när du använder andra utlösare än HTTP. Mer information finns i [AzureWebJobsStorage] referensen.
När du har installerat Azure Storage-emulatorn lokalt och du har angett [AzureWebJobsStorage] UseDevelopmentStorage=true , använder kärn verktygen emulatorn. Emulatorn är användbar under utvecklingen, men du bör testa med en faktisk lagrings anslutning före distributionen.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false Om du vill inaktivera en funktion när den körs lokalt lägger "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" du till i samlingen, där <FUNCTION_NAME> är namnet på funktionen. Mer information finns i så här inaktiverar du funktioner i Azure Functions
FUNCTIONS_WORKER_RUNTIME dotnet
node
java
powershell
python
Anger mål språket för functions-körningen. Krävs för version 2. x och högre av Functions-körningen. Den här inställningen genereras för ditt projekt enligt Core-verktyg. Mer information finns i FUNCTIONS_WORKER_RUNTIME referensen.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 Anger att PowerShell 7 används när det körs lokalt. Om den inte anges används PowerShell Core 6. Den här inställningen används bara när du kör lokalt. När du kör i Azure bestäms PowerShell runtime-versionen av powerShellVersion plats konfigurations inställningen, som kan ställas in i portalen.

Som standard migreras inte de här inställningarna automatiskt när projektet publiceras till Azure. Använd --publish-local-settings växeln när du publicerar för att kontrollera att de här inställningarna läggs till i funktionsappen i Azure. Observera att värden i ConnectionStrings aldrig publiceras.

Funktionsappens inställningsvärden kan också läsas i koden som miljövariabler. Mer information finns i avsnittet Miljövariabler i de här språkspecifika referensavsnitten:

När ingen giltig anslutningssträng för lagring har angetts för och emulatorn inte används [AzureWebJobsStorage] visas följande felmeddelande:

Saknade värden för AzureWebJobsStorage i local.settings.jspå. Detta krävs för alla utlösare förutom HTTP. Du kan köra "func azure functionapp fetch-app-settings" eller <functionAppName> ange en anslutningssträng i local.settings.jspå.

Hämta anslutningssträngar för lagring

Även när du använder Microsoft Azure Storage-emulator för utveckling kanske du vill testa med en faktisk lagringsanslutning. Om du redan har skapat ett lagringskontokan du hämta en giltig anslutningssträng för lagring på något av följande sätt:

  • I [Azure Portal]du efter och väljer Lagringskonton. Välj Lagringskonton från Azure Portal

    Välj ditt lagringskonto, välj Åtkomstnycklar i Inställningar och kopiera sedan ett av värdena för Anslutningssträng. Kopiera anslutningssträngen från Azure Portal

  • Använd Azure Storage Explorer för att ansluta till ditt Azure-konto. I Utforskaren expanderar du din prenumeration, expanderar Lagringskonton, väljer ditt lagringskonto och kopierar den primära eller sekundära anslutningssträngen.

    Kopiera anslutningssträngen från Storage Explorer

  • Använd Core Tools från projektroten för att ladda ned anslutningssträngen från Azure med något av följande kommandon:

    • Ladda ned alla inställningar från en befintlig funktionsapp:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • Hämta anslutningssträngen för ett specifikt lagringskonto:

      func azure storage fetch-connection-string <StorageAccountName>
      

      När du inte redan är inloggad på Azure uppmanas du att göra det. Dessa kommandon skriver över alla befintliga inställningar i local.settings.jspå filen.

Skapa en funktion

Skapa en funktion genom att köra följande kommando:

func new

När du kör version 3.x/2.x uppmanas du att välja en mall på funktionsappens standardspråk. Då uppmanas du också att välja ett namn för func new funktionen. I version 1.x uppmanas du också att välja språk.

Select a language: Select a template:
Blob trigger
Cosmos DB trigger
Event Grid trigger
HTTP trigger
Queue trigger
SendGrid
Service Bus Queue trigger
Service Bus Topic trigger
Timer trigger

Funktionskoden genereras i en undermapp med det angivna funktionsnamnet, som du kan se i följande köutlösarutdata:

Select a language: Select a template: Queue trigger
Function name: [QueueTriggerJS] MyQueueTrigger
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\index.js
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\readme.md
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\sample.dat
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\function.json

Du kan också ange dessa alternativ i kommandot med följande argument:

Argument Description
--csx (Version 2.x och senare versioner.) Genererar samma C#-skriptmallar (.csx) som används i version 1.x och i portalen.
--language, -l Programmeringsspråket för mallar, till exempel C#, F# eller JavaScript. Det här alternativet krävs i version 1.x. I version 2.x och senare versioner ska du inte använda det här alternativet eller välja ett språk som matchar arbetskörningen.
--name, -n Funktionsnamnet.
--template, -t Använd kommandot func templates list för att se en fullständig lista över tillgängliga mallar för varje språk som stöds.

Om du till exempel vill skapa en JavaScript HTTP-utlösare i ett enda kommando kör du:

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

Om du vill skapa en köutlöst funktion i ett enda kommando kör du:

func new --template "Queue Trigger" --name QueueTriggerJS

Köra funktioner lokalt

Kör Functions-värden för att köra ett Functions-projekt. Värden aktiverar utlösare för alla funktioner i projektet. Startkommandot varierar beroende på ditt projektspråk.

func start

Anteckning

Version 1.x av Functions-körningen kräver i stället func host start .

func start har stöd för följande alternativ:

Alternativ Beskrivning
--no-build Skapa inte aktuellt projekt innan du kör det. Endast för dotnet-projekt. Standardvärdet är false. Stöds inte för version 1.x.
--cors-credentials Tillåt autentiserade begäranden mellan ursprung (t.ex. cookies och autentiseringsrubriken) Stöds inte för version 1.x.
--cors En kommaavgränsad lista över CORS-ursprung utan blanksteg.
--language-worker Argument för att konfigurera språkarbetaren. Du kan till exempel aktivera felsökning för språkarbetare genom att ange felsökningsporten och andra obligatoriska argument. Stöds inte för version 1.x.
--cert Sökvägen till en PFX-fil som innehåller en privat nyckel. Används endast med --useHttps . Stöds inte för version 1.x.
--password Antingen lösenordet eller en fil som innehåller lösenordet för en PFX-fil. Används endast med --cert . Stöds inte för version 1.x.
--port, -p Den lokala porten att lyssna på. Standardvärde: 7071.
--pause-on-error Pausa för ytterligare indata innan du avslutar processen. Används endast när du startar Core Tools från en integrerad utvecklingsmiljö (IDE).
--script-root, --prefix Används för att ange sökvägen till roten för funktionsappen som ska köras eller distribueras. Detta används för kompilerade projekt som genererar projektfiler i en undermapp. När du till exempel skapar ett C#-klassbiblioteksprojekt genereras host.jspå, local.settings.jspå och function.jspå filer i en rotundermapp med en sökväg som MyProject/bin/Debug/netstandard2.0 . I det här fallet anger du prefixet till --script-root MyProject/bin/Debug/netstandard2.0 . Det här är roten för funktionsappen när den körs i Azure.
--timeout, -t Tidsgränsen för Att Functions-värden ska starta, i sekunder. Standard: 20 sekunder.
--useHttps Bind till https://localhost:{port} i stället för till http://localhost:{port} . Som standard skapar det här alternativet ett betrott certifikat på datorn.

När Functions-värden startar matar den ut URL:en för HTTP-utlösta funktioner:

Found the following functions:
Host.Functions.MyHttpTrigger

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

Viktigt

När du kör lokalt tillämpas inte auktorisering för HTTP-slutpunkter. Det innebär att alla lokala HTTP-begäranden hanteras som authLevel = "anonymous" . Mer information finns i artikeln HTTP-bindning.

Skicka testdata till en funktion

Om du vill testa funktionerna lokalt startar du Functions-värden och anropar slutpunkter på den lokala servern med http-begäranden. Vilken slutpunkt du anropar beror på typen av funktion.

Anteckning

I exemplen i det här avsnittet används verktyget cURL för att skicka HTTP-begäranden från terminalen eller en kommandotolk. Du kan använda val av verktyg för att skicka HTTP-begäranden till den lokala servern. Verktyget cURL är tillgängligt som standard i Linux-baserade system och Windows 10 version 17063 och senare. I äldre Windows måste du först ladda ned och installera cURL-verktyget.

Mer allmän information om hur du testar funktioner finns i Strategies for testing your code in Azure Functions.

HTTP- och webhook-utlösta funktioner

Du anropar följande slutpunkt för att lokalt köra HTTP- och webhook-utlösta funktioner:

http://localhost:{port}/api/{function_name}

Se till att använda samma servernamn och port som Functions-värden lyssnar på. Du ser detta i de utdata som genereras när du startar funktionsvärden. Du kan anropa den här URL:en med valfri HTTP-metod som stöds av utlösaren.

Följande cURL-kommando utlöser MyHttpTrigger snabbstartsfunktionen från en GET-begäran med namnparametern som skickas i frågesträngen.

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

I följande exempel är samma funktion som anropas från ett POST-begärande som skriver namnet i begärandetexten:

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

Du kan göra GET-begäranden från en webbläsare och skicka data i frågesträngen. För alla andra HTTP-metoder måste du använda cURL, Fiddler, Postman eller ett liknande HTTP-testverktyg.

Icke-HTTP-utlösta funktioner

För alla typer av funktioner förutom HTTP-utlösare och webhooks och Event Grid-utlösare kan du testa dina funktioner lokalt genom att anropa en administrationsslutpunkt. Funktionen utlöses när den här slutpunkten anropas med en HTTP POST-begäran på den lokala servern.

Om du vill Event Grid utlösta funktioner lokalt kan du läsa Lokal testning med visningswebbappen.

Du kan även skicka testdata till körningen i brödtexten i POST-begäran. Den här funktionen liknar fliken Test i Azure Portal.

Du anropar följande administratörsslutpunkt för att utlösa icke-HTTP-funktioner:

http://localhost:{port}/admin/functions/{function_name}

Om du vill skicka testdata till administratörsslutpunkten för en funktion måste du ange data i brödtexten i ett POST-begärandemeddelande. Meddelandetexten måste ha följande JSON-format:

{
    "input": "<trigger_input>"
}

Värdet <trigger_input> innehåller data i ett format som förväntas av funktionen. Följande cURL-exempel är en POST till en QueueTriggerJS funktion. I det här fallet är indata en sträng som motsvarar det meddelande som förväntas finnas i kön.

curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTrigger

Använda kommandot func run (endast version 1.x)

Viktigt

Kommandot func run stöds endast i version 1.x av verktygen. Mer information finns i avsnittet How to target Azure Functions runtime versions.

I version 1.x kan du också anropa en funktion direkt genom att func run <FunctionName> använda och ange indata för funktionen. Det här kommandot liknar att köra en funktion med hjälp av fliken Test i Azure Portal.

func run har stöd för följande alternativ:

Alternativ Beskrivning
--content, -c Infogade innehåll.
--debug, -d Koppla ett felsökningsfel till värdprocessen innan du kör funktionen.
--timeout, -t Tid att vänta (i sekunder) tills den lokala Functions-värden är klar.
--file, -f Filnamnet som ska användas som innehåll.
--no-interactive Frågar inte efter indata. Användbart för automatiseringsscenarier.

Om du till exempel vill anropa en HTTP-utlöst funktion och skicka innehåll, kör du följande kommando:

func run MyHttpTrigger -c '{\"name\": \"Azure\"}'

Publicera till Azure

Den Azure Functions Core Tools två typer av distribution: distribuera funktionsprojektfiler direkt till funktionsappen via Zip Deploy och distribuera en anpassad Docker-container. Du måste redan ha skapat en funktionsapp i din Azure-prenumeration, som du ska distribuera koden till. Projekt som kräver kompilering bör byggas så att binärfilerna kan distribueras.

Viktigt

Du måste ha Azure CLI eller Azure PowerShell installerat lokalt för att kunna publicera till Azure från Core Tools.

En projektmapp kan innehålla språkspecifika filer och kataloger som inte ska publiceras. Undantagna objekt visas i en .funcignore-fil i rotprojektmappen.

Distribuera projektfiler

Om du vill publicera din lokala kod till en funktionsapp i Azure använder du publish kommandot :

func azure functionapp publish <FunctionAppName>

Viktigt

Java använder Maven för att publicera ditt lokala projekt till Azure. Använd följande kommando för att publicera till Azure: mvn azure-functions:deploy . Azure-resurser skapas under den första distributionen.

Det här kommandot publicerar till en befintlig funktionsapp i Azure. Du får ett felmeddelande om du försöker publicera till en <FunctionAppName> som inte finns i din prenumeration. Information om hur du skapar en funktionsapp från kommandotolken eller terminalfönstret med hjälp av Azure CLI eller Azure PowerShell finns i Skapa en funktionsapp för serverlös körning. Som standard använder det här kommandot fjärrbygge och distribuerar din app för att köra från distributionspaketet. Om du vill inaktivera det här rekommenderade distributionsläget använder du --nozip alternativet .

Viktigt

När du skapar en funktionsapp i Azure Portal den version 3.x av funktionskörningen som standard. Om du vill att funktionsappen ska använda version 1.x av körningen följer du anvisningarna i Kör på version 1.x. Du kan inte ändra körningsversionen för en funktionsapp som har befintliga funktioner.

Följande publiceringsalternativ gäller för alla versioner:

Alternativ Beskrivning
--publish-local-settings -i Publicera inställningar local.settings.jspå Azure och uppmanas att skriva över om inställningen redan finns. Om du använder Microsoft Azure Storage-emulator ändrar du först appinställningen till en faktisk lagringsanslutning.
--overwrite-settings -y Ignorera uppmaningen om att skriva över appinställningar --publish-local-settings -i när används.

Följande publiceringsalternativ stöds endast för version 2.x och senare versioner:

Alternativ Beskrivning
--publish-settings-only, -o Publicera bara inställningar och hoppa över innehållet. Standardvärdet är prompt.
--list-ignored-files Visar en lista över filer som ignoreras under publiceringen, som baseras på .funcignore-filen.
--list-included-files Visar en lista över filer som har publicerats, baserat på .funcignore-filen.
--nozip Inaktiverar Run-From-Package standardläget.
--build-native-deps Hoppar över genereringen av mappen .hjul vid publicering av Python-funktionsappar.
--build, -b Utför byggåtgärd när du distribuerar till en Linux-funktionsapp. Accepterar: remote och local .
--additional-packages Lista över paket som ska installeras när du skapar interna beroenden. Exempel: python3-dev libevent-dev.
--force Ignorera förpubliceringsverifiering i vissa scenarier.
--csx Publicera ett C#-skriptprojekt (.csx).
--no-build Projektet byggs inte under publiceringen. För Python pip install utförs inte.
--dotnet-cli-params När du publicerar kompilerade C#-funktioner (.csproj) anropar kärnverktygen "dotnet build --output bin/publish". Alla parametrar som skickas till detta läggs till på kommandoraden.

Distribuera anpassad container

Azure Functions kan du distribuera funktionsprojektet i en anpassad Docker-container. Mer information finns i Skapa en funktion i Linux med en anpassad avbildning. Anpassade containrar måste ha en Dockerfile. Om du vill skapa en app med en Dockerfile använder du alternativet --dockerfile på func init .

func deploy

Följande distributionsalternativ för anpassade containrar är tillgängliga:

Alternativ Beskrivning
--registry Namnet på ett Docker-register som den aktuella användaren är inloggad på.
--platform Värdplattform för funktionsappen. Giltiga alternativ är kubernetes
--name Funktionsappens namn.
--max Du kan också ange det maximala antalet funktionsappinstanser att distribuera till.
--min Du kan också ange det minsta antalet funktionsappinstanser som ska distribueras till.
--config Anger en valfri distributionskonfigurationsfil.

Övervakningsfunktioner

Det rekommenderade sättet att övervaka körningen av dina funktioner är genom att integrera med Azure Application Insights. Du kan också strömma körningsloggar till din lokala dator. Mer information finns i Övervaka Azure Functions.

Application Insights integrering

Application Insights ska aktiveras när du skapar funktionsappen i Azure. Om din funktionsapp av någon anledning inte är ansluten till en Application Insights instans är det enkelt att göra den här integreringen i Azure Portal. Mer information finns i Aktivera Application Insights integrering.

Aktivera strömningsloggar

Du kan visa en ström av loggfiler som genereras av dina funktioner i en kommandoradssession på den lokala datorn.

Inbyggd logg strömning

Använd logstream alternativet för att börja ta emot strömmande loggar för en speciell Function-app som körs i Azure, som i följande exempel:

func azure functionapp logstream <FunctionAppName>

Anteckning

Inbyggd logg strömning har ännu inte Aktiver ATS i kärn verktyg för Function-appar som körs på Linux i en förbruknings plan. För dessa värd planer måste du i stället använda Live Metrics Stream för att visa loggarna i nära real tid.

Live-ström med mätvärden

Du kan visa Live Metrics Stream för din Function-app i ett nytt webbläsarfönster genom att inkludera --browser alternativet, som i följande exempel:

func azure functionapp logstream <FunctionAppName> --browser

Den här typen av direktuppspelningsloggar kräver Application Insights integrering aktiveras för din funktionsapp.

Nästa steg

Lär dig hur du utvecklar, testar och publicerar Azure Functions med hjälp Azure Functions Core Tools Microsoft learn-modulen Azure Functions Core Tools har öppen källkod och finns på GitHub.
Om du vill skicka in en bugg eller funktionsbegäran öppnar du ett GitHub-ärende.