Azure Functions Core Tools ile çalışmaWork with Azure Functions Core Tools

Azure Functions Core Tools, yerel bilgisayarınızda komut isteminden veya terminalden işlevlerinizi geliştirip test etmenize olanak tanır.Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. Yerel işlevleriniz canlı Azure hizmetlerine bağlanabilir ve tüm Işlevler çalışma zamanını kullanarak işlevlerinizi yerel bilgisayarınızdaki hata ayıklaması yapabilirsiniz.Your local functions can connect to live Azure services, and you can debug your functions on your local computer using the full Functions runtime. Hatta, Azure aboneliğinize bir işlev uygulaması dağıtabilirsiniz.You can even deploy a function app to your Azure subscription.

Önemli

Aynı işlev uygulamasında Portal geliştirmeyle yerel geliştirme karışmayın.Do not mix local development with portal development in the same function app. Yerel bir projeden işlevler oluşturup yayımladığınızda, portalda proje kodunu sürdürme veya değiştirme denemeniz gerekir.When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

Yerel bilgisayarınızda işlevleri geliştirme ve temel araçları kullanarak bunları Azure 'da yayımlama aşağıdaki temel adımları izler:Developing functions on your local computer and publishing them to Azure using Core Tools follows these basic steps:

Core Tools sürümleriCore Tools versions

Azure Functions Core Tools üç sürümü vardır.There are three versions of Azure Functions Core Tools. Kullandığınız sürüm yerel geliştirme ortamınıza, dil seçimineve gerekli destek düzeyine bağlıdır:The version you use depends on your local development environment, choice of language, and level of support required:

Belirli bir bilgisayara yalnızca bir temel araçlar sürümü yükleyebilirsiniz.You can only install one version of Core Tools on a given computer. Aksi belirtilmedikçe, bu makaledeki örnekler sürüm 3. x içindir.Unless otherwise noted, the examples in this article are for version 3.x.

ÖnkoşullarPrerequisites

Azure Functions Core Tools Şu anda Azure hesabınızda kimlik doğrulaması için Azure CLı 'ye bağımlıdır.Azure Functions Core Tools currently depends on the Azure CLI for authenticating with your Azure account. Bu, Azure CLı 'yı Azure Functions Core Tools 'ten Azure 'a yayımlayabilmek için yerel olarak kurmanız gerektiği anlamına gelir.This means that you must install the Azure CLI locally to be able to publish to Azure from Azure Functions Core Tools.

Azure Functions Core Tools’u YüklemeInstall the Azure Functions Core Tools

Azure Functions Core Tools , yerel geliştirme bilgisayarınızda çalıştırabileceğiniz Azure işlevleri çalışma zamanını destekleyen aynı çalışma zamanının bir sürümünü içerir.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. Ayrıca işlevler oluşturmak, Azure 'a bağlanmak ve işlev projelerini dağıtmak için komutlar sağlar.It also provides commands to create functions, connect to Azure, and deploy function projects.

Sürüm 3. x ve 2. xVersion 3.x and 2.x

Araçların sürüm 3. x/2. x, .NET Core üzerinde oluşturulan Azure Işlevleri çalışma zamanını kullanır.Version 3.x/2.x of the tools uses the Azure Functions runtime that is built on .NET Core. Bu sürüm, Windows, MacOSve Linuxdahil tüm platformlarda .NET Core desteği için desteklenir.This version is supported on all platforms .NET Core supports, including Windows, macOS, and Linux.

Önemli

[Uzantı paketleri]'ni kullanarak .NET Core SDK yükleme gereksinimini atlayabilirsiniz.You can bypass the requirement for installing the .NET Core SDK by using extension bundles.

Aşağıdaki adımlarda, v3. x temel araçları yüklemek için bir Windows Installer (MSI) kullanılır.The following steps use a Windows installer (MSI) to install Core Tools v3.x. Çekirdek araçları v2. x ' i yüklemek için gereken diğer paket tabanlı yükleyiciler hakkında daha fazla bilgi için bkz. temel araçlar Benioku.For more information about other package-based installers, which are required to install Core Tools v2.x, see the Core Tools readme.

  1. Windows sürümünüze bağlı olarak temel araçlar yükleyicisini indirip çalıştırın:Download and run the Core Tools installer, based on your version of Windows:

  2. Uzantı paketlerikullanmayı planlamıyorsanız, Windows için .NET Core 3. x SDK 'sınıyükleyebilirsiniz.If you don't plan to use extension bundles, install the .NET Core 3.x SDK for Windows.

Yerel Işlevler projesi oluşturmaCreate a local Functions project

İşlevler proje dizini, her bir işlev için kodu içeren alt klasörlerle birlikte, üzerindehost.js ve local.settings.jsüzerindedosya içerir.A functions project directory contains the files host.json and local.settings.json, along with subfolders that contain the code for individual functions. Bu dizin, Azure 'daki bir işlev uygulamasının eşdeğeridir.This directory is the equivalent of a function app in Azure. Işlevler klasör yapısı hakkında daha fazla bilgi edinmek için bkz. Azure işlevleri Geliştirici Kılavuzu.To learn more about the Functions folder structure, see the Azure Functions developers guide.

Sürüm 3. x/2. x, başlatıldığında projeniz için varsayılan bir dil seçmenizi gerektirir.Version 3.x/2.x requires you to select a default language for your project when it is initialized. Sürüm 3. x/2. x ' te, eklenen tüm işlevler varsayılan dil şablonlarını kullan ' ı kullanır.In version 3.x/2.x, all functions added use default language templates. 1. x sürümünde, her bir işlev oluşturduğunuzda dili belirtirsiniz.In version 1.x, you specify the language each time you create a function.

Terminal penceresinde veya bir komut isteminden, projeyi ve yerel Git deposunu oluşturmak için aşağıdaki komutu çalıştırın:In the terminal window or from a command prompt, run the following command to create the project and local Git repository:

func init MyFunctionProj

Önemli

Java, ilk HTTP tetiklemeli işlevinizle birlikte yerel Işlevler projesini oluşturmak için bir Maven ıbetype kullanır.Java uses a Maven archetype to create the local Functions project, along with your first HTTP triggered function. Java projenizi oluşturmak için şu komutu kullanın: 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. Maven arşiv EType kullanan bir örnek için bkz. komut satırı hızlı başlangıç.For an example using the Maven archetype, see the Command line quickstart.

Bir proje adı sağladığınızda, bu ada sahip yeni bir klasör oluşturulur ve başlatılır.When you provide a project name, a new folder with that name is created and initialized. Aksi takdirde, geçerli klasör başlatılır.Otherwise, the current folder is initialized.
Sürüm 3. x/2. x ' te, komutunu çalıştırdığınızda projeniz için bir çalışma zamanı seçmeniz gerekir.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

