Arbeta med Azure Functions Core ToolsWork with Azure Functions Core Tools

Med Azure Functions Core Tools kan du utveckla och testa dina funktioner på den lokala datorn från kommando tolken eller terminalen.Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. Dina lokala funktioner kan ansluta till Live Azure-tjänster, och du kan felsöka funktionerna på din lokala dator med hjälp av körnings funktionen för fullständiga funktioner.Your local functions can connect to live Azure services, and you can debug your functions on your local computer using the full Functions runtime. Du kan även distribuera en Function-app till din Azure-prenumeration.You can even deploy a function app to your Azure subscription.

Viktigt

Blanda inte lokal utveckling med Portal utveckling i samma Function-app.Do not mix local development with portal development in the same 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.When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

Genom att utveckla funktioner på den lokala datorn och publicera dem på Azure med hjälp av kärn verktygen följer du dessa grundläggande steg:Developing functions on your local computer and publishing them to Azure using Core Tools follows these basic steps:

Core Tools-versionerCore Tools versions

Det finns tre versioner av Azure Functions Core Tools.There are three versions of Azure Functions Core Tools. Vilken version du använder beror på din lokala utvecklings miljö, Val av språkoch support nivå som krävs:The version you use depends on your local development environment, choice of language, and level of support required:

Om inget annat anges är exemplen i den här artikeln för version 3. x.Unless otherwise noted, the examples in this article are for version 3.x.

Installera Azure Functions Core ToolsInstall the Azure Functions Core Tools

Azure Functions Core tools innehåller en version av samma körnings miljö som har behörighet Azure Functions runtime som du kan köra på din lokala utvecklings dator.Azure Functions Core Tools includes a version of the same runtime that powers Azure Functions runtime that you can run on your local development computer. Den innehåller också kommandon för att skapa funktioner, ansluta till Azure och distribuera funktions projekt.It also provides commands to create functions, connect to Azure, and deploy function projects.

Viktigt

Du måste ha installerat Azure CLI lokalt för att kunna publicera till Azure från Azure Functions Core tools.You must have the Azure CLI installed locally to be able to publish to Azure from Azure Functions Core Tools.

Version 2. x och 3. xVersion 2.x and 3.x

Version 2. x/3. x av verktygen använder den Azure Functions runtime som bygger på .NET Core.Version 2.x/3.x of the tools uses the Azure Functions runtime that is built on .NET Core. Den här versionen stöds på alla plattformar som .NET Core stöder, inklusive Windows, MacOSoch Linux.This version is supported on all platforms .NET Core supports, including Windows, macOS, and Linux.

Viktigt

Du kan kringgå kravet för att installera .NET Core SDK med hjälp av [tilläggs paket].You can bypass the requirement for installing the .NET Core SDK by using extension bundles.

I följande steg används NPM för att installera kärn verktyg i Windows.The following steps use npm to install Core Tools on Windows. Du kan också använda choklad.You can also use Chocolatey. Mer information finns i Readme- verktyg för viktiga verktyg.For more information, see the Core Tools readme.

  1. Installera [Node. js], som innehåller NPM.Install Node.js, which includes npm.

    • För version 2. x av verktygen stöds endast Node. js 8,5 och senare versioner.For version 2.x of the tools, only Node.js 8.5 and later versions are supported.
    • För version 3. x av verktygen stöds endast Node. js 10 och senare versioner.For version 3.x of the tools, only Node.js 10 and later versions are supported.
  2. Installera paketet core tools:Install the Core Tools package:

    v2. xv2.x
    npm install -g azure-functions-core-tools
    
    v3. xv3.x
    npm install -g azure-functions-core-tools@3
    

    Det kan ta några minuter för NPM att hämta och installera Core Tools-paketet.It may take a few minutes for npm to download and install the Core Tools package.

  3. Om du inte planerar att använda [tilläggs paket]installerar du .net Core 2. x SDK för Windows.If you don't plan to use extension bundles, install the .NET Core 2.x SDK for Windows.

Skapa ett lokalt Functions-projektCreate a local Functions project

Projekt katalogen Functions innehåller filerna Host. JSON och Local. Settings. JSON, tillsammans med undermappar som innehåller koden för enskilda funktioner.A functions project directory contains the files host.json and local.settings.json, along with subfolders that contain the code for individual functions. Den här katalogen är motsvarigheten till en Function-app i Azure.This directory is the equivalent of a function app in Azure. Mer information om mappstrukturen för functions finns i guiden för Azure Functions utvecklare.To learn more about the Functions folder structure, see the Azure Functions developers guide.

Version 2. x kräver att du väljer ett standard språk för projektet när det initieras.Version 2.x requires you to select a default language for your project when it is initialized. I version 2. x, har alla funktioner som lagts till använda standard språk.In version 2.x, all functions added use default language templates. I version 1. x anger du språket varje gången du skapar en funktion.In version 1.x, you specify the language each time you create a function.

I terminalfönstret eller från en kommando tolk kör du följande kommando för att skapa projektet och den lokala git-lagringsplatsen:In the terminal window or from a command prompt, run the following command to create the project and local Git repository:

func init MyFunctionProj

När du anger ett projekt namn skapas och initieras en ny mapp med det namnet.When you provide a project name, a new folder with that name is created and initialized. Annars initieras den aktuella mappen.Otherwise, the current folder is initialized.
När du kör kommandot i version 2. x måste du välja en körning för projektet.In version 2.x, when you run the command you must choose a runtime for your project.

