Usare Strumenti di base di Funzioni di AzureWork with Azure Functions Core Tools

Azure Functions Core Tools consente di sviluppare e testare le funzioni nel computer locale dal prompt dei comandi o dal terminale.Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. Le funzioni locali possono connettersi ai servizi di Azure attivi ed è possibile eseguire il debug delle funzioni nel computer locale usando il runtime completo di Funzioni di Azure.Your local functions can connect to live Azure services, and you can debug your functions on your local computer using the full Functions runtime. È anche possibile distribuire un'app per le funzioni all'abbonamento di Azure.You can even deploy a function app to your Azure subscription.

Importante

Non combinare lo sviluppo locale con lo sviluppo del portale nella stessa app per le funzioni.Do not mix local development with portal development in the same function app. Quando si creano e si pubblicano le funzioni da un progetto locale, non tentare di gestire o modificare il codice di progetto nel portale.When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

Per lo sviluppo di funzioni sul computer locale e la relativa pubblicazione in Azure con gli strumenti di base, attenersi alla procedura seguente:Developing functions on your local computer and publishing them to Azure using Core Tools follows these basic steps:

Versioni di Core ToolsCore Tools versions

Sono disponibili tre versioni di Azure Functions Core Tools.There are three versions of Azure Functions Core Tools. La versione in uso dipende dall'ambiente di sviluppo locale, dalla scelta del linguaggioe dal livello di supporto necessari:The version you use depends on your local development environment, choice of language, and level of support required:

È possibile installare una sola versione degli strumenti di base in un determinato computer.You can only install one version of Core Tools on a given computer. Se non specificato diversamente, gli esempi in questo articolo sono per la versione 3. x.Unless otherwise noted, the examples in this article are for version 3.x.

PrerequisitiPrerequisites

Azure Functions Core Tools attualmente dipende dall'interfaccia della riga di comando di Azure o Azure PowerShell per l'autenticazione con l'account Azure.Azure Functions Core Tools currently depends on either the Azure CLI or Azure PowerShell for authenticating with your Azure account. Ciò significa che è necessario installare uno di questi strumenti per poter eseguire la pubblicazione in Azure da Azure Functions Core Tools.This means that you must install one of these tools to be able to publish to Azure from Azure Functions Core Tools.

Installare gli strumenti di base per Funzioni di AzureInstall the Azure Functions Core Tools

[Strumenti di base di Funzioni di Azure] comprende una versione dello stesso runtime che alimenta Funzioni di Azure che è possibile eseguire nel computer di sviluppo locale.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. Fornisce anche i comandi per creare le funzioni, connettersi ad Azure e distribuire i progetti della funzione.It also provides commands to create functions, connect to Azure, and deploy function projects.

Versione 3. x e 2. xVersion 3.x and 2.x

La versione 3. x/2. x degli strumenti usa il runtime di funzioni di Azure compilato in .NET Core.Version 3.x/2.x of the tools uses the Azure Functions runtime that is built on .NET Core. Questa versione è supportata su tutte le piattaforme supportate da .NET Core, tra cui Windows, MacOSe Linux.This version is supported on all platforms .NET Core supports, including Windows, macOS, and Linux.

Importante

È possibile ignorare il requisito per l'installazione del .NET Core SDK usando i bundle di estensione.You can bypass the requirement for installing the .NET Core SDK by using extension bundles.

I passaggi seguenti usano Windows Installer (MSI) per installare gli strumenti di base V3. x.The following steps use a Windows installer (MSI) to install Core Tools v3.x. Per ulteriori informazioni su altri programmi di installazione basati su pacchetti, necessari per installare gli strumenti di base V2. x, vedere il file Leggimi degli strumenti di base.For more information about other package-based installers, which are required to install Core Tools v2.x, see the Core Tools readme.

  1. Scaricare ed eseguire il programma di installazione degli strumenti di base, in base alla versione di Windows in uso:Download and run the Core Tools installer, based on your version of Windows:

  2. Se non si prevede di usare i bundle di estensione, installare .NET Core 3. x SDK per Windows.If you don't plan to use extension bundles, install the .NET Core 3.x SDK for Windows.

Creare un progetto Funzioni localeCreate a local Functions project

Una directory di progetto di funzioni contiene i file host.jsin e local.settings.jsin, insieme alle sottocartelle che contengono il codice per le singole funzioni.A Functions project directory contains the files host.json and local.settings.json, along with subfolders that contain the code for individual functions. Questa directory è l'equivalente di un'app per le funzioni in Azure.This directory is the equivalent of a function app in Azure. Per altre informazioni sulla struttura delle cartelle di Funzioni, vedere la Guida per sviluppatori di Funzioni di Azure.To learn more about the Functions folder structure, see the Azure Functions developers guide.

Per la versione 3. x/2. x è necessario selezionare una lingua predefinita per il progetto quando viene inizializzata.Version 3.x/2.x requires you to select a default language for your project when it is initialized. Nella versione 3. x/2. x, tutte le funzioni aggiunte usano i modelli di lingua predefiniti.In version 3.x/2.x, all functions added use default language templates. Nella versione 1.x, specificare la lingua ogni volta che si crea una funzione.In version 1.x, you specify the language each time you create a function.

Nella finestra del terminale o da un prompt dei comandi, eseguire il comando seguente per creare il progetto e l’archivio Git locale:In the terminal window or from a command prompt, run the following command to create the project and local Git repository:

func init MyFunctionProj

Importante

Java usa un archetipo Maven per creare il progetto di funzioni locali, insieme alla prima funzione attivata tramite HTTP.Java uses a Maven archetype to create the local Functions project, along with your first HTTP triggered function. Usare il comando seguente per creare il progetto Java: mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype .Use the following command to create your Java project: mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype. Per un esempio di utilizzo dell'archetipo Maven, vedere la Guida introduttiva alla riga di comando.For an example using the Maven archetype, see the Command line quickstart.

Quando si fornisce un nome di progetto, viene creata e inizializzata una nuova cartella con lo stesso nome.When you provide a project name, a new folder with that name is created and initialized. In caso contrario, viene inizializzata la cartella corrente.Otherwise, the current folder is initialized.
Nella versione 3. x/2. x, quando si esegue il comando è necessario scegliere un runtime per il progetto.In version 3.x/2.x, when you run the command you must choose a runtime for your project.