Yukarı/aşağı ok tuşlarını kullanarak bir dil seçin ve ENTER tuşuna basın.Use the up/down arrow keys to choose a language, then press Enter. JavaScript veya TypeScript işlevleri geliştirmeyi planlıyorsanız düğüm' yi seçin ve ardından dili seçin.If you plan to develop JavaScript or TypeScript functions, choose node, and then select the language. TypeScript bazı ek gereksinimleresahiptir.TypeScript has some additional requirements.

Çıktı bir JavaScript projesi için aşağıdaki örneğe benzer şekilde görünür: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 , aksi belirtilmediği takdirde sürüm 3. x/2. x-Only olan aşağıdaki seçenekleri destekler:func init supports the following options, which are version 3.x/2.x-only, unless otherwise noted:

SeçenekOption AçıklamaDescription
--csx .NET işlevlerini, sürüm 1. x davranışı olan C# betiği olarak oluşturur.Creates .NET functions as C# script, which is the version 1.x behavior. Yalnızca ile geçerlidir --worker-runtime dotnet .Valid only with --worker-runtime dotnet.
--docker Seçili bir temel görüntü kullanarak kapsayıcı için bir Dockerfile oluşturur --worker-runtime .Creates a Dockerfile for a container using a base image that is based on the chosen --worker-runtime. Özel bir Linux kapsayıcısına yayımlamayı planlarken bu seçeneği kullanın.Use this option when you plan to publish to a custom Linux container.
--docker-only Mevcut bir projeye Dockerfile ekler.Adds a Dockerfile to an existing project. Belirtilmediğinde çalışan çalışma zamanı için ister veya üzerinde local.settings.jsayarlanır.Prompts for the worker-runtime if not specified or set in local.settings.json. Mevcut bir projeyi özel bir Linux kapsayıcısına yayımlamayı planlarken bu seçeneği kullanın.Use this option when you plan to publish an existing project to a custom Linux container.
--force Projede var olan dosyalar olduğunda bile projeyi başlatın.Initialize the project even when there are existing files in the project. Bu ayar aynı ada sahip varolan dosyaların üzerine yazar.This setting overwrites existing files with the same name. Proje klasöründeki diğer dosyalar etkilenmez.Other files in the project folder aren't affected.
--language Dile özgü bir projeyi başlatır.Initializes a language specific project. Şu anda --worker-runtime olarak ayarlandığında desteklenir node .Currently supported when --worker-runtime set to node. Seçenekler typescript ve ' dir javascript .Options are typescript and javascript. Veya de kullanabilirsiniz --worker-runtime javascript --worker-runtime typescript .You can also use --worker-runtime javascript or --worker-runtime typescript.
--managed-dependencies Yönetilen bağımlılıkları kurar.Installs managed dependencies. Şu anda yalnızca PowerShell Worker çalışma zamanı bu işlevselliği desteklemektedir.Currently, only the PowerShell worker runtime supports this functionality.
--source-control Git deposunun oluşturulup oluşturulmayacağını denetler.Controls whether a git repository is created. Varsayılan olarak, bir depo oluşturulmaz.By default, a repository isn't created. Ne zaman true bir depo oluşturulur.When true, a repository is created.
--worker-runtime Projenin dil çalışma zamanını ayarlar.Sets the language runtime for the project. Desteklenen değerler şunlardır: csharp , dotnet , javascript , node (JavaScript),,, powershell python ve typescript .Supported values are: csharp, dotnet, javascript,node (JavaScript), powershell, python, and typescript. Java için Maven'i kullanın. Ayarlanmaması durumunda, başlatma sırasında çalışma zamanını seçmeniz istenir.For Java, use Maven.When not set, you're prompted to choose your runtime during initialization.

Önemli

Varsayılan olarak, temel araçların sürüm 2. x ve sonraki sürümleri, .NET çalışma zamanına yönelik işlev uygulama projelerini C# sınıf projeleri (. csproj) olarak oluşturur.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). Visual Studio veya Visual Studio Code ile kullanılabilen bu C# projeleri, test sırasında ve Azure 'a yayımlarken derlenir.These C# projects, which can be used with Visual Studio or Visual Studio Code, are compiled during testing and when publishing to Azure. Bunun yerine, 1. x sürümünde oluşturulan aynı C# betiği (. CSX) dosyalarını oluşturup, portalda çalışmak istiyorsanız, --csx işlevleri oluştururken ve dağıtırken parametresini eklemeniz gerekir.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.

Uzantıları KaydetRegister extensions

HTTP ve Zamanlayıcı Tetikleyicileri hariç olmak üzere, çalışma zamanı sürüm 2. x ve üzeri içindeki Işlev bağlamaları uzantı paketleri olarak uygulanır.With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x and higher are implemented as extension packages. HTTP bağlamaları ve Zamanlayıcı Tetikleyicileri uzantı gerektirmez.HTTP bindings and timer triggers don't require extensions.

Çeşitli uzantı paketleri arasındaki uyumsuzlukları azaltmak için Işlevler, proje dosyasında host.jsbir uzantı paketine başvurmanıza olanak sağlar.To reduce incompatibilities between the various extension packages, Functions lets you reference an extension bundle in your host.json project file. Uzantı paketlerinizi kullanmayı tercih ederseniz, .NET Core 2. x SDK 'sını yerel olarak yüklemeniz ve bir uzantıları. csproj ' ı işlevler projem ile korumanız gerekir.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.

Azure Işlevleri çalışma zamanının 2. x ve sonraki sürümlerinde, işlevleriniz içinde kullanılan bağlama türleri için uzantıları açıkça kaydetmeniz gerekir.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. Bağlama uzantılarını tek tek yüklemeyi seçebilir veya proje dosyasında host.jsbir uzantı paketi başvurusu ekleyebilirsiniz.You can choose to install binding extensions individually, or you can add an extension bundle reference to the host.json project file. Uzantı demeti, birden çok bağlama türü kullanırken paket uyumluluk sorunları olma olasılığını ortadan kaldırır.Extension bundles removes the chance of having package compatibility issues when using multiple binding types. Bağlama uzantılarını kaydetmek için önerilen yaklaşımdır.It is the recommended approach for registering binding extensions. Uzantı paketleri de .NET Core 2. x SDK yükleme gereksinimini ortadan kaldırır.Extension bundles also removes the requirement of installing the .NET Core 2.x SDK.

Uzantı paketleri kullanUse extension bundles

Bağlama uzantılarını yüklemenin en kolay yolu, uzantıpaketlerinin etkinleştirilme yöntemidir.The easiest way to install binding extensions is to enable extension bundles. Paketleri etkinleştirdiğinizde, önceden tanımlanmış bir uzantı paketleri kümesi otomatik olarak yüklenir.When you enable bundles, a predefined set of extension packages is automatically installed.