Select a worker runtime:
dotnet
node
python 
powershell

Använd piltangenterna för att välja ett språk och tryck sedan på RETUR.Use the up/down arrow keys to choose a language, then press Enter. Om du planerar att utveckla Java Script-eller TypeScript-funktioner väljer du Nodeoch väljer sedan språket.If you plan to develop JavaScript or TypeScript functions, choose node, and then select the language. TypeScript har vissa ytterligare krav.TypeScript has some additional requirements.

Utdata ser ut som i följande exempel för ett JavaScript-projekt:The output looks like the following example for a JavaScript project:

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 initstöder följande alternativ, som endast är version 2. x, om inget annat anges:func init supports the following options, which are version 2.x-only, unless otherwise noted:

AlternativOption BeskrivningDescription
--csharp
--dotnet
Initierar ett C#-projekt (klass bibliotek).Initializes a C# class library (.cs) project.
--csx Initierar ett C#-skript (. CSX)-projekt.Initializes a C# script (.csx) project. Du måste ange --csx i efterföljande kommandon.You must specify --csx in subsequent commands.
--docker Skapa en Dockerfile för en behållare med hjälp av en bas avbildning som baseras på vald --worker-runtime.Create a Dockerfile for a container using a base image that is based on the chosen --worker-runtime. Använd det här alternativet när du planerar att publicera till en anpassad Linux-behållare.Use this option when you plan to publish to a custom Linux container.
--docker-only Lägger till en Dockerfile i ett befintligt projekt.Adds a Dockerfile to an existing project. Prompter för Worker-körning om detta inte anges eller anges i Local. Settings. JSON.Prompts for the worker-runtime if not specified or set in local.settings.json. Använd det här alternativet när du planerar att publicera ett befintligt projekt i en anpassad Linux-behållare.Use this option when you plan to publish an existing project to a custom Linux container.
--force Initiera projektet även när det finns befintliga filer i projektet.Initialize the project even when there are existing files in the project. Den här inställningen skriver över befintliga filer med samma namn.This setting overwrites existing files with the same name. Andra filer i projektmappen påverkas inte.Other files in the project folder aren't affected.
--java Initierar ett Java-projekt.Initializes a Java project.
--javascript
--node
Initierar ett JavaScript-projekt.Initializes a JavaScript project.
--no-source-control
-n
Förhindrar att en git-lagringsplats skapas som standard i version 1. x.Prevents the default creation of a Git repository in version 1.x. Git-lagringsplatsen skapas inte som standard i version 2. x.In version 2.x, the git repository isn't created by default.
--powershell Initierar ett PowerShell-projekt.Initializes a PowerShell project.
--python Initierar ett python-projekt.Initializes a Python project.
--source-control Anger om en git-lagringsplats skapas.Controls whether a git repository is created. Som standard skapas inte en lagrings plats.By default, a repository isn't created. När trueskapas en lagrings plats.When true, a repository is created.
--typescript Initierar ett typescript-projekt.Initializes a TypeScript project.
--worker-runtime Anger språk körning för projektet.Sets the language runtime for the project. De värden som stöds csharpär dotnet: java, javascript,node ,, (Java powershellscript python), typescript,, och.Supported values are: csharp, dotnet, java, javascript,node (JavaScript), powershell, python, and typescript. När du inte har angett uppmanas du att välja din körning under initieringen.When not set, you're prompted to choose your runtime during initialization.

Viktigt

Som standard skapar version 2. x av kärn verktygen Function app-projekt för .NET-körning som C#-klass projekt (. CSPROJ).By default, version 2.x of the Core Tools creates function app projects for the .NET runtime as C# class projects (.csproj). Dessa C#-projekt, som kan användas med Visual Studio eller Visual Studio Code, kompileras under testning och vid publicering till Azure.These C# projects, which can be used with Visual Studio or Visual Studio Code, are compiled during testing and when publishing to Azure. Om du i stället vill skapa och arbeta med samma C#-skript (. CSX) som skapats i version 1. x och i portalen måste du inkludera --csx parametern när du skapar och distribuerar funktioner.If you instead want to create and work with the same C# script (.csx) files created in version 1.x and in the portal, you must include the --csx parameter when you create and deploy functions.

Registrera tilläggRegister extensions

Med undantag för HTTP-och timer-utlösare, är funktions bindningar i körnings version 2. x och högre implementerade som tilläggs paket.With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x and higher are implemented as extension packages. I version 2. x och senare av Azure Functions runtime måste du explicit registrera tilläggen för de bindnings typer som används i funktionerna.In version 2.x and beyond of the Azure Functions runtime, you have to explicitly register the extensions for the binding types used in your functions. Undantagen till detta är HTTP-bindningar och timer-utlösare, vilket inte kräver tillägg.The exceptions to this are HTTP bindings and timer triggers, which do not require extensions.

Du kan välja att installera bindnings tillägg individuellt eller lägga till en paket referens i Host. JSON-projektfilen.You can choose to install binding extensions individually, or you can add an extension bundle reference to the host.json project file. Paket för tillägg tar bort risken för problem med att paketera kompatibilitetsproblem när du använder flera bindnings typer.Extension bundles removes the chance of having package compatibility issues when using multiple binding types. Det är den rekommenderade metoden för att registrera bindnings tillägg.It is the recommended approach for registering binding extensions. Tilläggs paketen tar också bort kravet på att installera .NET Core 2. x SDK.Extension bundles also removes the requirement of installing the .NET Core 2.x SDK.

Paket för tilläggExtension bundles