Select a worker runtime:
dotnet
node
python 
powershell

Usare le frecce su/giù per scegliere una lingua, quindi premere INVIO.Use the up/down arrow keys to choose a language, then press Enter. Se si prevede di sviluppare funzioni JavaScript o TypeScript, scegliere nodo, quindi selezionare la lingua.If you plan to develop JavaScript or TypeScript functions, choose node, and then select the language. TypeScript presenta alcuni requisiti aggiuntivi.TypeScript has some additional requirements.

L'output ha un aspetto simile all'esempio seguente per un progetto JavaScript: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 init supporta le opzioni seguenti, ovvero la versione 3. x/2. x-only, salvo diversa indicazione:func init supports the following options, which are version 3.x/2.x-only, unless otherwise noted:

OpzioneOption DescrizioneDescription
--csx Crea funzioni .NET come script C#, che è il comportamento della versione 1. x.Creates .NET functions as C# script, which is the version 1.x behavior. È valido esclusivamente con --worker-runtime dotnet.Valid only with --worker-runtime dotnet.
--docker Crea un Dockerfile per un contenitore usando un'immagine di base basata sull'oggetto selezionato --worker-runtime .Creates a Dockerfile for a container using a base image that is based on the chosen --worker-runtime. Usare questa opzione quando si prevede di pubblicare in un contenitore Linux personalizzato.Use this option when you plan to publish to a custom Linux container.
--docker-only Aggiunge un Dockerfile a un progetto esistente.Adds a Dockerfile to an existing project. Richiede il runtime del ruolo di lavoro se non è specificato o impostato in local.settings.js.Prompts for the worker-runtime if not specified or set in local.settings.json. Usare questa opzione quando si prevede di pubblicare un progetto esistente in un contenitore Linux personalizzato.Use this option when you plan to publish an existing project to a custom Linux container.
--force Inizializzare il progetto anche se contiene file esistenti.Initialize the project even when there are existing files in the project. Questa impostazione sovrascrive i file esistenti con lo stesso nome.This setting overwrites existing files with the same name. Gli altri file nella cartella del progetto non sono interessati.Other files in the project folder aren't affected.
--language Inizializza un progetto specifico del linguaggio.Initializes a language specific project. Attualmente supportato quando è --worker-runtime impostato su node .Currently supported when --worker-runtime set to node. Le opzioni sono typescript e javascript .Options are typescript and javascript. È inoltre possibile utilizzare --worker-runtime javascript o --worker-runtime typescript .You can also use --worker-runtime javascript or --worker-runtime typescript.
--managed-dependencies Installa le dipendenze gestite.Installs managed dependencies. Attualmente, solo il runtime del ruolo di lavoro PowerShell supporta questa funzionalità.Currently, only the PowerShell worker runtime supports this functionality.
--source-control Controlla se viene creato un repository GIT.Controls whether a git repository is created. Per impostazione predefinita, non viene creato un repository.By default, a repository isn't created. Quando è true viene creato un repository.When true, a repository is created.
--worker-runtime Imposta il runtime del linguaggio per il progetto.Sets the language runtime for the project. I valori supportati sono: csharp ,, dotnet javascript , node (JavaScript),, powershell python e typescript .Supported values are: csharp, dotnet, javascript,node (JavaScript), powershell, python, and typescript. Per Java, usare Maven. Quando non è impostato, viene richiesto di scegliere il runtime durante l'inizializzazione.For Java, use Maven.When not set, you're prompted to choose your runtime during initialization.

Importante

Per impostazione predefinita, la versione 2. x e le versioni successive degli strumenti di base creano progetti di app per le funzioni per il Runtime .NET come progetti di classe C# (csproj).By default, version 2.x and later versions of the Core Tools create function app projects for the .NET runtime as C# class projects (.csproj). Tali progetti C#, che possono essere usati con Visual Studio o Visual Studio Code, vengono compilati durante la fase di test e alla pubblicazione in Azure.These C# projects, which can be used with Visual Studio or Visual Studio Code, are compiled during testing and when publishing to Azure. Se invece si prevede di creare e usare gli stessi file di script C# (con estensione csx) creati nella versione 1.x e nel portale, è necessario includere il parametro --csx quando si creano e si distribuiscono funzioni.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.

Registrare le estensioniRegister extensions

Fatta eccezione per i trigger HTTP e timer, le associazioni di funzioni in Runtime versione 2. x e successive vengono implementate come pacchetti di estensione.With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x and higher are implemented as extension packages. Le associazioni HTTP e i trigger timer non richiedono estensioni.HTTP bindings and timer triggers don't require extensions.

Per ridurre le incompatibilità tra i vari pacchetti di estensione, funzioni consente di fare riferimento a un bundle di estensione nel host.jsfile di progetto.To reduce incompatibilities between the various extension packages, Functions lets you reference an extension bundle in your host.json project file. Se si sceglie di non usare i bundle di estensione, è anche necessario installare .NET Core 2. x SDK localmente e mantenere un estensione csproj con il progetto funzioni.If you choose not to use extension bundles, you also need to install .NET Core 2.x SDK locally and maintain an extensions.csproj with your functions project.

Nella versione 2. x e oltre al runtime di funzioni di Azure, è necessario registrare in modo esplicito le estensioni per i tipi di binding usati nelle funzioni.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. È possibile scegliere di installare le estensioni di binding singolarmente oppure è possibile aggiungere un riferimento al bundle di estensione all'host.jsnel file di progetto.You can choose to install binding extensions individually, or you can add an extension bundle reference to the host.json project file. I bundle di estensione rimuovono la possibilità di problemi di compatibilità dei pacchetti quando si usano più tipi di binding.Extension bundles removes the chance of having package compatibility issues when using multiple binding types. Si tratta dell'approccio consigliato per la registrazione delle estensioni di binding.It is the recommended approach for registering binding extensions. I bundle di estensione eliminano anche il requisito di installazione di .NET Core 2. x SDK.Extension bundles also removes the requirement of installing the .NET Core 2.x SDK.

Usare bundle di estensioneUse extension bundles

Il modo più semplice per installare le estensioni di binding è consentire aggregazioni di estensione.The easiest way to install binding extensions is to enable extension bundles. Quando si abilitano i bundle, viene installato automaticamente un set predefinito di pacchetti di estensioni.When you enable bundles, a predefined set of extension packages is automatically installed.