Uzantı paketlerini etkinleştirmek için dosyadaki host.jsaçın ve içeriğini aşağıdaki kodla eşleşecek şekilde güncelleştirin: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)"
    }
}

Daha fazla bilgi için bkz. Azure işlevleri bağlama uzantılarını kaydetme.To learn more, see Register Azure Functions binding extensions. Dosyadaki function.jsbağlama eklemeden önce host.jsuzantı paketleri eklemeniz gerekir.You should add extension bundles to the host.json before you add bindings to the function.json file.

Uzantıları açıkça yüklerExplicitly install extensions

Uzantı paketlerinizi kullanmıyorsanız, projeniz için gereken belirli uzantı paketlerini yüklemek için Azure Functions Core Tools yerel olarak kullanabilirsiniz.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.

Önemli

Uzantı paketleri kullanan bir işlev uygulamasına açıkça uzantı yükleyemezsiniz.You can't explicitly install extensions in a function app that is using extension bundles. extensionBundleUzantıları açıkça yüklemeden önce üzerindehost.js bölümünü kaldırın.Remove the extensionBundle section in host.json before explicitly installing extensions.

Aşağıdaki öğelerde, uzantıları el ile yüklemeniz gerekebilecek bazı nedenler açıklanmaktadır:The following items describe some reasons you might need to install extensions manually:

  • Bir uzantının bir pakette bulunmayan belirli bir sürümüne erişmeniz gerekir.You need to access a specific version of an extension not available in a bundle.
  • Pakette kullanılamayan özel bir uzantıya erişmeniz gerekir.You need to access a custom extension not available in a bundle.
  • Tek bir pakette kullanılamayan belirli bir uzantı birleşimine erişmeniz gerekir.You need to access a specific combination of extensions not available in a single bundle.

Not

Temel araçları kullanarak uzantıları el ile yüklemek için .NET Core 2. x SDK 'sının yüklü olması gerekir.To manually install extensions by using Core Tools, you must have the .NET Core 2.x SDK installed. .NET Core SDK, Azure Functions Core Tools tarafından NuGet 'ten uzantı yüklemek için kullanılır.The .NET Core SDK is used by Azure Functions Core Tools to install extensions from NuGet. Azure Işlevleri uzantılarını kullanmak için .NET bilmeniz gerekmez.You don't need to know .NET to use Azure Functions extensions.

Uzantıları açıkça yüklediğinizde, projenizin köküne Extensions. csproj adlı bir .NET proje dosyası eklenir.When you explicitly install extensions, a .NET project file named extensions.csproj is added to the root of your project. Bu dosya, işlevleriniz için gereken NuGet paketleri kümesini tanımlar.This file defines the set of NuGet packages required by your functions. Bu dosyadaki NuGet paket başvurularıyla çalışabilmenize karşın, çekirdek araçları dosyayı el ile düzenlemek zorunda kalmadan uzantıları yüklemenize olanak sağlar.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.

Gerekli uzantıları Yerel projenize yüklemek için temel araçları kullanmanın birkaç yolu vardır.There are several ways to use Core Tools to install the required extensions in your local project.

Tüm uzantıları yüklerInstall all extensions

Yerel projenizde bağlamalar tarafından kullanılan tüm uzantı paketlerini otomatik olarak eklemek için aşağıdaki komutu kullanın:Use the following command to automatically add all extension packages used by the bindings in your local project:

func extensions install

Komut, hangi paketlere ihtiyacınız olduğunu görmek için dosyadaki function.js okur, bunları yüklerse ve uzantılar projesini (Extensions. csproj) yeniden oluşturur.The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project (extensions.csproj). Geçerli sürümde yeni bağlamalar ekler ancak mevcut bağlamaları güncelleştirmez.It adds any new bindings at the current version but does not update existing bindings. --forceYeni yenilerini yüklerken mevcut bağlamaları en son sürüme güncelleştirmek için seçeneğini kullanın.Use the --force option to update existing bindings to the latest version when installing new ones.

İşlev uygulamanız çekirdek araçların tanımadığı bağlamaları kullanıyorsa, belirli uzantıyı el ile yüklemelisiniz.If your function app uses bindings that Core Tools does not recognize, you must manually install the specific extension.

Belirli bir uzantıyı yüklerInstall a specific extension

Belirli bir sürüme belirli bir uzantı paketini yüklemek için aşağıdaki komutu kullanın, bu durumda depolama uzantısı: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

Yerel ayarlar dosyasıLocal settings file

Dosya local.settings.js, uygulama ayarlarını, bağlantı dizelerini ve yerel geliştirme araçları tarafından kullanılan ayarları depolar.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. local.settings.jsdosyadaki ayarlar yalnızca projeleri yerel olarak çalıştırırken kullanılır.Settings in the local.settings.json file are used only when you're running projects locally. Yerel ayarlar dosyası bu yapıya sahiptir: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>"
  }
}

Projeleri yerel olarak çalıştırdığınızda bu ayarlar desteklenir:These settings are supported when you run projects locally:

AyarSetting AçıklamaDescription
IsEncrypted Bu ayar olarak ayarlandığında true , tüm değerler yerel makine anahtarıyla şifrelenir.When this setting is set to true, all values are encrypted with a local machine key. Komutlarıyla birlikte kullanılır func settings .Used with func settings commands. Varsayılan değer false olarak belirlenmiştir.Default value is false. Yerel bilgisayarınızdaki local.settings.js, hizmet bağlantı dizeleri gibi gizli dizileri içerdiğinde şifrelemek isteyebilirsiniz.You might want to encrypt the local.settings.json file on your local computer when it contains secrets, such as service connection strings. Ana bilgisayar, çalışırken ayarların şifresini otomatik olarak çözer.The host automatically decrypts settings when it runs. func settings decryptYerel olarak şifrelenen ayarları okumayı denemeden önce komutunu kullanın.Use the func settings decrypt command before trying to read locally encrypted settings.
Values Bir proje yerel olarak çalışırken kullanılan uygulama ayarları ve bağlantı dizeleri dizisi.Array of application settings and connection strings used when a project is running locally. Bu anahtar-değer (dize-dize) çiftleri, gibi Azure 'daki işlev uygulamanızda uygulama ayarlarına karşılık gelir AzureWebJobsStorage .These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. Birçok tetikleyici ve bağlamanın, Connection BLOB depolama tetikleyicisigibi bir bağlantı dizesi uygulama ayarına başvuran bir özelliği vardır.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. Bu özellikler için dizide tanımlanmış bir uygulama ayarı gereklidir Values .For these properties, you need an application setting defined in the Values array. Yaygın olarak kullanılan ayarların listesi için sonraki tabloya bakın.See the subsequent table for a list of commonly used settings.
Değerler dize olmalıdır ve JSON nesneleri veya dizileri olmamalıdır.Values must be strings and not JSON objects or arrays. Ayar adları iki nokta ( : ) veya çift alt çizgi () içeremez __ .Setting names can't include a colon (:) or a double underline (__). Çift alt çizgi karakterleri çalışma zamanı tarafından ayrılmıştır ve iki nokta üst üste bağımlılık eklemedesteği için ayrılmıştır.Double underline characters are reserved by the runtime, and the colon is reserved to support dependency injection.
Host Bu bölümdeki ayarlar, projeleri yerel olarak çalıştırdığınızda Işlevler ana bilgisayar işlemini özelleştirir.Settings in this section customize the Functions host process when you run projects locally. Bu ayarlar, Azure 'da projeleri çalıştırdığınızda da uygulanan ayarları host.jsfarklıdır.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Yerel Işlevler Konağı (ve) çalıştırılırken kullanılan varsayılan bağlantı noktasını ayarlar func host start func run .Sets the default port used when running the local Functions host (func host start and func run). --portKomut satırı seçeneği bu ayarın üzerine gelir.The --port command-line option takes precedence over this setting.
CORS , Çıkış noktaları arası kaynak paylaşımı (CORS)için izin verilen kaynakları tanımlar.Defines the origins allowed for cross-origin resource sharing (CORS). Kaynaklar, boşluk olmadan virgülle ayrılmış bir liste olarak sağlanır.Origins are supplied as a comma-separated list with no spaces. () Joker değeri * desteklenir ve bu, herhangi bir kaynaktan gelen isteklere izin verir.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials Olarak ayarlandığında true , isteklere izin verir withCredentials .When set to true, allows withCredentials requests.
ConnectionStrings Bir koleksiyon.A collection. İşlev bağlamalarınız tarafından kullanılan bağlantı dizeleri için bu koleksiyonu kullanmayın.Don't use this collection for the connection strings used by your function bindings. Bu koleksiyon, genellikle ConnectionStrings Entity Frameworkgibi bir yapılandırma dosyasının bölümünden bağlantı dizelerini alan çerçeveler tarafından kullanılır.This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. Bu nesnedeki bağlantı dizeleri System. Data. SqlClientsağlayıcı türüyle ortama eklenir.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. Bu koleksiyondaki öğeler, diğer uygulama ayarlarıyla Azure 'da yayımlanmaz.Items in this collection aren't published to Azure with other app settings. Bu değerleri, Connection strings işlev uygulaması ayarlarınızın koleksiyonuna açıkça eklemeniz gerekir.You must explicitly add these values to the Connection strings collection of your function app settings. SqlConnectionİşlev kodunuzda bir oluşturuyorsanız, bağlantı dizesi değerini portaldaki uygulama ayarları ' nda diğer bağlantılarınız ile depolamanız gerekir.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.

Aşağıdaki uygulama ayarları, Values yerel olarak çalıştırılırken dizisine dahil edilebilir:The following application settings can be included in the Values array when running locally:

AyarSetting DeğerlerValues AçıklamaDescription
AzureWebJobsStorage Depolama hesabı bağlantı dizesi veyaStorage account connection string, or
UseDevelopmentStorage=true
Bir Azure depolama hesabı için bağlantı dizesini içerir.Contains the connection string for an Azure storage account. HTTP dışındaki Tetikleyiciler kullanılırken gereklidir.Required when using triggers other than HTTP. Daha fazla bilgi için bkz AzureWebJobsStorage . başvuru.For more information, see the AzureWebJobsStorage reference.
Azure Storage öykünücüsü yerel olarak yüklüyse ve AzureWebJobsStorage olarak ayarlarsanız UseDevelopmentStorage=true , çekirdek araçlar öykünücüyü kullanır.When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. Öykünücü geliştirme sırasında faydalıdır, ancak dağıtımdan önce gerçek bir depolama bağlantısı ile test etmeniz gerekir.The emulator is useful during development, but you should test with an actual storage connection before deployment.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false Yerel olarak çalışırken bir işlevi devre dışı bırakmak için, koleksiyona ekleyin; "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" burada <FUNCTION_NAME> işlevin adıdır.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. Daha fazla bilgi için bkz. Azure işlevleri 'nde işlevleri devre dışı bırakmaTo learn more, see How to disable functions in Azure Functions
FUNCTIONS_WORKER_RUNTIME dotnet
node
java
powershell
python
Işlevlerin çalışma zamanının hedeflenen dilini gösterir.Indicates the targeted language of the Functions runtime. Sürüm 2. x ve üzeri Işlevleri çalışma zamanının daha yüksek olması gerekir.Required for version 2.x and higher of the Functions runtime. Bu ayar projeniz için temel araçlar tarafından üretilir.This setting is generated for your project by Core Tools. Daha fazla bilgi için bkz FUNCTIONS_WORKER_RUNTIME . başvuru.To learn more, see the FUNCTIONS_WORKER_RUNTIME reference.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 Yerel olarak çalıştırılırken PowerShell 7 ' nin kullanılacağını gösterir.Indicates that PowerShell 7 be used when running locally. Ayarlanmamışsa, PowerShell Core 6 kullanılır.If not set, then PowerShell Core 6 is used. Bu ayar yalnızca yerel olarak çalıştırılırken kullanılır.This setting is only used when running locally. Azure 'da çalışırken, PowerShell çalışma zamanı sürümü powerShellVersion Portal 'da ayarlanbilensite yapılandırma ayarı tarafından belirlenir.When running in Azure, the PowerShell runtime version is determined by the powerShellVersion site configuration setting, which can be set in the portal.

Varsayılan olarak, bu ayarlar proje Azure 'da yayımlandığında otomatik olarak geçirilmez.By default, these settings are not migrated automatically when the project is published to Azure. --publish-local-settingsBu ayarların Azure 'daki işlev uygulamasına eklendiğinden emin olmak için yayımladığınızda , anahtarını kullanın.Use the --publish-local-settings switch when you publish to make sure these settings are added to the function app in Azure. ConnectionString içindeki değerlerin hiçbir şekilde yayımlanmadığını unutmayın.Note that values in ConnectionStrings are never published.

İşlev uygulaması ayarları değerleri, kodunuzda ortam değişkenleri olarak da okunabilir.The function app settings values can also be read in your code as environment variables. Daha fazla bilgi için, bu dile özgü başvuru konularının ortam değişkenleri bölümüne bakın:For more information, see the Environment variables section of these language-specific reference topics:

İçin geçerli bir depolama bağlantı dizesi ayarlanmamışsa AzureWebJobsStorage ve öykünücü kullanılmıyorsa, aşağıdaki hata iletisi gösterilir:When no valid storage connection string is set for AzureWebJobsStorage and the emulator isn't being used, the following error message is shown:

local.settings.jsüzerindeki AzureWebJobsStorage için eksik değer.Missing value for AzureWebJobsStorage in local.settings.json. HTTP dışındaki tüm tetikleyiciler için bu gereklidir.This is required for all triggers other than HTTP. ' Func Azure functionapp Fetch-App-Settings ' i çalıştırabilir <functionAppName> veya üzerinde local.settings.jsbir bağlantı dizesi belirtebilirsiniz.You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.

Depolama bağlantı dizelerinizi alınGet your storage connection strings

Geliştirme için Microsoft Azure Depolama Öykünücüsü kullanılırken bile gerçek bir depolama bağlantısıyla test etmek isteyebilirsiniz.Even when using the Microsoft Azure Storage Emulator for development, you may want to test with an actual storage connection. Zaten bir depolama hesabı oluşturmuşolduğunuz varsayılarak, aşağıdaki yollarla geçerli bir depolama bağlantı dizesi alabilirsiniz:Assuming you have already created a storage account, you can get a valid storage connection string in one of the following ways:

  • Azure Portal, depolama hesaplarınıarayıp seçin.From the Azure portal, search for and select Storage accounts. Azure portal depolama hesaplarını seçinSelect Storage accounts from Azure portal

    Depolama hesabınızı seçin, Ayarlar' da erişim tuşları ' nı seçin, sonra bağlantı dizesi değerlerinden birini kopyalayın.Select your storage account, select Access keys in Settings, then copy one of the Connection string values. Bağlantı dizesini Azure portal KopyalaCopy connection string from Azure portal

  • Azure hesabınıza bağlanmak için Azure Depolama Gezgini kullanın.Use Azure Storage Explorer to connect to your Azure account. Gezgin'de aboneliğinizi genişletin, depolama hesapları' nı genişletin, depolama hesabınızı seçin ve birincil veya ikincil bağlantı dizesini kopyalayın.In the Explorer, expand your subscription, expand Storage Accounts, select your storage account, and copy the primary or secondary connection string.

    Bağlantı dizesini Depolama Gezgini Kopyala

  • Azure 'dan gelen bağlantı dizesini aşağıdaki komutlardan biriyle indirmek için proje kökünden temel araçları kullanın:Use Core Tools from the project root to download the connection string from Azure with one of the following commands:

    • Var olan bir işlev uygulamasından tüm ayarları indir:Download all settings from an existing function app:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • Belirli bir depolama hesabı için bağlantı dizesini al:Get the Connection string for a specific storage account:

      func azure storage fetch-connection-string <StorageAccountName>
      

      Azure 'da henüz oturum açmadıysanız bunu yapmanız istenir.When you aren't already signed in to Azure, you're prompted to do so. Bu komutlar dosyadaki local.settings.jsvar olan ayarların üzerine yazar.These commands overwrite any existing settings in the local.settings.json file.

İşlev oluşturmaCreate a function

Bir işlev oluşturmak için aşağıdaki komutu çalıştırın:To create a function, run the following command:

func new

Sürüm 3. x/2. x ' te, çalıştırdığınızda func new işlev uygulamanızın varsayılan dilinde bir şablon seçmeniz istenir, ardından işleviniz için bir ad seçmeniz istenir.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. 1. x sürümünde de dili seçmeniz istenir.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

İşlev kodu, aşağıdaki kuyruk tetikleyicisi çıktısında görebileceğiniz gibi, belirtilen işlev adına sahip bir alt klasörde oluşturulur: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

Ayrıca, aşağıdaki bağımsız değişkenleri kullanarak komutta bu seçenekleri belirtebilirsiniz:You can also specify these options in the command using the following arguments:

Bağımsız DeğişkenArgument DescriptionDescription
--csx (Sürüm 2. x ve sonraki sürümler.) 1. x sürümünde ve portalda kullanılan C# betiği (. CSX) şablonlarını üretir.(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 C#, F # veya JavaScript gibi şablon programlama dili.The template programming language, such as C#, F#, or JavaScript. Bu seçenek, 1. x sürümünde gereklidir.This option is required in version 1.x. Sürüm 2. x ve sonraki sürümlerde, bu seçeneği kullanmayın veya çalışan çalışma zamanıyla eşleşen bir dil seçin.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 İşlev adı.The function name.
--template, -t--template, -t func templates listDesteklenen her dil için kullanılabilir şablonların tüm listesini görmek için komutunu kullanın.Use the func templates list command to see the complete list of available templates for each supported language.

Örneğin, tek bir komutta bir JavaScript HTTP tetikleyicisi oluşturmak için şunu çalıştırın:For example, to create a JavaScript HTTP trigger in a single command, run:

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

Tek bir komutta kuyruk tetiklemeli bir işlev oluşturmak için şunu çalıştırın:To create a queue-triggered function in a single command, run:

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

İşlevleri yerel olarak çalıştırRun functions locally

Bir Işlevler projesi çalıştırmak için, Işlevler ana bilgisayarını çalıştırın.To run a Functions project, run the Functions host. Konak, projedeki tüm işlevler için Tetikleyicileri mümkün.The host enables triggers for all functions in the project. Başlat komutu, Proje dilinize bağlı olarak farklılık gösterir.The start command varies, depending on your project language.

func start --build

Not

Işlevler çalışma zamanının sürüm 1. x, host Aşağıdaki örnekte olduğu gibi komutunu gerektirir:Version 1.x of the Functions runtime requires the host command, as in the following example:

func host start

func start Aşağıdaki seçenekleri destekler:func start supports the following options:

SeçenekOption AçıklamaDescription
--no-build Çalıştırmadan önce derleme geçerli projesi yok.Do no build current project before running. Yalnızca DotNet projeleri için.For dotnet projects only. Varsayılan değer false olarak ayarlanmıştır.Default is set to false. 1. x sürümü için desteklenmez.Not supported for version 1.x.
--cors-credentials Sürüm 1. x için desteklenmeyen, çıkış noktaları ve kimlik doğrulama üst bilgisi gibi kimlik doğrulamalı isteklere izin ver.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Not supported for version 1.x.
--cors CORS kaynakları için boşluk olmadan virgülle ayrılmış bir liste.A comma-separated list of CORS origins, with no spaces.
--language-worker Dil çalışanını yapılandırmak için bağımsız değişkenler.Arguments to configure the language worker. Örneğin, hata ayıklama bağlantı noktası ve diğer gerekli bağımsız değişkenlerisağlayarak dil çalışanı için hata ayıklamayı etkinleştirebilirsiniz.For example, you may enable debugging for language worker by providing debug port and other required arguments. 1. x sürümü için desteklenmez.Not supported for version 1.x.
--cert Özel anahtar içeren bir. pfx dosyasının yolu.The path to a .pfx file that contains a private key. Yalnızca ile kullanılır --useHttps .Only used with --useHttps. 1. x sürümü için desteklenmez.Not supported for version 1.x.
--password Bir. pfx dosyasının parolasını içeren parola veya dosya.Either the password or a file that contains the password for a .pfx file. Yalnızca ile kullanılır --cert .Only used with --cert. 1. x sürümü için desteklenmez.Not supported for version 1.x.
--port, -p--port, -p Dinlenecek yerel bağlantı noktası.The local port to listen on. Varsayılan değer: 7071.Default value: 7071.
--pause-on-error İşlemden çıkmadan önce ek giriş için duraklatın.Pause for additional input before exiting the process. Yalnızca tümleşik geliştirme ortamından (IDE) temel araçlar başlatılırken kullanılır.Used only when launching Core Tools from an integrated development environment (IDE).
--script-root, --prefix--script-root, --prefix Çalıştırılacak veya dağıtılacak işlev uygulamasının köküne ait yolu belirtmek için kullanılır.Used to specify the path to the root of the function app that is to be run or deployed. Bu, bir alt klasöre proje dosyaları üreten derlenmiş projeler için kullanılır.This is used for compiled projects that generate project files into a subfolder. Örneğin, bir C# sınıf kitaplığı projesi oluşturduğunuzda, dosyalar üzerinde host.js, local.settings.jsve function.js, gibi bir yol içeren bir kök alt klasörde oluşturulur 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. Bu durumda, önekini olarak ayarlayın --script-root MyProject/bin/Debug/netstandard2.0 .In this case, set the prefix as --script-root MyProject/bin/Debug/netstandard2.0. Bu, Azure 'da çalışırken işlev uygulamasının köküdür.This is the root of the function app when running in Azure.
--timeout, -t--timeout, -t Işlevlerin başlaması için gereken zaman aşımı (saniye cinsinden).The timeout for the Functions host to start, in seconds. Varsayılan: 20 saniye.Default: 20 seconds.
--useHttps Yerine öğesine bağlayın https://localhost:{port} http://localhost:{port} .Bind to https://localhost:{port} rather than to http://localhost:{port}. Varsayılan olarak, bu seçenek bilgisayarınızda güvenilir bir sertifika oluşturur.By default, this option creates a trusted certificate on your computer.

Işlevler ana bilgisayarı başlatıldığında, HTTP ile tetiklenen işlevlerin URL 'sini verir: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

Önemli

Yerel olarak çalışırken, HTTP uç noktaları için yetkilendirme zorlanmaz.When running locally, authorization isn't enforced for HTTP endpoints. Bu, tüm yerel HTTP isteklerinin olarak işlendiği anlamına gelir authLevel = "anonymous" .This means that all local HTTP requests are handled as authLevel = "anonymous". Daha fazla bilgi için bkz. http bağlama makalesi.For more information, see the HTTP binding article.

Test verilerini bir işleve geçirmePassing test data to a function

İşlevlerinizi yerel olarak test etmek için, işlevleri ana bilgisayarı başlatır ve http isteklerini kullanarak yerel sunucuda uç noktaları çağırabilirsiniz.To test your functions locally, you start the Functions host and call endpoints on the local server using HTTP requests. Çağırdığınız uç nokta, işlevin türüne bağlıdır.The endpoint you call depends on the type of function.

Not

Bu konudaki örnekler, Terminal veya komut isteminden HTTP istekleri göndermek için kıvrımlı aracı kullanır.Examples in this topic use the cURL tool to send HTTP requests from the terminal or a command prompt. Yerel sunucuya HTTP istekleri göndermek için tercih ettiğiniz bir aracı kullanabilirsiniz.You can use a tool of your choice to send HTTP requests to the local server. , Linux tabanlı sistemlerde ve Windows 10 derleme 17063 ve sonraki sürümlerde kıvrımlı aracı varsayılan olarak kullanılabilir.The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. Daha eski Windows 'ta, önce kıvrımlı aracınıindirip yüklemeniz gerekir.On older Windows, you must first download and install the cURL tool.

Test işlevleri hakkında daha fazla genel bilgi için bkz. Azure işlevlerinde kodunuzu test etme stratejileri.For more general information on testing functions, see Strategies for testing your code in Azure Functions.

HTTP ve Web kancası tarafından tetiklenen işlevlerHTTP and webhook triggered functions

HTTP ve Web kancası tarafından tetiklenen işlevleri yerel olarak çalıştırmak için aşağıdaki uç noktayı çağırın:You call the following endpoint to locally run HTTP and webhook triggered functions:

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

Işlevlerin barındırın dinlediği sunucu adını ve bağlantı noktasını kullandığınızdan emin olun.Make sure to use the same server name and port that the Functions host is listening on. Bunu, Işlev Konağı başlatılırken oluşturulan çıktıda görürsünüz.You see this in the output generated when starting the Function host. Tetikleyici tarafından desteklenen herhangi bir HTTP yöntemini kullanarak bu URL 'YI çağırabilirsiniz.You can call this URL using any HTTP method supported by the trigger.

Aşağıdaki kıvrımlı komutu, MyHttpTrigger sorgu dizesinde geçirilen Name PARAMETRESINE sahip bir Get isteğinden hızlı başlangıç işlevini tetikler.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

Aşağıdaki örnek, istek gövdesinde bir POST isteği geçirme adından çağrılan aynı fonksiyondır: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"}'

Sorgu dizesindeki verileri geçirerek tarayıcıdan GET istekleri yapabilirsiniz.You can make GET requests from a browser passing data in the query string. Diğer tüm HTTP yöntemleri için kıvrımlı, Fiddler, Postman veya benzer bir HTTP test aracı kullanmanız gerekir.For all other HTTP methods, you must use cURL, Fiddler, Postman, or a similar HTTP testing tool.

HTTP dışı tetiklenen işlevlerNon-HTTP triggered functions

HTTP Tetikleyicileri ve Web kancaları ve Event Grid Tetikleyicileri dışındaki tüm işlev türlerinde, bir yönetim uç noktası çağırarak işlevlerinizi yerel olarak test edebilirsiniz.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. Bu uç noktanın yerel sunucuda bir HTTP POST isteğiyle çağrılması işlevi tetikler.Calling this endpoint with an HTTP POST request on the local server triggers the function.

Event Grid tetiklenmiş işlevleri yerel olarak test etmek için bkz. Viewer Web App Ile yerel test.To test Event Grid triggered functions locally, see Local testing with viewer web app.

İsteğe bağlı olarak, POST isteğinin gövdesinde test verilerini yürütmeye geçirebilirsiniz.You can optionally pass test data to the execution in the body of the POST request. Bu işlev, Azure portal Test sekmesine benzerdir.This functionality is similar to the Test tab in the Azure portal.

HTTP olmayan işlevleri tetiklemek için aşağıdaki yönetici uç noktasını çağırın:You call the following administrator endpoint to trigger non-HTTP functions:

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

Test verilerini bir işlevin yönetici uç noktasına geçirmek için, verileri bir POST isteği iletisinin gövdesinde belirtmeniz gerekir.To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. İleti gövdesinin aşağıdaki JSON biçimine sahip olması gerekir:The message body is required to have the following JSON format:

{
    "input": "<trigger_input>"
}

<trigger_input>Değer, işlev tarafından beklenen bir biçimde veriler içeriyor.The <trigger_input> value contains data in a format expected by the function. Aşağıdaki kıvrımlı örnek, bir işlevin GÖNDERISINI sağlar QueueTriggerJS .The following cURL example is a POST to a QueueTriggerJS function. Bu durumda, giriş sırada bulunması beklenen iletiyle eşdeğer bir dizedir.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

Komutu kullanma func run (yalnızca sürüm 1. x)Using the func run command (version 1.x only)

Önemli

func runKomut yalnızca araçların 1. x sürümünde desteklenir.The func run command is only supported in version 1.x of the tools. Daha fazla bilgi için bkz. Azure işlevleri çalışma zamanı sürümlerini hedeflemekonusu.For more information, see the topic How to target Azure Functions runtime versions.

Sürüm 1. x ' de, kullanarak bir işlevi doğrudan çağırabilirsiniz func run <FunctionName> ve işlev için giriş verileri sağlayabilirsiniz.In version 1.x, you can also invoke a function directly by using func run <FunctionName> and provide input data for the function. Bu komut, Azure portal Test sekmesini kullanarak bir işlevi çalıştırmaya benzer.This command is similar to running a function using the Test tab in the Azure portal.

func run Aşağıdaki seçenekleri destekler:func run supports the following options:

SeçenekOption AçıklamaDescription
--content, -c--content, -c Satır içi içerik.Inline content.
--debug, -d--debug, -d İşlevi çalıştırmadan önce konak işlemine bir hata ayıklayıcı ekleyin.Attach a debugger to the host process before running the function.
--timeout, -t--timeout, -t Yerel Işlevlerin barındırmaya hazırlanana kadar beklenecek süre (saniye cinsinden).Time to wait (in seconds) until the local Functions host is ready.
--file, -f--file, -f İçerik olarak kullanılacak dosya adı.The file name to use as content.
--no-interactive Girişi istemez.Does not prompt for input. Otomasyon senaryoları için faydalıdır.Useful for automation scenarios.

Örneğin, HTTP ile tetiklenen bir işlev çağırmak ve içerik gövdesini geçirmek için aşağıdaki komutu çalıştırın:For example, to call an HTTP-triggered function and pass content body, run the following command:

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

Azure’da YayımlamaPublish to Azure

Azure Functions Core Tools iki tür dağıtımı destekler: işlev projesi dosyalarını ZIP dağıtımı ve dağıtımaracılığıyla doğrudan işlev uygulamanıza dağıtma.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. Kodunuzu dağıtacağınız Azure aboneliğinizde zaten bir işlev uygulaması oluşturmuşolmanız gerekir.You must have already created a function app in your Azure subscription, to which you'll deploy your code. İkililerin dağıtılması için derleme gerektiren projeler oluşturulmalıdır.Projects that require compilation should be built so that the binaries can be deployed.

Önemli

Azure CLI 'Yı temel araçlardan Azure 'da yayımlayabilmek için yerel olarak yüklü olmalıdır.You must have the Azure CLI installed locally to be able to publish to Azure from Core Tools.

Proje klasörü, yayınlanmaması gereken dile özgü dosyalar ve dizinler içerebilir.A project folder may contain language-specific files and directories that shouldn't be published. Dışlanan öğeler kök proje klasöründeki bir. funcignore dosyasında listelenir.Excluded items are listed in a .funcignore file in the root project folder.

Proje dosyalarını dağıtDeploy project files

Yerel kodunuzu Azure 'da bir işlev uygulamasına yayımlamak için şu publish komutu kullanın:To publish your local code to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

Önemli

Java, yerel projenizi Azure 'da yayımlamak için Maven 'yi kullanır.Java uses Maven to publish your local project to Azure. Azure 'da yayımlamak için şu komutu kullanın: mvn azure-functions:deploy .Use the following command to publish to Azure: mvn azure-functions:deploy. Azure kaynakları ilk dağıtım sırasında oluşturulur.Azure resources are created during initial deployment.

Bu komut, Azure 'da var olan bir işlev uygulamasına yayınlar.This command publishes to an existing function app in Azure. Aboneliğinizde mevcut olmayan bir ' a yayımlamayı denerseniz bir hata alırsınız <FunctionAppName> .You'll get an error if you try to publish to a <FunctionAppName> that doesn't exist in your subscription. Azure CLı kullanarak komut isteminden veya Terminal penceresinde bir işlev uygulaması oluşturmayı öğrenmek için bkz. sunucusuz yürütme için işlev uygulaması oluşturma.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. Varsayılan olarak, bu komut, uzak derlemeyi kullanır ve uygulamanızı dağıtım paketinden çalıştırmaküzere dağıtır.By default, this command uses remote build and deploys your app to run from the deployment package. Bu önerilen dağıtım modunu devre dışı bırakmak için --nozip seçeneğini kullanın.To disable this recommended deployment mode, use the --nozip option.

Önemli

Azure portal bir işlev uygulaması oluşturduğunuzda, varsayılan olarak Işlev çalışma zamanının 3. x sürümünü kullanır.When you create a function app in the Azure portal, it uses version 3.x of the Function runtime by default. İşlev uygulamasının çalışma zamanının sürüm 1. x ' i kullanmasını sağlamak için Sürüm 1. x üzerinde Çalıştır' daki yönergeleri izleyin.To make the function app use version 1.x of the runtime, follow the instructions in Run on version 1.x. Mevcut işlevlere sahip bir işlev uygulamasının çalışma zamanı sürümünü değiştiremezsiniz.You can't change the runtime version for a function app that has existing functions.

Aşağıdaki yayımlama seçenekleri tüm sürümler için geçerlidir:The following publish options apply for all versions:

SeçenekOption AçıklamaDescription
--publish-local-settings -i Ayarları Azure 'da local.settings.jsyayımlayın, bu ayar zaten varsa üzerine yazmak isteyip istemediğinizi sorar.Publish settings in local.settings.json to Azure, prompting to overwrite if the setting already exists. Microsoft Azure Depolama Öykünücüsü kullanıyorsanız, önce uygulama ayarını gerçek bir depolama bağlantısıolarak değiştirin.If you are using the Microsoft Azure Storage Emulator, first change the app setting to an actual storage connection.
--overwrite-settings -y Kullanıldığında uygulama ayarlarının üzerine yazma istemi 'ni gizleyin --publish-local-settings -i .Suppress the prompt to overwrite app settings when --publish-local-settings -i is used.

Aşağıdaki yayımlama seçenekleri yalnızca sürüm 2. x ve sonraki sürümler için desteklenir:The following publish options are supported only for version 2.x and later versions:

SeçenekOption AçıklamaDescription
--publish-settings-only, -o--publish-settings-only, -o Yalnızca ayarları yayımlayın ve içeriği atlayın.Only publish settings and skip the content. Varsayılan istem.Default is prompt.
--list-ignored-files Yayımlama sırasında yoksayılan,. funcignore dosyasını temel alan dosyaların listesini görüntüler.Displays a list of files that are ignored during publishing, which is based on the .funcignore file.
--list-included-files Yayımlanan dosyaların bir listesini görüntüler, bu,. funcignore dosyasını temel alır.Displays a list of files that are published, which is based on the .funcignore file.
--nozip Varsayılan modu kapatır Run-From-Package .Turns the default Run-From-Package mode off.
--build-native-deps Python işlev uygulamaları yayımlanırken. tekerlek klasörü oluşturmayı atlar.Skips generating .wheels folder when publishing Python function apps.
--build, -b--build, -b Bir Linux işlev uygulamasına dağıtım yaparken derleme eylemi gerçekleştirir.Performs build action when deploying to a Linux function app. Kabul eder: remote ve local .Accepts: remote and local.
--additional-packages Yerel bağımlılıklar oluşturulurken yüklenecek paketlerin listesi.List of packages to install when building native dependencies. Örneğin: python3-dev libevent-dev.For example: python3-dev libevent-dev.
--force Belirli senaryolarda yayımlama öncesi doğrulamayı yoksayın.Ignore pre-publishing verification in certain scenarios.
--csx Bir C# betiği (. CSX) projesi yayımlayın.Publish a C# script (.csx) project.
--no-build Proje Yayımlama sırasında derlenmedi.Project isn't built during publishing. Python için pip install gerçekleştirilmedi.For Python, pip install isn't performed.
--dotnet-cli-params Derlenmiş C# (. csproj) işlevlerini yayımlarken, temel Araçlar ' DotNet Build--output bin/Publish ' yöntemini çağırır.When publishing compiled C# (.csproj) functions, the core tools calls 'dotnet build --output bin/publish'. Buna geçirilen parametreler komut satırına eklenecektir.Any parameters passed to this will be appended to the command line.

Özel kapsayıcı dağıtmaDeploy custom container

Azure Işlevleri, işlev projenizi özel bir Docker kapsayıcısınadağıtmanızı sağlar.Azure Functions lets you deploy your function project in a custom Docker container. Daha fazla bilgi için bkz. özel bir görüntü kullanarak Linux 'ta Işlev oluşturma.For more information, see Create a function on Linux using a custom image. Özel kapsayıcılar bir Dockerfile içermelidir.Custom containers must have a Dockerfile. Dockerfile ile bir uygulama oluşturmak için, üzerinde--dockerfile seçeneğini kullanın func init .To create an app with a Dockerfile, use the --dockerfile option on func init.

func deploy

Aşağıdaki özel kapsayıcı dağıtım seçenekleri kullanılabilir:The following custom container deployment options are available:

SeçenekOption AçıklamaDescription
--registry Geçerli kullanıcının oturum açan bir Docker kayıt defterinin adı.The name of a Docker Registry the current user signed-in to.
--platform İşlev uygulaması için platform barındırma.Hosting platform for the function app. Geçerli seçenekler şunlardır kubernetesValid options are kubernetes
--name İşlev uygulaması adı.Function app name.
--max İsteğe bağlı olarak, dağıtılacak maksimum işlev uygulaması örneği sayısını ayarlar.Optionally, sets the maximum number of function app instances to deploy to.
--min İsteğe bağlı olarak, dağıtılacak en düşük işlev uygulaması örneği sayısını ayarlar.Optionally, sets the minimum number of function app instances to deploy to.
--config İsteğe bağlı bir dağıtım yapılandırma dosyası ayarlar.Sets an optional deployment configuration file.

İzleme işlevleriMonitoring functions

İşlevlerinizin yürütülmesini izlemek için önerilen yol, Azure Application Insights ile tümleştirilmesine göre yapılır.The recommended way to monitor the execution of your functions is by integrating with Azure Application Insights. Ayrıca, yürütme günlüklerini yerel bilgisayarınıza da akışla aktarabilirsiniz.You can also stream execution logs to your local computer. Daha fazla bilgi için bkz. Azure Işlevlerini izleme.To learn more, see Monitor Azure Functions.

Application Insights tümleştirmeApplication Insights integration

Azure 'da işlev uygulamanızı oluştururken Application Insights tümleştirme etkinleştirilmelidir.Application Insights integration should be enabled when you create your function app in Azure. Bazı nedenlerle işlev uygulamanız bir Application Insights örneğine bağlı değilse, bu tümleştirmeyi Azure portal yapmak kolaydır.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. Daha fazla bilgi için bkz. Application Insights Tümleştirmesini Etkinleştirme.To learn more, see Enable Application Insights integration.

Akış günlüklerini etkinleştirEnable streaming logs

İşlevleriniz tarafından oluşturulan günlük dosyalarının akışını, yerel bilgisayarınızdaki bir komut satırı oturumunda görüntüleyebilirsiniz.You can view a stream of log files being generated by your functions in a command-line session on your local computer.

Yerleşik günlük akışıBuilt-in log streaming

logstreamAşağıdaki örnekte olduğu gibi, Azure 'da çalışan belirli bir işlev uygulamasının akış günlüklerini almaya başlamak için seçeneğini kullanın: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>

Not

Bir tüketim planında Linux üzerinde çalışan işlev uygulamalarına yönelik temel araçlarda yerleşik günlük akışı henüz etkin değildir.Built-in log streaming isn't yet enabled in Core Tools for function apps running on Linux in a Consumption plan. Bu barındırma planları için, bunun yerine, günlükleri neredeyse gerçek zamanlı olarak görüntülemek için Canlı Ölçüm Akışı kullanmanız gerekir.For these hosting plans, you instead need to use Live Metrics Stream to view the logs in near-real time.

Canlı Ölçüm AkışıLive Metrics Stream

Live Metrics Stream --browser Aşağıdaki örnekte olduğu gibi seçeneğini ekleyerek işlev uygulamanızın canlı ölçüm akışı yeni bir tarayıcı penceresinde görüntüleyebilirsiniz: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

Bu tür akış günlükleri, işlev uygulamanız için Application Insights tümleştirmenin etkinleştirilmesini gerektirir.This type of streaming logs requires that Application Insights integration be enabled for your function app.

Sonraki adımlarNext steps

Microsoft Azure Functions Core Tools kullanarak Azure işlevleri geliştirmeyi, test yapmayı ve yayımlamayı öğrenin Azure Functions Core Tools açık kaynak ve GitHub üzerinde barındırılır.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.
Bir hata veya özellik isteğini dosyabir GitHub sorunu açın.To file a bug or feature request, open a GitHub issue.