Det enklaste sättet att installera bindnings tillägg är att aktivera paket för tillägg.The easiest way to install binding extensions is to enable extension bundles. När du aktiverar paket installeras en fördefinierad uppsättning tilläggs paket automatiskt.When you enable bundles, a predefined set of extension packages is automatically installed.

Om du vill aktivera tilläggs paket öppnar du Host. JSON-filen och uppdaterar innehållet så att det matchar följande kod:To enable extension bundles, open the host.json file and update its contents to match the following code:

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

Läs mer i registrera Azure Functions bindnings tillägg.To learn more, see Register Azure Functions binding extensions. Du bör lägga till tilläggs paket i Host. JSON innan du lägger till bindningar i function. JSON-filen.You should add extension bundles to the host.json before you add bindings to the function.json file.

Registrera enskilda tilläggRegister individual extensions

Om du behöver installera tillägg som inte ingår i ett paket kan du registrera enskilda tilläggs paket manuellt för specifika bindningar.If you need to install extensions that aren't in a bundle, you can manually register individual extension packages for specific bindings.

Anteckning

Om du vill registrera tillägg manuellt func extensions installmed hjälp av måste du ha .net Core 2. x SDK installerat.To manually register extensions by using func extensions install, you must have the .NET Core 2.x SDK installed.

När du har uppdaterat din Function. JSON -fil för att inkludera alla bindningar som din funktion behöver kör du följande kommando i projektmappen.After you have updated your function.json file to include all the bindings that your function needs, run the following command in the project folder.

func extensions install

Kommandot läser filen Function. JSON för att se vilka paket du behöver, installerar dem och återskapa tilläggs projektet.The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project. Den lägger till eventuella nya bindningar i den aktuella versionen men uppdaterar inte befintliga bindningar.It adds any new bindings at the current version but does not update existing bindings. Använd --force alternativet för att uppdatera befintliga bindningar till den senaste versionen när du installerar nya.Use the --force option to update existing bindings to the latest version when installing new ones.

Fil för lokala inställningarLocal settings file

Den lokala. Settings. JSON-filen lagrar inställningar för appar, anslutnings strängar och inställningar som används av lokala utvecklingsverktyg.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. Inställningarna i filen Local. Settings. JSON används endast när du kör projekt lokalt.Settings in the local.settings.json file are used only when you're running projects locally. Den lokala inställnings filen har den här strukturen:The local settings file has this structure:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "AzureWebJobsDashboard": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>"
  },
  "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:These settings are supported when you run projects locally:

InställningenSetting BeskrivningDescription
IsEncrypted När den här inställningen är inställd truepå krypteras alla värden med en lokal dator nyckel.When this setting is set to true, all values are encrypted with a local machine key. Används med func settings -kommandon.Used with func settings commands. Standardvärdet falseär.Default value is false.
Values Matris med program inställningar och anslutnings strängar som används när ett projekt körs lokalt.Array of application settings and connection strings used when a project is running locally. Dessa nyckel värdes par (sträng sträng) motsvarar program inställningarna i din Function-app i Azure, t. AzureWebJobsStorageex..These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Många utlösare och bindningar har en egenskap som refererar till en app-inställning för Connection anslutnings strängen, till exempel för Blob Storage-utlösaren.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. För dessa egenskaper behöver du en program inställning som definierats i Values matrisen.For these properties, you need an application setting defined in the Values array.
AzureWebJobsStorageär en obligatorisk app-inställning för andra utlösare än HTTP.AzureWebJobsStorage is a required app setting for triggers other than HTTP.
Version 2. x och högre av Functions-körningen kräverFUNCTIONS_WORKER_RUNTIMEinställningen [], som genereras för ditt projekt med Core-verktyg.Version 2.x and higher of the Functions runtime requires the [FUNCTIONS_WORKER_RUNTIME] setting, which is generated for your project by Core Tools.
När du har installerat Azure Storage-emulatorn lokalt och du AzureWebJobsStorage har UseDevelopmentStorage=trueangett, använder kärn verktygen emulatorn.When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. Emulatorn är användbar under utvecklingen, men du bör testa med en faktisk lagrings anslutning före distributionen.The emulator is useful during development, but you should test with an actual storage connection before deployment.
Värden måste vara strängar och inte JSON-objekt eller matriser.Values must be strings and not JSON objects or arrays. Inställnings namn får inte innehålla kolon:() eller dubbel understrykning (__).Setting names can't include a colon (:) or a double underline (__). Dessa tecken reserveras av körnings miljön.These characters are reserved by the runtime.
Host Inställningarna i det här avsnittet anpassar funktionens värd process när du kör projekt lokalt.Settings in this section customize the Functions host process when you run projects locally. Inställningarna är separata från Host. JSON-inställningarna, som också gäller när du kör projekt i Azure.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Anger standard porten som används när du kör den lokala funktionensfunc host start värd func run(och).Sets the default port used when running the local Functions host (func host start and func run). --port Kommando rads alternativet har företräde framför den här inställningen.The --port command-line option takes precedence over this setting.
CORS Definierar de ursprung som tillåts för resurs delning mellan ursprung (CORS).Defines the origins allowed for cross-origin resource sharing (CORS). Ursprung anges som en kommaavgränsad lista utan blank steg.Origins are supplied as a comma-separated list with no spaces. Jokertecknet (*) stöds, vilket tillåter begär Anden från alla ursprung.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials När den är trueinställd på withCredentials tillåter begär Anden.When set to true, allows withCredentials requests.
ConnectionStrings En samling.A collection. Använd inte den här samlingen för de anslutnings strängar som används av funktions bindningarna.Don't use this collection for the connection strings used by your function bindings. 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.This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. Anslutnings strängar i det här objektet läggs till i miljön med providertypen för system. data. SqlClient.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Objekt i den här samlingen publiceras inte i Azure med andra AppData.Items in this collection aren't published to Azure with other app settings. Du måste uttryckligen lägga till de här värdena Connection strings i samlingen av dina funktions program inställningar.You must explicitly add these values to the Connection strings collection of your function app settings. 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.If you're creating a SqlConnection in your function code, you should store the connection string value with your other connections in Application Settings in the portal.