Per abilitare i bundle di estensioni, aprire il file host.json e aggiornarne il contenuto in modo che corrisponda al codice seguente: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)"
    }
}

Per altre informazioni, vedere registrare le estensioni di binding di funzioni di Azure.To learn more, see Register Azure Functions binding extensions. Prima di aggiungere binding al function.jssu file, è necessario aggiungere i bundle di estensione al host.js.You should add extension bundles to the host.json before you add bindings to the function.json file.

Installare le estensioni in modo esplicitoExplicitly install extensions

Se non si è in grado di usare i bundle di estensione, è possibile usare Azure Functions Core Tools localmente per installare i pacchetti di estensione specifici richiesti dal progetto.If you aren't able to use extension bundles, you can use Azure Functions Core Tools locally to install the specific extension packages required by your project.

Importante

Non è possibile installare in modo esplicito le estensioni in un'app per le funzioni che usa bundle di estensione.You can't explicitly install extensions in a function app that is using extension bundles. Rimuovere la extensionBundle sezione in host.jsprima di installare le estensioni in modo esplicito.Remove the extensionBundle section in host.json before explicitly installing extensions.

Gli elementi seguenti descrivono alcuni motivi per cui potrebbe essere necessario installare le estensioni manualmente:The following items describe some reasons you might need to install extensions manually:

  • È necessario accedere a una versione specifica di un'estensione non disponibile in un bundle.You need to access a specific version of an extension not available in a bundle.
  • È necessario accedere a un'estensione personalizzata non disponibile in un bundle.You need to access a custom extension not available in a bundle.
  • È necessario accedere a una combinazione specifica di estensioni non disponibili in un singolo bundle.You need to access a specific combination of extensions not available in a single bundle.

Nota

Per installare manualmente le estensioni usando gli strumenti di base, è necessario che sia installato .NET Core 2. x SDK .To manually install extensions by using Core Tools, you must have the .NET Core 2.x SDK installed. Il .NET Core SDK viene usato da Azure Functions Core Tools per installare le estensioni da NuGet.The .NET Core SDK is used by Azure Functions Core Tools to install extensions from NuGet. Non è necessario essere a conoscenza di .NET per usare le estensioni di funzioni di Azure.You don't need to know .NET to use Azure Functions extensions.

Quando si installano in modo esplicito le estensioni, un file di progetto .NET denominato Extensions. csproj viene aggiunto alla radice del progetto.When you explicitly install extensions, a .NET project file named extensions.csproj is added to the root of your project. Questo file definisce il set di pacchetti NuGet necessari per le funzioni.This file defines the set of NuGet packages required by your functions. Sebbene sia possibile usare i riferimenti ai pacchetti NuGet in questo file, Core Tools consente di installare le estensioni senza dover modificare manualmente il file.While you can work with the NuGet package references in this file, Core Tools lets you install extensions without having to manually edit the file.

Esistono diversi modi per usare gli strumenti di base per installare le estensioni necessarie nel progetto locale.There are several ways to use Core Tools to install the required extensions in your local project.

Installare tutte le estensioniInstall all extensions

Usare il comando seguente per aggiungere automaticamente tutti i pacchetti di estensione usati dalle associazioni nel progetto locale:Use the following command to automatically add all extension packages used by the bindings in your local project:

func extensions install

Il comando legge il function.jssu file per vedere quali pacchetti sono necessari, li installa e ricompila il progetto Extensions (Extensions. csproj).The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project (extensions.csproj). Consente di aggiungere eventuali nuove associazioni alla versione corrente, ma non aggiorna le associazioni esistenti.It adds any new bindings at the current version but does not update existing bindings. Usare l'opzione --force per aggiornare le associazioni esistenti alla versione più recente quando si installano quelle nuove.Use the --force option to update existing bindings to the latest version when installing new ones.

Se l'app per le funzioni USA associazioni non riconosciute dagli strumenti di base, è necessario installare manualmente l'estensione specifica.If your function app uses bindings that Core Tools does not recognize, you must manually install the specific extension.

Installare un'estensione specificaInstall a specific extension

Usare il comando seguente per installare un pacchetto di estensione specifico in una versione specifica, in questo caso l'estensione di archiviazione:Use the following command to install a specific extension package at a specific version, in this case the Storage extension:

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

File di impostazioni localiLocal settings file

Nel file local.settings.json sono archiviate le impostazioni dell'app, le stringhe di connessione e le impostazioni usate dagli strumenti di sviluppo locali.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. Le impostazioni nel file local.settings.json vengono usate solo quando i progetti sono in esecuzione in locale.Settings in the local.settings.json file are used only when you're running projects locally. La struttura del file di impostazioni locali è la seguente: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>",
    "AzureWebJobs.HttpExample.Disabled": "true"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

Queste impostazioni sono supportate quando si eseguono progetti in locale:These settings are supported when you run projects locally:

ImpostazioneSetting DescrizioneDescription
IsEncrypted Quando questa impostazione è impostata su true, tutti i valori vengono crittografati con una chiave del computer locale.When this setting is set to true, all values are encrypted with a local machine key. Usato con i comandi func settings.Used with func settings commands. Il valore predefinito è false.Default value is false. Potrebbe essere necessario crittografare il file local.settings.json nel computer locale quando contiene segreti, ad esempio le stringhe di connessione al servizio.You might want to encrypt the local.settings.json file on your local computer when it contains secrets, such as service connection strings. L'host decrittografa automaticamente le impostazioni durante l'esecuzione.The host automatically decrypts settings when it runs. Usare il comando func settings decrypt prima di provare a leggere le impostazioni crittografate in locale.Use the func settings decrypt command before trying to read locally encrypted settings.
Values Matrice di impostazioni dell'applicazione e stringhe di connessioni usate durante l'esecuzione di un progetto in locale.Array of application settings and connection strings used when a project is running locally. Queste coppie chiave-valore (stringa-stringa) corrispondono alle impostazioni dell'applicazione nell'app per le funzioni in Azure, ad esempio AzureWebJobsStorage.These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Molti trigger e associazioni includono una proprietà che fa riferimento a un'impostazione di app per la stringa di connessione, ad esempio Connection per il trigger di archiviazione BLOB.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. Per queste proprietà è necessaria un'impostazione dell'applicazione definita nella matrice Values.For these properties, you need an application setting defined in the Values array. Vedere la tabella successiva per un elenco di impostazioni usate di frequente.See the subsequent table for a list of commonly used settings.
I valori devono essere stringhe e non oggetti o matrici JSON.Values must be strings and not JSON objects or arrays. I nomi delle impostazioni non possono includere i due punti (:) o una doppia sottolineatura (__).Setting names can't include a colon (:) or a double underline (__). I caratteri di sottolineatura doppia sono riservati dal runtime e i due punti sono riservati per supportare l'inserimento delle dipendenze.Double underline characters are reserved by the runtime, and the colon is reserved to support dependency injection.
Host Le impostazioni in questa sezione consentono di personalizzare il processo host di Funzioni durante l'esecuzione dei progetti in locale.Settings in this section customize the Functions host process when you run projects locally. Queste impostazioni sono distinte da quelle del file host.json, che vengono applicate anche quando si eseguono progetti in Azure.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Consente di impostare la porta predefinita usata durante l'esecuzione nell'host locale di Funzioni, ovvero func host start e func run.Sets the default port used when running the local Functions host (func host start and func run). L'opzione --port della riga di comando ha la precedenza su questa impostazione.The --port command-line option takes precedence over this setting.
CORS Definisce le origini consentite per la condivisione di risorse tra le origini (CORS).Defines the origins allowed for cross-origin resource sharing (CORS). Le origini sono elencate in un elenco delimitato dalla virgola senza spazi.Origins are supplied as a comma-separated list with no spaces. È supportato il valore del carattere jolly (*) che consente le richieste di qualsiasi origine.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials Quando è impostata su true, consente le richieste withCredentials.When set to true, allows withCredentials requests.
ConnectionStrings Raccolta.A collection. Non usare questa raccolta per le stringhe di connessione usate per le associazioni di funzione.Don't use this collection for the connection strings used by your function bindings. Questa raccolta viene usata solo dai framework che in genere ottengono le stringhe di connessione dalla sezione ConnectionStrings di un file di configurazione, ad esempio 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. Le stringhe di connessione in questo oggetto vengono aggiunte all'ambiente con il tipo di provider di System.Data.SqlClient.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Gli elementi in questa raccolta non vengono pubblicati in Azure con altre impostazioni di app.Items in this collection aren't published to Azure with other app settings. È necessario aggiungere questi valori in modo esplicito alla raccolta Connection strings delle impostazioni dell'app per le funzioni.You must explicitly add these values to the Connection strings collection of your function app settings. Se si crea una connessione SqlConnection nel codice di funzione, è consigliabile archiviare il valore della stringa di connessione insieme alle altre connessioni in Impostazione applicazione nel portale.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.

Le impostazioni dell'applicazione seguenti possono essere incluse nella matrice Values durante l'esecuzione in locale:The following application settings can be included in the Values array when running locally:

ImpostazioneSetting ValoriValues DescrizioneDescription
AzureWebJobsStorage Stringa di connessione dell'account di archiviazione oppureStorage account connection string, or
UseDevelopmentStorage=true
Contiene la stringa di connessione per un account di archiviazione di Azure.Contains the connection string for an Azure storage account. Obbligatoria quando si usano trigger diversi da HTTP.Required when using triggers other than HTTP. Vedere le informazioni di riferimento per AzureWebJobsStorage.For more information, see the AzureWebJobsStorage reference.
Core Tools usa l'emulatore di archiviazione di Azure una volta installato in locale e se si imposta AzureWebJobsStorage su UseDevelopmentStorage=true.When you have the Azure Storage Emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. L'emulatore è utile durante lo sviluppo, ma è consigliabile eseguire test con una connessione di archiviazione effettiva prima della distribuzione.The emulator is useful during development, but you should test with an actual storage connection before deployment.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false Per disabilitare una funzione durante l'esecuzione in locale, aggiungere "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" alla raccolta, dove <FUNCTION_NAME> è il nome della funzione.To disable a function when running locally, add "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" to the collection, where <FUNCTION_NAME> is the name of the function. Per altre informazioni, vedere Come disabilitare le funzioni in Funzioni di AzureTo learn more, see How to disable functions in Azure Functions
FUNCTIONS_WORKER_RUNTIME dotnet
node
java
powershell
python
Indica il linguaggio di destinazione del runtime di Funzioni.Indicates the targeted language of the Functions runtime. Obbligatoria per la versione 2.x e successive del runtime di Funzioni.Required for version 2.x and higher of the Functions runtime. Questa impostazione viene generata per il progetto da Core Tools.This setting is generated for your project by Core Tools. Vedere le informazioni di riferimento per FUNCTIONS_WORKER_RUNTIME.To learn more, see the FUNCTIONS_WORKER_RUNTIME reference.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 Indica che deve essere usato PowerShell 7 durante l'esecuzione in locale.Indicates that PowerShell 7 be used when running locally. Se non è impostata, viene usato PowerShell Core 6.If not set, then PowerShell Core 6 is used. Questa impostazione viene usata solo durante l'esecuzione in locale.This setting is only used when running locally. Per l'esecuzione in Azure, la versione del runtime di PowerShell è determinata dall'impostazione di configurazione del sito powerShellVersion, che può essere specificata nel portale.When running in Azure, the PowerShell runtime version is determined by the powerShellVersion site configuration setting, which can be set in the portal.

Per impostazione predefinita, queste impostazioni non vengono migrate automaticamente quando il progetto viene pubblicato in Azure.By default, these settings are not migrated automatically when the project is published to Azure. Utilizzare lo switch --publish-local-settingsdurante la pubblicazione per assicurarsi che queste impostazioni vengano aggiunte all'app della funzione in Azure.Use the --publish-local-settings switch when you publish to make sure these settings are added to the function app in Azure. Si noti che i valori in ConnectionStrings non vengono mai pubblicati.Note that values in ConnectionStrings are never published.

I valori delle impostazioni dell'app di funzione possono anche essere letti nel codice come variabili di ambiente.The function app settings values can also be read in your code as environment variables. Per altre informazioni, vedere la sezione Variabili di ambiente negli argomenti di riferimento specifici del linguaggio seguenti:For more information, see the Environment variables section of these language-specific reference topics:

Quando non è impostata alcuna stringa di connessione di archiviazione valida per AzureWebJobsStorage e l'emulatore non viene usato, viene visualizzato il messaggio di errore seguente:When no valid storage connection string is set for AzureWebJobsStorage and the emulator isn't being used, the following error message is shown:

Valore mancante per AzureWebJobsStorage in local.settings.json.Missing value for AzureWebJobsStorage in local.settings.json. È necessario per tutti i trigger diversi da HTTP.This is required for all triggers other than HTTP. È possibile eseguire "func azure functionapp fetch-app-settings <functionAppName>" o specificare una stringa di connessione in local.settings.json.You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.

Ottenere le stringhe di connessione di archiviazioneGet your storage connection strings

Anche quando si usa la Emulatore di archiviazione di Microsoft Azure per lo sviluppo, è consigliabile eseguire il test con una connessione di archiviazione effettiva.Even when using the Microsoft Azure Storage Emulator for development, you may want to test with an actual storage connection. Se si dispone che si è già creato un account di archiviazione, è possibile ottenere una stringa di connessione di archiviazione valida in uno dei modi seguenti:Assuming you have already created a storage account, you can get a valid storage connection string in one of the following ways:

  • Dalla [portale di Azure]cercare e selezionare account di archiviazione.From the Azure portal, search for and select Storage accounts. Selezionare gli account di archiviazione da portale di AzureSelect Storage accounts from Azure portal

    Selezionare l'account di archiviazione, selezionare chiavi di accesso in Impostazioni, quindi copiare uno dei valori della stringa di connessione .Select your storage account, select Access keys in Settings, then copy one of the Connection string values. Copiare la stringa di connessione dal portale di AzureCopy connection string from Azure portal

  • Usare Azure Storage Explorer per collegarsi all'account di Azure.Use Azure Storage Explorer to connect to your Azure account. Nella finestra di esplorazione espandere la sottoscrizione, espandere account di archiviazione, selezionare l'account di archiviazione e copiare la stringa di connessione primaria o secondaria.In the Explorer, expand your subscription, expand Storage Accounts, select your storage account, and copy the primary or secondary connection string.

    Copiare la stringa di connessione da Storage Explorer

  • Usare gli strumenti di base dalla radice del progetto per scaricare la stringa di connessione da Azure con uno dei comandi seguenti:Use Core Tools from the project root to download the connection string from Azure with one of the following commands:

    • Scaricare tutte le impostazioni di un'app di funzione esistente:Download all settings from an existing function app:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • Ottenere la stringa di connessione per uno specifico account di archiviazione:Get the Connection string for a specific storage account:

      func azure storage fetch-connection-string <StorageAccountName>
      

      Quando non è già stato effettuato l'accesso ad Azure, viene richiesto di eseguire questa operazione.When you aren't already signed in to Azure, you're prompted to do so. Questi comandi sovrascrivono le impostazioni esistenti nel local.settings.jssu file.These commands overwrite any existing settings in the local.settings.json file.

Creare una funzioneCreate a function

Eseguire il comando seguente per creare una funzione:To create a function, run the following command:

func new

Nella versione 3. x/2. x, quando si esegue viene func new richiesto di scegliere un modello nella lingua predefinita dell'app per le funzioni, viene inoltre richiesto di scegliere un nome per la funzione.In version 3.x/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. Nella versione 1.x, viene anche richiesto di scegliere la lingua.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

Il codice della funzione viene generato in una sottocartella con il nome della funzione fornito, come è possibile vedere nell'output del trigger della coda seguente: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

È anche possibile specificare queste opzioni nel comando usando gli argomenti seguenti:You can also specify these options in the command using the following arguments:

ArgomentoArgument DescrizioneDescription
--csx (Versione 2. x e versioni successive). Genera gli stessi modelli di script C# (. CSX) usati nella versione 1. x e nel portale.(Version 2.x and later versions.) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--language, -l--language, -l Il linguaggio di programmazione del modello, come C#, F# o JavaScript.The template programming language, such as C#, F#, or JavaScript. Questa opzione è necessaria nella versione 1.x.This option is required in version 1.x. Nella versione 2. x e versioni successive, non usare questa opzione o scegliere una lingua corrispondente al runtime del ruolo di lavoro.In version 2.x and later versions, do not use this option or choose a language that matches the worker runtime.
--name, -n--name, -n Nome della funzione.The function name.
--template, -t--template, -t Usare il comando func templates list per visualizzare l'elenco completo dei modelli disponibili per ogni linguaggio supportato.Use the func templates list command to see the complete list of available templates for each supported language.

Ad esempio, per creare un trigger HTTP JavaScript in un singolo comando, eseguire:For example, to create a JavaScript HTTP trigger in a single command, run:

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

Per creare una funzione attivata dalla coda in un singolo comando, eseguire:To create a queue-triggered function in a single command, run:

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

Eseguire funzioni localmenteRun functions locally

Per eseguire un progetto Funzioni, eseguire l'host di Funzioni.To run a Functions project, run the Functions host. L'host Abilita i trigger per tutte le funzioni del progetto.The host enables triggers for all functions in the project. Il comando di avvio varia a seconda del linguaggio del progetto.The start command varies, depending on your project language.

func start --build

Nota

La versione 1. x del runtime di funzioni richiede il host comando, come nell'esempio seguente:Version 1.x of the Functions runtime requires the host command, as in the following example:

func host start

func start supporta le opzioni seguenti:func start supports the following options:

OpzioneOption DescrizioneDescription
--no-build Per il progetto corrente non viene creata una build prima dell'esecuzione.Do no build current project before running. Solo per progetti dotnet.For dotnet projects only. Il valore predefinito è false.Default is set to false. Non supportato per la versione 1. x.Not supported for version 1.x.
--cors-credentials Consenti le richieste autenticate tra le origini, ad esempio i cookie e l'intestazione di autenticazione, non sono supportate per la versione 1. x.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Not supported for version 1.x.
--cors Un elenco delimitato dalla virgola di origini CORS, senza spazi.A comma-separated list of CORS origins, with no spaces.
--language-worker Argomenti per configurare il ruolo di lavoro del linguaggio.Arguments to configure the language worker. Ad esempio, è possibile abilitare il debug per Language Worker fornendo la porta di debug e altri argomenti obbligatori.For example, you may enable debugging for language worker by providing debug port and other required arguments. Non supportato per la versione 1. x.Not supported for version 1.x.
--cert Il percorso in un file con estensione pfx che contiene una chiave privata.The path to a .pfx file that contains a private key. Usati solo con --useHttps.Only used with --useHttps. Non supportato per la versione 1. x.Not supported for version 1.x.
--password La password o un file che contiene la password per un file con estensione pfx.Either the password or a file that contains the password for a .pfx file. Usati solo con --cert.Only used with --cert. Non supportato per la versione 1. x.Not supported for version 1.x.
--port, -p--port, -p La porta locale su cui ascoltare.The local port to listen on. Valore predefinito: 7071.Default value: 7071.
--pause-on-error Sospendere per l'input aggiuntivo prima dell'uscita dal processo.Pause for additional input before exiting the process. Viene usato quando si avvia Core Tools da un ambiente di sviluppo integrato (IDE).Used only when launching Core Tools from an integrated development environment (IDE).
--script-root, --prefix--script-root, --prefix Viene usato per specificare il percorso della radice dell'app per le funzioni da eseguire o distribuire.Used to specify the path to the root of the function app that is to be run or deployed. Viene usato per progetti compilati che generano file di progetto in una sottocartella.This is used for compiled projects that generate project files into a subfolder. Ad esempio, quando si crea un progetto di libreria di classi C#, i file host.json, local.settings.json e function.json vengono generati in una sottocartella radice con un percorso simile a 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. In questo caso, impostare il prefisso come --script-root MyProject/bin/Debug/netstandard2.0.In this case, set the prefix as --script-root MyProject/bin/Debug/netstandard2.0. Questa è la radice dell'app per le funzioni durante l'esecuzione in Azure.This is the root of the function app when running in Azure.
--timeout, -t--timeout, -t Il timeout per l'host di Funzioni da avviare, in secondi.The timeout for the Functions host to start, in seconds. Impostazione predefinita: 20 secondi.Default: 20 seconds.
--useHttps Eseguire l'associazione a https://localhost:{port} anziché a http://localhost:{port}.Bind to https://localhost:{port} rather than to http://localhost:{port}. Per impostazione predefinita, questa opzione crea un certificato attendibile nel computer in uso.By default, this option creates a trusted certificate on your computer.

Quando viene avviato l'host di Funzioni, restituisce come output l'URL delle funzioni attivate da HTTP: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

Importante

Durante l'esecuzione in locale, l'autorizzazione non viene applicata per gli endpoint HTTP.When running locally, authorization isn't enforced for HTTP endpoints. Questo significa che tutte le richieste HTTP locali vengono gestite come authLevel = "anonymous".This means that all local HTTP requests are handled as authLevel = "anonymous". Per altre informazioni, vedere l'articolo sul binding HTTP.For more information, see the HTTP binding article.

Passaggio di dati di test a una funzionePassing test data to a function

Per testare le funzioni localmente, avviare l'host di Funzioni e chiamare gli endpoint nel server locale usando richieste HTTP.To test your functions locally, you start the Functions host and call endpoints on the local server using HTTP requests. L'endpoint chiamato dipende dal tipo di funzione.The endpoint you call depends on the type of function.

Nota

Gli esempi in questo argomento usano lo strumento cURL per inviare richieste HTTP dal terminale o da un prompt dei comandi.Examples in this topic use the cURL tool to send HTTP requests from the terminal or a command prompt. È possibile usare lo strumento preferito per inviare richieste HTTP al server locale.You can use a tool of your choice to send HTTP requests to the local server. Lo strumento cURL è disponibile per impostazione predefinita nei sistemi basati su Linux e in Windows 10 Build 17063 e versioni successive.The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. Nelle finestre precedenti è necessario prima scaricare e installare lo strumento curl.On older Windows, you must first download and install the cURL tool.

Per informazioni più generali sui test delle funzioni, vedere Strategie per il test del codice in Funzioni di Azure.For more general information on testing functions, see Strategies for testing your code in Azure Functions.

Funzioni attivate tramite HTTP e webhookHTTP and webhook triggered functions

È possibile chiamare l'endpoint seguente per eseguire localmente funzioni attivate tramite HTTP e webhook:You call the following endpoint to locally run HTTP and webhook triggered functions:

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

Assicurarsi di usare lo stesso nome server e la stessa porta su cui è in ascolto l'host di Funzioni.Make sure to use the same server name and port that the Functions host is listening on. Questi valori sono visualizzati nell'output generato all'avvio dell'host di Funzioni.You see this in the output generated when starting the Function host. È possibile chiamare questo URL usando qualsiasi metodo HTTP supportato dal trigger.You can call this URL using any HTTP method supported by the trigger.

Il comando cURL seguente attiva la funzione di avvio rapido MyHttpTrigger da una richiesta GET con il parametro name passato nella stringa di query.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

L'esempio seguente è la stessa funzione chiamata da una richiesta POST passando name nel corpo della richiesta: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"}'

È possibile effettuare richieste GET da un browser passando dati nella stringa di query.You can make GET requests from a browser passing data in the query string. Per tutti gli altri metodi HTTP è necessario usare cURL, Fiddler, Postman o uno strumento analogo per i test HTTP.For all other HTTP methods, you must use cURL, Fiddler, Postman, or a similar HTTP testing tool.

Funzione attivate non da HTTPNon-HTTP triggered functions

Per tutti i tipi di funzioni diverse da trigger HTTP e webhook e trigger di griglia di eventi, è possibile testare localmente le funzioni chiamando un endpoint di amministrazione.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. Chiamando questo endpoint con una richiesta HTTP POST sul server locale si attiva la funzione.Calling this endpoint with an HTTP POST request on the local server triggers the function.

Per testare localmente le funzioni attivate da griglia di eventi, vedere local Testing with Viewer Web App.To test Event Grid triggered functions locally, see Local testing with viewer web app.

È facoltativamente possibile passare dati di test all'esecuzione nel corpo del messaggio della richiesta POST.You can optionally pass test data to the execution in the body of the POST request. Questa funzionalità è analoga alla scheda Test del portale di Azure.This functionality is similar to the Test tab in the Azure portal.

Chiamare l'endpoint di amministrazione seguente per attivare funzioni non HTTP:You call the following administrator endpoint to trigger non-HTTP functions:

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

Per passare dati di test all'endpoint di amministrazione di una funzione, è necessario fornire i dati nel corpo di un messaggio di richiesta POST.To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. Il corpo del messaggio deve avere il formato JSON seguente:The message body is required to have the following JSON format:

{
    "input": "<trigger_input>"
}

Il valore <trigger_input> contiene dati nel formato previsto dalla funzione.The <trigger_input> value contains data in a format expected by the function. L'esempio cURL seguente è una richiesta POST per una funzione QueueTriggerJS.The following cURL example is a POST to a QueueTriggerJS function. In questo caso l'input è una stringa che equivale al messaggio previsto nella coda.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

Utilizzando il func run comando (solo versione 1. x)Using the func run command (version 1.x only)

Importante

Il func run comando è supportato solo nella versione 1. x degli strumenti.The func run command is only supported in version 1.x of the tools. Per altre informazioni, vedere l'argomento Come specificare le versioni del runtime per Funzioni di Azure.For more information, see the topic How to target Azure Functions runtime versions.

Nella versione 1. x, è anche possibile richiamare una funzione direttamente usando func run <FunctionName> e fornire i dati di input per la funzione.In version 1.x, you can also invoke a function directly by using func run <FunctionName> and provide input data for the function. Questo comando è simile all'esecuzione di una funzione con la scheda Test nel portale di Azure.This command is similar to running a function using the Test tab in the Azure portal.

func run supporta le opzioni seguenti:func run supports the following options:

OpzioneOption DescrizioneDescription
--content, -c--content, -c Contenuto inline.Inline content.
--debug, -d--debug, -d Associare un debugger al processo host prima di eseguire la funzione.Attach a debugger to the host process before running the function.
--timeout, -t--timeout, -t Tempo di attesa (in secondi) fino a quando l'host locale di Funzioni è pronto.Time to wait (in seconds) until the local Functions host is ready.
--file, -f--file, -f Il nome del file da usare come contenuto.The file name to use as content.
--no-interactive Non richiede input.Does not prompt for input. Utile per scenari di automazione.Useful for automation scenarios.

Ad esempio, per chiamare una funzione attivata da HTTP e passare il corpo del contenuto, eseguire il comando seguente:For example, to call an HTTP-triggered function and pass content body, run the following command:

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

Pubblicare in AzurePublish to Azure

Il Azure Functions Core Tools supporta due tipi di distribuzione: la distribuzione di file di progetto di funzione direttamente nell'app per le funzioni tramite la distribuzione zip e la distribuzione di un contenitore Docker personalizzato.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. È necessario avere già creato un'app per le funzioni nella sottoscrizione di Azurein cui verrà distribuito il codice.You must have already created a function app in your Azure subscription, to which you'll deploy your code. I progetti che richiedono la compilazione devono essere compilati in modo che i file binari possano essere distribuiti.Projects that require compilation should be built so that the binaries can be deployed.

Importante

È necessario che l' interfaccia della riga di comando di Azure o Azure PowerShell sia installata localmente per poter eseguire la pubblicazione in Azure da strumenti di base.You must have the Azure CLI or Azure PowerShell installed locally to be able to publish to Azure from Core Tools.

Una cartella di progetto può contenere file e directory specifici della lingua che non devono essere pubblicati.A project folder may contain language-specific files and directories that shouldn't be published. Gli elementi esclusi vengono elencati in un file con estensione funcignore nella cartella radice del progetto.Excluded items are listed in a .funcignore file in the root project folder.

Distribuire i file di progettoDeploy project files

Per pubblicare il codice locale in un'app per le funzioni in Azure, usare il comando publish:To publish your local code to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

Importante

Java USA Maven per pubblicare il progetto locale in Azure.Java uses Maven to publish your local project to Azure. Usare il comando seguente per pubblicare in Azure: mvn azure-functions:deploy .Use the following command to publish to Azure: mvn azure-functions:deploy. Le risorse di Azure vengono create durante la distribuzione iniziale.Azure resources are created during initial deployment.

Questo comando consente di pubblicare un'app per le funzioni esistente in Azure.This command publishes to an existing function app in Azure. Se si prova a pubblicare in un <FunctionAppName> che non esiste nella sottoscrizione, viene ricevuto un errore.You'll get an error if you try to publish to a <FunctionAppName> that doesn't exist in your subscription. Per informazioni su come creare un'app per le funzioni dal prompt dei comandi o dalla finestra del terminale usando l'interfaccia della riga di comando di Azure o Azure PowerShell, vedere creare un app per le funzioni per l'esecuzione senza server.To learn how to create a function app from the command prompt or terminal window using the Azure CLI or Azure PowerShell, see Create a Function App for serverless execution. Per impostazione predefinita, questo comando usa la compilazione remota e distribuisce l'app per l'esecuzione dal pacchetto di distribuzione.By default, this command uses remote build and deploys your app to run from the deployment package. Per disabilitare la modalità di distribuzione consigliata, utilizzare l' --nozip opzione.To disable this recommended deployment mode, use the --nozip option.

Importante

Quando si crea un'app per le funzioni nella portale di Azure, per impostazione predefinita viene usata la versione 3. x del runtime di funzione.When you create a function app in the Azure portal, it uses version 3.x of the Function runtime by default. Per far eseguire la versione 1.x del runtime all'app per le funzioni, osservare le istruzioni riportate in Run on version 1.x (Esecuzione sulla versione 1.x).To make the function app use version 1.x of the runtime, follow the instructions in Run on version 1.x. Non è possibile modificare la versione di runtime per un'app per le funzioni che ha funzioni esistenti.You can't change the runtime version for a function app that has existing functions.

Le seguenti opzioni di pubblicazione si applicano a tutte le versioni:The following publish options apply for all versions:

OpzioneOption DescrizioneDescription
--publish-local-settings -i Pubblicare le impostazioni di local.settings.json in Azure, suggerendo di sovrascrivere eventuali impostazioni esistenti.Publish settings in local.settings.json to Azure, prompting to overwrite if the setting already exists. Se si usa il Emulatore di archiviazione di Microsoft Azure, modificare prima l'impostazione dell'app in una connessione di archiviazione effettiva.If you are using the Microsoft Azure Storage Emulator, first change the app setting to an actual storage connection.
--overwrite-settings -y Eliminare il prompt per sovrascrivere le impostazioni dell'app quando si usa --publish-local-settings -i.Suppress the prompt to overwrite app settings when --publish-local-settings -i is used.