Som standard migreras de här inställningarna inte automatiskt när projektet publiceras till Azure.By default, these settings are not migrated automatically when the project is published to Azure. Använd --publish-local-settings växeln när du publicerar för att se till att dessa inställningar läggs till i Function-appen i Azure.Use the --publish-local-settings switch when you publish to make sure these settings are added to the function app in Azure. Observera att värden i ConnectionString aldrig publiceras.Note that values in ConnectionStrings are never published.

Värdena för funktionen app-inställningar kan också läsas i koden som miljövariabler.The function app settings values can also be read in your code as environment variables. Mer information finns i avsnittet miljövariabler i de här språkspecifika referens avsnitten:For more information, see the Environment variables section of these language-specific reference topics:

När ingen giltig lagrings anslutnings sträng har angetts AzureWebJobsStorage för och emulatorn inte används visas följande fel meddelande:When no valid storage connection string is set for AzureWebJobsStorage and the emulator isn't being used, the following error message is shown:

Värde saknas för AzureWebJobsStorage i Local. Settings. JSON.Missing value for AzureWebJobsStorage in local.settings.json. Detta krävs för alla andra utlösare än HTTP.This is required for all triggers other than HTTP. Du kan köra "FUNC Azure functionapp Fetch-app- <Settings>functionAppName" eller ange en anslutnings sträng i Local. Settings. JSON.You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.

Hämta anslutnings strängar för lagringGet your storage connection strings

Även när du använder Microsoft Azure Storage-emulator för utveckling kanske du vill testa med en faktisk lagrings anslutning.Even when using the Microsoft Azure Storage Emulator for development, you may want to test with an actual storage connection. Förutsatt att du redan har skapat ett lagrings kontokan du hämta en giltig lagrings anslutnings sträng på något av följande sätt:Assuming you have already created a storage account, you can get a valid storage connection string in one of the following ways:

  • Sök efter och välj lagrings kontonfrån Azure Portal.From the Azure portal, search for and select Storage accounts. Välj lagrings konton från Azure PortalSelect Storage accounts from Azure portal

    Välj ditt lagrings konto, Välj åtkomst nycklar i Inställningaroch kopiera sedan ett av värdena för anslutnings strängen .Select your storage account, select Access keys in Settings, then copy one of the Connection string values. Kopiera anslutnings strängen från Azure PortalCopy connection string from Azure portal

  • Använd Azure Storage Explorer för att ansluta till ditt Azure-konto.Use Azure Storage Explorer to connect to your Azure account. I Utforskarenexpanderar du din prenumeration, expanderar lagrings konton, väljer ditt lagrings konto och kopierar den primära eller sekundära anslutnings strängen.In the Explorer, expand your subscription, expand Storage Accounts, select your storage account, and copy the primary or secondary connection string.

    Kopiera anslutnings strängen från Storage Explorer

  • Använd kärn verktyg för att hämta anslutnings strängen från Azure med något av följande kommandon:Use Core Tools to download the connection string from Azure with one of the following commands:

    • Hämta alla inställningar från en befintlig Function-app:Download all settings from an existing function app:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • Hämta anslutnings strängen för ett angivet lagrings konto:Get the Connection string for a specific storage account:

      func azure storage fetch-connection-string <StorageAccountName>
      

      När du inte redan har loggat in på Azure uppmanas du att göra det.When you aren't already signed in to Azure, you're prompted to do so.

Skapa en funktionCreate a function

Skapa en funktion genom att köra följande kommando:To create a function, run the following command:

func new

När du kör func new i version 2. x uppmanas du att välja en mall på standard språket för din Function-app. därefter uppmanas du också att välja ett namn för din funktion.In version 2.x, when you run func new you are prompted to choose a template in the default language of your function app, then you are also prompted to choose a name for your function. I version 1. x uppmanas du också att välja språk.In version 1.x, you are also prompted to choose the language.

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

Funktions koden skapas i en undermapp med det tillhandahållna funktions namnet, som du kan se i följande utlösare för kön:Function code is generated in a subfolder with the provided function name, as you can see in the following queue trigger output:

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 alternativen i kommandot med följande argument:You can also specify these options in the command using the following arguments:

ArgumentArgument BeskrivningDescription
--csx (Version 2. x) Genererar samma C#-skript (. CSX) mallar som används i version 1. x och i portalen.(Version 2.x) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--language, -l--language, -l Programmeringsspråket för mallar, till exempel C#, F # eller Java Script.The template programming language, such as C#, F#, or JavaScript. Det här alternativet krävs i version 1. x.This option is required in version 1.x. Använd inte det här alternativet i version 2. x eller Välj ett språk som matchar arbets körningen.In version 2.x, do not use this option or choose a language that matches the worker runtime.
--name, -n--name, -n Funktions namnet.The function name.
--template, -t--template, -t Använd func templates list kommandot för att se en fullständig lista över tillgängliga mallar för varje språk som stöds.Use the func templates list command to see the complete list of available templates for each supported language.

Om du till exempel vill skapa en JavaScript-HTTP-utlösare i ett enda kommando kör du:For example, to create a JavaScript HTTP trigger in a single command, run:

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

För att skapa en kö-utlöst funktion i ett enda kommando, kör:To create a queue-triggered function in a single command, run:

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

Köra funktioner lokaltRun functions locally

Kör Functions-värden om du vill köra ett Functions-projekt.To run a Functions project, run the Functions host. Värden aktiverar utlösare för alla funktioner i projektet.The host enables triggers for all functions in the project. Start kommandot varierar beroende på ditt projekt språk.The start command varies, depending on your project language.

func start --build

Anteckning

Version 1. x av Functions-körningen host kräver kommandot, som i följande exempel:Version 1.x of the Functions runtime requires the host command, as in the following example:

func host start

func startstöder följande alternativ:func start supports the following options:

AlternativOption BeskrivningDescription
--no-build Skapa inte aktuellt projekt innan det körs.Do no build current project before running. Endast för dotNET-projekt.For dotnet projects only. Standardvärdet är inställt på falskt.Default is set to false. Stöds inte för version 1. x.Not supported for version 1.x.
--cert Sökvägen till en. pfx-fil som innehåller en privat nyckel.The path to a .pfx file that contains a private key. Används endast med --useHttps.Only used with --useHttps. Stöds inte för version 1. x.Not supported for version 1.x.
--cors-credentials Tillåt kors ursprung autentiserade begär Anden (dvs. cookies och Authentication-huvudet) stöds inte för version 1. x.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Not supported for version 1.x.
--cors En kommaavgränsad lista med CORS-ursprung, utan blank steg.A comma-separated list of CORS origins, with no spaces.
--language-worker Argument för att konfigurera språk arbets tagaren.Arguments to configure the language worker. Du kan till exempel aktivera fel sökning för språk arbetare genom att tillhandahålla fel söknings port och andra obligatoriska argument.For example, you may enable debugging for language worker by providing debug port and other required arguments. Stöds inte för version 1. x.Not supported for version 1.x.
--nodeDebugPort, -n--nodeDebugPort, -n Porten för Node. js-felsökaren att använda.The port for the Node.js debugger to use. Standard: ett värde från Launch. JSON eller 5858.Default: A value from launch.json or 5858. Endast version 1. x.Version 1.x only.
--password Antingen lösen ordet eller en fil som innehåller lösen ordet för en PFX-fil.Either the password or a file that contains the password for a .pfx file. Används endast med --cert.Only used with --cert. Stöds inte för version 1. x.Not supported for version 1.x.
--port, -p--port, -p Den lokala porten att lyssna på.The local port to listen on. Standardvärde: 7071.Default value: 7071.
--pause-on-error Pausa för ytterligare indatatyper innan du avslutar processen.Pause for additional input before exiting the process. Används endast när du startar kärn verktyg från en Integrated Development Environment (IDE).Used only when launching Core Tools from an integrated development environment (IDE).
--script-root, --prefix--script-root, --prefix Används för att ange sökvägen till roten för Function-appen som ska köras eller distribueras.Used to specify the path to the root of the function app that is to be run or deployed. Detta används för kompilerade projekt som genererar projektfiler i en undermapp.This is used for compiled projects that generate project files into a subfolder. När du till exempel skapar ett C#-klass biblioteks projekt skapas värden. JSON, Local. Settings. JSON och function. JSON-filer i en rotmapp med en sökväg som MyProject/bin/Debug/netstandard2.0.For example, when you build a C# class library project, the host.json, local.settings.json, and function.json files are generated in a root subfolder with a path like MyProject/bin/Debug/netstandard2.0. I det här fallet ställer du in prefixet som --script-root MyProject/bin/Debug/netstandard2.0.In this case, set the prefix as --script-root MyProject/bin/Debug/netstandard2.0. Detta är roten i Function-appen när du kör i Azure.This is the root of the function app when running in Azure.
--timeout, -t--timeout, -t Tids gränsen för funktionens värd att starta, i sekunder.The timeout for the Functions host to start, in seconds. Standard: 20 sekunder.Default: 20 seconds.
--useHttps Bind till https://localhost:{port} i stället för http://localhost:{port}till.Bind to https://localhost:{port} rather than to http://localhost:{port}. Som standard skapar det här alternativet ett betrott certifikat på din dator.By default, this option creates a trusted certificate on your computer.

När Functions-värden startar matar den in URL: en för HTTP-utlösta funktioner:When the Functions host starts, it outputs the URL of HTTP-triggered functions:

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.When running locally, authorization isn't enforced for HTTP endpoints. Det innebär att alla lokala HTTP-begäranden hanteras som authLevel = "anonymous".This means that all local HTTP requests are handled as authLevel = "anonymous". Mer information finns i artikeln om http-bindning.For more information, see the HTTP binding article.

Skicka test data till en funktionPassing test data to a function

Om du vill testa dina funktioner lokalt startar du Functions-värden och anropar slut punkter på den lokala servern med HTTP-begäranden.To test your functions locally, you start the Functions host and call endpoints on the local server using HTTP requests. Slut punkten som du anropar beror på typen av funktion.The endpoint you call depends on the type of function.

Anteckning