Le opzioni di pubblicazione seguenti sono supportate solo per la versione 2. x e le versioni successive:The following publish options are supported only for version 2.x and later versions:

OpzioneOption DescrizioneDescription
--publish-settings-only, -o--publish-settings-only, -o Pubblicare solo le impostazioni e ignorare il contenuto.Only publish settings and skip the content. Viene suggerito il valore predefinito.Default is prompt.
--list-ignored-files Visualizza un elenco di file che vengono ignorati durante la pubblicazione basato sul file con estensione funcignore.Displays a list of files that are ignored during publishing, which is based on the .funcignore file.
--list-included-files Visualizza un elenco di file che vengono pubblicati basato sul file con estensione .funcignore.Displays a list of files that are published, which is based on the .funcignore file.
--nozip Disattiva la modalità Run-From-Package predefinita.Turns the default Run-From-Package mode off.
--build-native-deps Ignora la generazione della cartella. Wheels durante la pubblicazione di app per le funzioni Python.Skips generating .wheels folder when publishing Python function apps.
--build, -b--build, -b Esegue un'azione di compilazione durante la distribuzione in un'app per le funzioni Linux.Performs build action when deploying to a Linux function app. Accetta: remote e local .Accepts: remote and local.
--additional-packages Elenco di pacchetti da installare durante la creazione di dipendenze native.List of packages to install when building native dependencies. Ad esempio: python3-dev libevent-dev.For example: python3-dev libevent-dev.
--force Ignora la verifica preliminare alla pubblicazione in determinati scenari.Ignore pre-publishing verification in certain scenarios.
--csx Pubblica un progetto di script C# (file con estensione csx).Publish a C# script (.csx) project.
--no-build Il progetto non viene compilato durante la pubblicazione.Project isn't built during publishing. Per Python pip install non viene eseguito.For Python, pip install isn't performed.
--dotnet-cli-params Quando si pubblicano funzioni C# compilate (con estensione csproj), Core Tools chiama "dotnet build --output bin/publish".When publishing compiled C# (.csproj) functions, the core tools calls 'dotnet build --output bin/publish'. Tutti i parametri passati a questa opzione verranno aggiunti alla riga di comando.Any parameters passed to this will be appended to the command line.

Distribuire un contenitore personalizzatoDeploy custom container

Funzioni di Azure consente di distribuire il progetto di funzione in un contenitore Docker personalizzato.Azure Functions lets you deploy your function project in a custom Docker container. Per altre informazioni, consultare Creare una funzione in Linux tramite un'immagine personalizzata (anteprima).For more information, see Create a function on Linux using a custom image. I contenitori personalizzati devono disporre di un Dockerfile.Custom containers must have a Dockerfile. Per creare un'app con un Dockerfile, usare l'opzione--Dockerfile in func init .To create an app with a Dockerfile, use the --dockerfile option on func init.

func deploy

Sono disponibili le opzioni di distribuzione del contenitore personalizzato seguenti:The following custom container deployment options are available:

OpzioneOption DescrizioneDescription
--registry Il nome di un registro Docker a cui l'utente corrente ha eseguito l'accesso.The name of a Docker Registry the current user signed-in to.
--platform Piattaforma di hosting per le app per le funzioni.Hosting platform for the function app. Le opzioni valide sono kubernetesValid options are kubernetes
--name Nome dell'app per le funzioni.Function app name.
--max Facoltativamente, imposta il numero massimo di istanze di app per le funzioni su cui eseguire la distribuzione.Optionally, sets the maximum number of function app instances to deploy to.
--min Facoltativamente, imposta il numero minimo di istanze di app per le funzioni su cui eseguire la distribuzione.Optionally, sets the minimum number of function app instances to deploy to.
--config Imposta un file di configurazione della distribuzione opzionale.Sets an optional deployment configuration file.

Monitoraggio delle funzioniMonitoring functions

Il modo consigliato per monitorare l'esecuzione delle funzioni è l'integrazione con applicazione Azure Insights.The recommended way to monitor the execution of your functions is by integrating with Azure Application Insights. È anche possibile eseguire lo streaming dei log di esecuzione nel computer locale.You can also stream execution logs to your local computer. Per altre informazioni, vedere Monitorare Funzioni di Azure.To learn more, see Monitor Azure Functions.

Integrazione di Application InsightsApplication Insights integration

L'integrazione di Application Insights deve essere abilitata quando si crea l'app per le funzioni in Azure.Application Insights integration should be enabled when you create your function app in Azure. Se per qualche motivo l'app per le funzioni non è connessa a un'istanza di Application Insights, è facile eseguire questa integrazione nel portale di Azure.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. Per altre informazioni, vedere Enable Application Insights Integration.To learn more, see Enable Application Insights integration.

Abilitare i log in streamingEnable streaming logs

È possibile visualizzare un flusso di file di log generati dalle funzioni in una sessione della riga di comando nel computer locale.You can view a stream of log files being generated by your functions in a command-line session on your local computer.

Streaming dei log predefinitoBuilt-in log streaming

Usare l'opzione logstream per iniziare a ricevere i log in streaming di una specifica app per le funzioni in esecuzione in Azure, come nell'esempio seguente: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>

Nota

Lo streaming di log predefinito non è ancora abilitato in Core Tools per le app per le funzioni in esecuzione in Linux con un piano a consumo.Built-in log streaming isn't yet enabled in Core Tools for function apps running on Linux in a Consumption plan. Per questi piani di hosting, è invece necessario usare Live Metrics Stream per visualizzare i log quasi in tempo reale.For these hosting plans, you instead need to use Live Metrics Stream to view the logs in near-real time.

Flusso di metriche liveLive Metrics Stream

È possibile visualizzare Live Metrics Stream per l'app per le funzioni in una nuova finestra del browser includendo l'opzione --browser, come nell'esempio seguente:You can 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

Questo tipo di log di streaming richiede l'abilitazione dell'integrazione di Application Insights per l'app per le funzioni.This type of streaming logs requires that Application Insights integration be enabled for your function app.

Passaggi successiviNext steps

Scopri come sviluppare, testare e pubblicare funzioni di Azure usando Azure Functions Core Tools modulo Microsoft learn Azure Functions Core Tools è Open Source e ospitato su 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.
Per registrare una richiesta per un bug o una funzionalità aprire un problema di GitHub.To file a bug or feature request, open a GitHub issue.