Exemplen i det här avsnittet använder verktyget för att skicka HTTP-förfrågningar från terminalen eller en kommando tolk.Examples in this topic use the cURL tool to send HTTP requests from the terminal or a command prompt. Du kan använda ett verktyg som du väljer för att skicka HTTP-begäranden till den lokala servern.You can use a tool of your choice to send HTTP requests to the local server. Verktyget vänd är tillgängligt som standard på Linux-baserade system och Windows 10 version 17063 och senare.The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. I äldre fönster måste du först hämta och installera verktyget sväng.On older Windows, you must first download and install the cURL tool.

Mer allmän information om testning av funktioner finns i strategier för att testa koden i Azure Functions.For more general information on testing functions, see Strategies for testing your code in Azure Functions.

Funktioner som utlöses av HTTP och webhookHTTP and webhook triggered functions

Du anropar följande slut punkt för att köra HTTP-och webhook-utlösta funktioner lokalt:You call the following endpoint to locally run HTTP and webhook triggered functions:

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

Se till att använda samma server namn och port som värden lyssnar på.Make sure to use the same server name and port that the Functions host is listening on. Du ser detta i de utdata som genereras när du startar funktions värden.You see this in the output generated when starting the Function host. Du kan anropa den här URL: en med hjälp av en HTTP-metod som stöds av utlösaren.You can call this URL using any HTTP method supported by the trigger.

Följande spiral kommando utlöser MyHttpTrigger snabb starts funktionen från en get-begäran med den namn parameter som angavs i frågesträngen.The following cURL command triggers the MyHttpTrigger quickstart function from a GET request with the name parameter passed in the query string.

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

Följande exempel är samma funktion som anropas från ett POST-begärans överförings namn i begär ande texten:The following example is the same function called from a POST request passing name in the request body:

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

Du kan göra GET-begäranden från en webbläsare som skickar data i frågesträngen.You can make GET requests from a browser passing data in the query string. För alla andra HTTP-metoder måste du använda sväng, Fiddler, Postman eller ett liknande verktyg för HTTP-testning.For all other HTTP methods, you must use cURL, Fiddler, Postman, or a similar HTTP testing tool.

Funktioner som inte är HTTP-utlöstaNon-HTTP triggered functions

För alla typer av funktioner än HTTP-utlösare och Webhooks och Event Grid utlösare kan du testa dina funktioner lokalt genom att anropa en administrations slut punkt.For all kinds of functions other than HTTP triggers and webhooks and Event Grid triggers, you can test your functions locally by calling an administration endpoint. Anropet till den här slut punkten med en HTTP POST-begäran på den lokala servern utlöser funktionen.Calling this endpoint with an HTTP POST request on the local server triggers the function.

Om du vill testa Event Grid utlösta funktioner lokalt, se lokal testning med visnings program för webb program.To test Event Grid triggered functions locally, see Local testing with viewer web app.

Du kan också skicka test data till körningen i bröd texten i POST-begäran.You can optionally pass test data to the execution in the body of the POST request. Den här funktionen liknar fliken test i Azure Portal.This functionality is similar to the Test tab in the Azure portal.

Du anropar följande administratörs slut punkt för att utlösa icke-HTTP-funktioner:You call the following administrator endpoint to trigger non-HTTP functions:

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

Om du vill skicka test data till administratörs slut punkten för en funktion måste du ange data i bröd texten i ett meddelande om POST-begäran.To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. Meddelande texten måste ha följande JSON-format:The message body is required to have the following JSON format:

{
    "input": "<trigger_input>"
}

<trigger_input> Värdet innehåller data i ett format som förväntas av funktionen.The <trigger_input> value contains data in a format expected by the function. Följande spiral exempel är ett inlägg i en QueueTriggerJS funktion.The following cURL example is a POST to a QueueTriggerJS function. I det här fallet är indatamängden en sträng som motsvarar det meddelande som förväntas finnas i kön.In this case, the input is a string that is equivalent to the message expected to be found in the queue.

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

Använda func run kommandot (endast version 1. x)Using the func run command (version 1.x only)

Viktigt

func run Kommandot stöds endast i version 1. x av verktygen.The func run command is only supported in version 1.x of the tools. Mer information finns i avsnittet How to target Azure Functions runtime-versioner.For more information, see the topic How to target Azure Functions runtime versions.

I version 1. x kan du också anropa en funktion direkt genom att använda func run <FunctionName> och ange indata för funktionen.In version 1.x, you can also invoke a function directly by using func run <FunctionName> and provide input data for the function. Det här kommandot liknar att köra en funktion med hjälp av fliken test i Azure Portal.This command is similar to running a function using the Test tab in the Azure portal.

func runstöder följande alternativ:func run supports the following options:

AlternativOption BeskrivningDescription
--content, -c--content, -c Infogat innehåll.Inline content.
--debug, -d--debug, -d Koppla en fel sökare till värd processen innan du kör funktionen.Attach a debugger to the host process before running the function.
--timeout, -t--timeout, -t Vänte tiden (i sekunder) tills den lokala funktionens värd är klar.Time to wait (in seconds) until the local Functions host is ready.
--file, -f--file, -f Fil namnet som ska användas som innehåll.The file name to use as content.
--no-interactive Kräver inte någon indatamängd.Does not prompt for input. Användbart för automatiserings scenarier.Useful for automation scenarios.

Om du till exempel vill anropa en HTTP-utlöst funktion och skicka innehålls texten kör du följande kommando:For example, to call an HTTP-triggered function and pass content body, run the following command:

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

Publicera till AzurePublish to Azure

Azure Functions Core Tools stöder två typer av distribution: Distribuera Function Project-filer direkt till din Function-app via zip Deploy och distribuera en anpassad Docker-behållare.The Azure Functions Core Tools supports two types of deployment: deploying function project files directly to your function app via Zip Deploy and deploying a custom Docker container. Du måste redan ha skapat en Function-app i din Azure-prenumeration, som du ska distribuera din kod till.You must have already created a function app in your Azure subscription, to which you'll deploy your code. Projekt som kräver kompilering bör skapas så att binärfilerna kan distribueras.Projects that require compilation should be built so that the binaries can be deployed.

Viktigt

Du måste ha installerat Azure CLI lokalt för att kunna publicera till Azure från kärn verktyg.You must have the Azure CLI installed locally to be able to publish to Azure from Core Tools.

En projektmapp kan innehålla språkspecifika filer och kataloger som inte ska publiceras.A project folder may contain language-specific files and directories that shouldn't be published. Undantagna objekt visas i en. funcignore-fil i rotmappen.Excluded items are listed in a .funcignore file in the root project folder.

Distribuera projektfilerDeploy project files

Om du vill publicera din lokala kod i en Function-app i Azure publish använder du kommandot:To publish your local code to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

Det här kommandot publicerar till en befintlig Function-app i Azure.This command publishes to an existing function app in Azure. Du får ett fel meddelande om du försöker publicera till en <FunctionAppName> som inte finns i din prenumeration.You'll get an error if you try to publish to a <FunctionAppName> that doesn't exist in your subscription. Information om hur du skapar en Function-app från kommando tolken eller terminalfönstret med hjälp av Azure CLI finns i skapa en Funktionsapp för Server lös körning.To learn how to create a function app from the command prompt or terminal window using the Azure CLI, see Create a Function App for serverless execution. Som standard använder detta kommando fjärrversion och distribuerar din app för körning från distributions paketet.By default, this command uses remote build and deploys your app to run from the deployment package. Om du vill inaktivera det rekommenderade distributions läget --nozip använder du alternativet.To disable this recommended deployment mode, use the --nozip option.

Viktigt

När du skapar en Function-app i Azure Portal, använder den version 2. x av funktions körning som standard.When you create a function app in the Azure portal, it uses version 2.x of the Function runtime by default. Om du vill att Function-appen ska använda version 1. x av körnings miljön följer du anvisningarna i köra på version 1. x.To make the function app use version 1.x of the runtime, follow the instructions in Run on version 1.x. Du kan inte ändra körnings versionen för en Function-app som har befintliga funktioner.You can't change the runtime version for a function app that has existing functions.

Följande publicerings alternativ gäller för båda versionerna, 1. x och 2. x:The following publish options apply for both versions, 1.x and 2.x:

AlternativOption BeskrivningDescription
--publish-local-settings -i Publicera inställningar i Local. Settings. JSON till Azure och du ombeds skriva över om inställningen redan finns.Publish settings in local.settings.json to Azure, prompting to overwrite if the setting already exists. Om du använder Microsoft Azure Storage-emulator måste du först ändra appens inställning till en faktisk lagrings anslutning.If you are using the Microsoft Azure Storage Emulator, first change the app setting to an actual storage connection.
--overwrite-settings -y Utelämna uppmaningen att skriva över app- --publish-local-settings -i inställningar när används.Suppress the prompt to overwrite app settings when --publish-local-settings -i is used.

Följande publicerings alternativ stöds bara i version 2. x:The following publish options are only supported in version 2.x:

AlternativOption BeskrivningDescription
--publish-settings-only, -o--publish-settings-only, -o Publicera bara inställningar och hoppa över innehållet.Only publish settings and skip the content. Standardvärdet är prompt.Default is prompt.
--list-ignored-files Visar en lista över filer som ignoreras under publicering, som baseras på. funcignore-filen.Displays a list of files that are ignored during publishing, which is based on the .funcignore file.
--list-included-files Visar en lista över publicerade filer, som baseras på. funcignore-filen.Displays a list of files that are published, which is based on the .funcignore file.
--nozip Stänger av standard Run-From-Package läget.Turns the default Run-From-Package mode off.
--build-native-deps Hoppar över genereringen av. Wheels-mappen när du publicerar python Function-appar.Skips generating .wheels folder when publishing Python function apps.
--build, -b--build, -b Utför Bygg åtgärd när du distribuerar till en Linux Function-app.Performs build action when deploying to a Linux function app. Accepterar: remote och local.Accepts: remote and local.
--additional-packages Lista över paket som ska installeras när du skapar interna beroenden.List of packages to install when building native dependencies. Till exempel: python3-dev libevent-dev.For example: python3-dev libevent-dev.
--force Ignorera för publicerings verifiering i vissa scenarier.Ignore pre-publishing verification in certain scenarios.
--csx Publicera ett C#-skript (. CSX)-projekt.Publish a C# script (.csx) project.
--no-build Bygg inte funktioner i .NET-klass bibliotek.Don't build .NET class library functions.
--dotnet-cli-params När du publicerar kompilerade C#-funktioner (. CSPROJ) anropar kärn verktygen "dotNet build--output bin/Publish".When publishing compiled C# (.csproj) functions, the core tools calls 'dotnet build --output bin/publish'. Alla parametrar som skickas till detta läggs till i kommando raden.Any parameters passed to this will be appended to the command line.

Distribuera anpassad behållareDeploy custom container

Med Azure Functions kan du distribuera ett funktions projekt i en anpassad Docker-behållare.Azure Functions lets you deploy your function project in a custom Docker container. Mer information finns i skapa en funktion i Linux med en anpassad avbildning.For more information, see Create a function on Linux using a custom image. Anpassade behållare måste ha en Dockerfile.Custom containers must have a Dockerfile. Om du vill skapa en app med en Dockerfile använder du alternativet--Dockerfile func initpå.To create an app with a Dockerfile, use the --dockerfile option on func init.

func deploy

Följande alternativ för distribution av anpassade behållare är tillgängliga:The following custom container deployment options are available:

AlternativOption BeskrivningDescription
--registry Namnet på ett Docker-register som den aktuella användaren har loggat in på.The name of a Docker Registry the current user signed-in to.
--platform Värd plattform för Function-appen.Hosting platform for the function app. Giltiga alternativ ärkubernetesValid options are kubernetes
--name Funktionens namn på appen.Function app name.
--max Om du vill kan du ange det maximala antalet funktions-App-instanser som ska distribueras till.Optionally, sets the maximum number of function app instances to deploy to.
--min Om du vill kan du ange det minsta antalet funktions-App-instanser som ska distribueras till.Optionally, sets the minimum number of function app instances to deploy to.
--config Anger en valfri distributions konfigurations fil.Sets an optional deployment configuration file.

Övervaknings funktionerMonitoring functions

Det rekommenderade sättet att övervaka körningen av dina funktioner är genom att integrera med Azure Application insikter.The recommended way to monitor the execution of your functions is by integrating with Azure Application Insights. Du kan också strömma körnings loggar till den lokala datorn.You can also stream execution logs to your local computer. Mer information finns i övervaka Azure Functions.To learn more, see Monitor Azure Functions.

Application Insights-integreringApplication Insights integration

Application Insights integration ska vara aktive rad när du skapar din Function-app i Azure.Application Insights integration should be enabled when you create your function app in Azure. Om din funktions app inte är ansluten till en Application Insights instans, är det enkelt att integrera i Azure Portal.If for some reason your function app isn't connected to an Application Insights instance, it's easy to do this integration in the Azure portal.

Med Functions är det enkelt att lägga till Application Insights integration till en Function-app från Azure Portal.Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. I Azure Portalsöker du efter och väljer Function-appenoch väljer sedan din Function-app.In the Azure portal, search for and select function app, and then choose your function app.

  2. Välj Application Insights inte har kon figurer ATS överst i fönstret.Select the Application Insights is not configured banner at the top of the window. Om du inte ser den här banderollen har din app redan Application Insights aktive rad.If you don't see this banner, then your app already has Application Insights enabled.

    Aktivera Application Insights från portalen

  3. Skapa en Application Insights resurs genom att använda de inställningar som anges i tabellen under bilden.Create an Application Insights resource by using the settings specified in the table below the image.

    Skapa en Application Insights resurs

    InställningenSetting Föreslaget värdeSuggested value BeskrivningDescription
    NamnName Unikt namn på AppUnique app name Det är enklast att använda samma namn som din Function-app, vilket måste vara unikt i din prenumeration.It's easiest to use the same name as your function app, which must be unique in your subscription.
    PositionLocation Europa, västraWest Europe Använd om möjligt samma region som din Function-app eller en som är nära den regionen.If possible, use the same region as your function app, or one that's close to that region.
  4. Välj Använd.Select Apply. Application Insights resursen skapas i samma resurs grupp och prenumeration som din Function-app.The Application Insights resource is created in the same resource group and subscription as your function app. När resursen har skapats stänger du Application Insightss fönstret.After the resource is created, close the Application Insights window.

  5. Tillbaka i din Function-app väljer du Inställningar > konfigurationoch väljer sedan program inställningar.Back in your function app, select Settings > Configuration, and then select Application settings. Om du ser en inställning med namnet APPINSIGHTS_INSTRUMENTATIONKEY är Application Insights integration aktive rad för din Function-app som körs i Azure.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

Aktivera strömnings loggarEnable streaming logs

Du kan visa en ström med loggfiler som genereras av dina funktioner i en kommando rad session på den lokala datorn.You can view a stream of log files being generated by your functions in a command-line session on your local computer.

Interna strömmande loggarNative streaming logs

Inbyggd logg strömningBuilt-in log streaming

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:Use the logstream option to start receiving streaming logs of a specific function app running in Azure, as in the following example:

func azure functionapp logstream <FunctionAppName>

Live-ström med mätvärdenLive Metrics Stream

Du kan också visa Live Metrics Stream för din Function-app i ett nytt webbläsarfönster genom att --browser inkludera alternativet, som i följande exempel:You can also view the Live Metrics Stream for your function app in a new browser window by including the --browser option, as in the following example:

func azure functionapp logstream <FunctionAppName> --browser

Den här typen av strömnings loggar kräver att Application Insights integration aktive ras för din Function-app.This type of streaming logs requires that Application Insights integration be enabled for your function app.

Nästa stegNext steps

Lär dig hur du utvecklar, testar och publicerar Azure Functions med Azure Functions Core Tools Microsoft lära Azure Functions Core Tools är öppen källkod och finns på GitHub.Learn how to develop, test, and publish Azure Functions by using Azure Functions Core Tools Microsoft learn module Azure Functions Core Tools is open source and hosted on GitHub.
Om du vill skicka en fel-eller funktions förfrågan öppnar du ett GitHub-problem.To file a bug or feature request, open a GitHub issue.