Visual Studio ile Azure İşlevleri geliştirmeDevelop Azure Functions using Visual Studio

Visual Studio, C# sınıf kitaplığı işlevlerini geliştirmenize, test etmenize ve Azure 'a dağıtmanıza imkan tanır.Visual Studio lets you develop, test, and deploy C# class library functions to Azure. Azure Işlevleri ile ilk kez bu deneyim varsa bkz. Azure işlevleri 'ne giriş.If this experience is your first with Azure Functions, see An introduction to Azure Functions.

Visual Studio, işlevlerinizi geliştirirken aşağıdaki avantajları sağlar:Visual Studio provides the following benefits when you develop your functions:

  • Yerel geliştirme bilgisayarınızda işlevleri düzenleyin, derleyin ve çalıştırın.Edit, build, and run functions on your local development computer.
  • Azure Işlevleri projenizi doğrudan Azure 'da yayımlayın ve gerektiğinde Azure kaynakları oluşturun.Publish your Azure Functions project directly to Azure, and create Azure resources as needed.
  • İşlev bağlamalarını doğrudan C# kodunda bildirmek için C# özniteliklerini kullanın.Use C# attributes to declare function bindings directly in the C# code.
  • Önceden derlenmiş C# işlevleri geliştirin ve dağıtın.Develop and deploy pre-compiled C# functions. Önceden karmaşıklu işlevler C# betik tabanlı işlevlerden daha iyi bir soğuk başlama performansı sağlar.Pre-complied functions provide a better cold-start performance than C# script-based functions.
  • Visual Studio geliştirmenin avantajlarından faydalanırken işlevlerinizi C# dilinde kodlayın.Code your functions in C# while having all of the benefits of Visual Studio development.

Bu makalede C# sınıf kitaplığı işlevleri geliştirmek ve bunları Azure 'Da yayımlamak için Visual Studio 'Nun nasıl kullanılacağına ilişkin ayrıntılar sağlanmaktadır.This article provides details about how to use Visual Studio to develop C# class library functions and publish them to Azure. Bu makaleyi okumadan önce, Visual Studio için hızlı başlangıç işlevlerinitamamlamayı düşünün.Before you read this article, consider completing the Functions quickstart for Visual Studio.

Aksi belirtilmediği takdirde, yordamlar ve örnekler Visual Studio 2019 içindir.Unless otherwise noted, procedures and examples shown are for Visual Studio 2019.

ÖnkoşullarPrerequisites

  • Azure Işlevleri araçları.Azure Functions Tools. Azure Işlev araçları eklemek için, Visual Studio yüklemenize Azure geliştirme iş yükünü dahil edin.To add Azure Function Tools, include the Azure development workload in your Visual Studio installation. Azure Işlevleri araçları, Visual Studio 2017 ile başlayan Azure geliştirme iş yükünde kullanılabilir.Azure Functions Tools is available in the Azure development workload starting with Visual Studio 2017.

  • Azure depolama hesabı gibi ihtiyacınız olan diğer kaynaklar, yayımlama işlemi sırasında aboneliğinizde oluşturulur.Other resources that you need, such as an Azure Storage account, are created in your subscription during the publishing process.

  • Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Not

Visual Studio 2017 ' de Azure geliştirme iş yükü, Azure Işlevleri araçlarını ayrı bir uzantı olarak yüklüyor.In Visual Studio 2017, the Azure development workload installs Azure Functions Tools as a separate extension. Visual Studio 2017 yüklemenizi güncelleştirdiğinizde Azure Işlevleri araçlarının en son sürümünü kullandığınızdan emin olun.When you update your Visual Studio 2017 installation, make sure that you're using the most recent version of the Azure Functions tools. Aşağıdaki bölümlerde, Visual Studio 2017 ' de Azure Işlevleri araçları uzantınızı nasıl denetleyen ve (gerekirse) güncelleştiren gösterilmektedir.The following sections show you how to check and (if needed) update your Azure Functions Tools extension in Visual Studio 2017.

Visual Studio 2019 kullanıyorsanız bu bölümleri atlayın.Skip these sections if you're using Visual Studio 2019.

Visual Studio 2017 ' de Araçlar sürümünüzü denetleyinCheck your tools version in Visual Studio 2017

  1. Araçlar menüsünde Uzantılar ve güncelleştirmeler' i seçin.From the Tools menu, choose Extensions and Updates. Yüklü > Araçlar' ı genişletin ve ardından Azure işlevleri ve Web işleri araçları' nı seçin.Expand Installed > Tools, and then choose Azure Functions and Web Jobs Tools.

    Işlevler araçları sürümünü doğrulama

  2. Yüklü sürümü not edin ve bu sürümü sürüm notlarındalistelenen en son sürümle karşılaştırın.Note the installed Version and compare this version with the latest version listed in the release notes.

  3. Sürümünüz daha eskiyse, Visual Studio 'daki araçları aşağıdaki bölümde gösterildiği gibi güncelleştirin.If your version is older, update your tools in Visual Studio as shown in the following section.

Visual Studio 2017 ' de araçlarınızı güncelleştirmeUpdate your tools in Visual Studio 2017

  1. Uzantılar ve güncelleştirmeler iletişim kutusunda güncelleştirmeler > Visual Studio Market' ı genişletin, Azure işlevleri ve Web işleri araçları ' nı seçin ve Güncelleştir' i seçin.In the Extensions and Updates dialog, expand Updates > Visual Studio Marketplace, choose Azure Functions and Web Jobs Tools and select Update.

    Işlevler araçları sürümünü güncelleştirme

  2. Araçlar güncelleştirmesi indirildikten sonra, Kapat' ı seçin ve ardından Visual Studio 'yu kapatın ve ardından VSIX yükleyicisi ile araçlar güncelleştirmesini tetikleyin.After the tools update is downloaded, select Close, and then close Visual Studio to trigger the tools update with VSIX Installer.

  3. VSıX yükleyici 'de, araçları güncelleştirmek için Değiştir ' i seçin.In VSIX Installer, choose Modify to update the tools.

  4. Güncelleştirme tamamlandıktan sonra Kapat' ı seçin ve ardından Visual Studio 'yu yeniden başlatın.After the update is complete, choose Close, and then restart Visual Studio.

Not

Visual Studio 2019 ve üzeri sürümlerde Azure Işlevleri araçları uzantısı, Visual Studio 'nun bir parçası olarak güncelleştirilir.In Visual Studio 2019 and later, the Azure Functions tools extension is updated as part of Visual Studio.

Azure İşlevleri projesi oluşturmaCreate an Azure Functions project

Visual Studio 'daki Azure Işlevleri proje şablonu, Azure 'da bir işlev uygulamasına yayımlayabilecek bir proje oluşturur.The Azure Functions project template in Visual Studio creates a project that you can publish to a function app in Azure. İşlevleri, kaynakların daha kolay yönetilmesi, dağıtılması, ölçeklendirilmesi ve paylaşılması için mantıksal birim olarak gruplamak üzere bir işlev uygulaması kullanabilirsiniz.You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. Visual Studio menüsünden Dosya > Yeni > Proje' yi seçin.From the Visual Studio menu, select File > New > Project.

  2. Yeni proje oluştur' da, arama kutusuna Işlevler girin, Azure Işlevleri şablonunu seçin ve ardından İleri' yi seçin.In Create a new project, enter functions in the search box, choose the Azure Functions template, and then select Next.

  3. Yeni projenizi yapılandırınbölümünde projeniz Için bir Proje adı girin ve ardından Oluştur' u seçin.In Configure your new project, enter a Project name for your project, and then select Create. İşlev uygulamasının adı, bir C# ad alanı olarak geçerli olmalıdır; bu nedenle alt çizgi, kısa çizgi veya alfasayısal olmayan herhangi bir karakter kullanmayın.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. Yeni Azure işlevleri uygulama ayarları oluşturma için aşağıdaki tablodaki değerleri kullanın:For the Create a new Azure Functions application settings, use the values in the following table:

    AyarSetting DeğerValue AçıklamaDescription
    İşlevler çalışma zamanıFunctions runtime Azure Işlevleri v3
    (.NET Core)
    Azure Functions v3
    (.NET Core)
    Bu değer, .NET Core 3. x ' i destekleyen Azure Işlevlerinin sürüm 3. x çalışma zamanını kullanan bir işlev projesi oluşturur.This value creates a function project that uses the version 3.x runtime of Azure Functions, which supports .NET Core 3.x. Azure İşlevleri 1.x, .NET Framework’ü destekler.Azure Functions 1.x supports the .NET Framework. Daha fazla bilgi için bkz. Azure işlevleri çalışma zamanı sürümlerine genel bakış.For more information, see Azure Functions runtime versions overview.
    İşlev şablonuFunction template HTTP tetikleyicisiHTTP trigger Bu değer, bir HTTP isteği tarafından tetiklenen bir işlev oluşturur.This value creates a function triggered by an HTTP request.
    Depolama hesabı (AzureWebJobsStorage)Storage account (AzureWebJobsStorage) Depolama öykünücüsüStorage emulator Azure Işlevi için bir depolama hesabı gerektiğinden, projenizi Azure 'da yayımladığınızda bir tane atanır veya oluşturulur.Because an Azure Function requires a storage account, one is assigned or created when you publish your project to Azure. HTTP tetikleyicisi, Azure depolama hesabı bağlantı dizesi kullanmaz; diğer tüm tetikleyici türleri için geçerli bir Azure depolama hesabı bağlantı dizesi gerekir.An HTTP trigger doesn't use an Azure Storage account connection string; all other trigger types require a valid Azure Storage account connection string.
    Yetkilendirme düzeyiAuthorization level DeðeriAnonymous Oluşturulan işlev, anahtar gerektirmeden herhangi bir istemci tarafından tetiklenebilir.The created function can be triggered by any client without providing a key. Bu yetkilendirme ayarı yeni işlevinizi test etmenizi kolaylaştırır.This authorization setting makes it easy to test your new function. Anahtarlar ve yetkilendirme hakkında daha fazla bilgi için bkz. Yetkilendirme anahtarları ve http ve Web kancası bağlamaları.For more information about keys and authorization, see Authorization keys and HTTP and webhook bindings.

    Azure Işlevleri proje ayarları

    Yetkilendirme düzeyini anonimolarak ayarladığınızdan emin olun.Make sure you set the Authorization level to Anonymous. Varsayılan işlevdüzeyini seçerseniz, işlev uç noktanıza erişmek için isteklerde işlev anahtarı sunmak gerekir.If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. İşlev projesi ve HTTP tetikleme işlevini oluşturmak için Oluştur ' u seçin.Select Create to create the function project and HTTP trigger function.

Bir Azure Işlevleri projesi oluşturduktan sonra, proje şablonu bir C# projesi oluşturur, Microsoft.NET.Sdk.Functions NuGet paketini yüklenir ve hedef Framework 'ü ayarlar.After you create an Azure Functions project, the project template creates a C# project, installs the Microsoft.NET.Sdk.Functions NuGet package, and sets the target framework. Yeni proje aşağıdaki dosyalara sahiptir:The new project has the following files:

  • host.js:, işlevleri ana bilgisayarını yapılandırmanıza izin verir.host.json: Lets you configure the Functions host. Bu ayarlar, hem yerel olarak hem de Azure 'da çalışırken geçerlidir.These settings apply both when running locally and in Azure. Daha fazla bilgi için bkz. host.jsbaşvurusu.For more information, see host.json reference.

  • local.settings.js:, işlevleri yerel olarak çalıştırırken kullanılan ayarları korur.local.settings.json: Maintains settings used when running functions locally. Bu ayarlar, Azure 'da çalışırken kullanılmaz.These settings aren't used when running in Azure. Daha fazla bilgi için bkz. yerel ayarlar dosyası.For more information, see Local settings file.

    Önemli

    Dosyadaki local.settings.jsgizli dizileri içerebildiğinden, bunu proje kaynak denetiinizden çıkarmanız gerekir.Because the local.settings.json file can contain secrets, you must exclude it from your project source control. Bu dosya için Çıkış Dizinine Kopyala ayarının, daha yeniyse kopyalaolarak ayarlandığından emin olun.Ensure the Copy to Output Directory setting for this file is set to Copy if newer.

Daha fazla bilgi için bkz. işlevler sınıf kitaplığı projesi.For more information, see Functions class library project.

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.

Visual Studio, projeyi yayımladığınızda local.settings.jsiçindeki ayarları otomatik olarak karşıya yüklememez.Visual Studio doesn't automatically upload the settings in local.settings.json when you publish the project. Bu ayarların Azure 'daki işlev uygulamanızda da mevcut olduğundan emin olmak için, projenizi yayımladıktan sonra bu ayarları karşıya yükleyin.To make sure that these settings also exist in your function app in Azure, upload them after you publish your project. Daha fazla bilgi için bkz. işlev uygulaması ayarları.For more information, see Function app settings. Bir ConnectionStrings koleksiyondaki değerler hiçbir şekilde yayımlanmaz.The values in a ConnectionStrings collection are never published.

Kodunuz Ayrıca, işlev uygulama ayarları değerlerini ortam değişkenleri olarak okuyabilir.Your code can also read the function app settings values as environment variables. Daha fazla bilgi için bkz. ortam değişkenleri.For more information, see Environment variables.

Projeyi yerel geliştirme için yapılandırmaConfigure the project for local development

Işlevler çalışma zamanı, dahili olarak bir Azure depolama hesabı kullanır.The Functions runtime uses an Azure Storage account internally. HTTP ve Web kancaları dışındaki tüm tetikleyici türleri için Values.AzureWebJobsStorage anahtarı geçerli bir Azure depolama hesabı bağlantı dizesi olarak ayarlayın.For all trigger types other than HTTP and webhooks, set the Values.AzureWebJobsStorage key to a valid Azure Storage account connection string. İşlev uygulamanız Ayrıca, proje için gerekli olan bağlantı ayarı için Azure Storage öykünücüsü 'nü kullanabilir AzureWebJobsStorage .Your function app can also use the Azure Storage Emulator for the AzureWebJobsStorage connection setting that's required by the project. Öykünücüsünü kullanmak için değerini AzureWebJobsStorage olarak ayarlayın UseDevelopmentStorage=true .To use the emulator, set the value of AzureWebJobsStorage to UseDevelopmentStorage=true. Dağıtımdan önce bu ayarı gerçek bir depolama hesabı bağlantı dizesiyle değiştirin.Change this setting to an actual storage account connection string before deployment.

Depolama hesabı bağlantı dizesini ayarlamak için:To set the storage account connection string:

  1. Visual Studio 'da, View > bulut Gezgininigörüntüle ' yi seçin.In Visual Studio, select View > Cloud Explorer.

  2. Cloud Explorer'Da depolama hesapları' nı genişletin ve depolama hesabınızı seçin.In Cloud Explorer, expand Storage Accounts, and then select your storage account. Özellikler sekmesinde, birincil bağlantı dizesi değerini kopyalayın.In the Properties tab, copy the Primary Connection String value.

  3. Projenizde local.settings.jsdosya üzerinde açın ve AzureWebJobsStorage anahtarın değerini kopyaladığınız bağlantı dizesine ayarlayın.In your project, open the local.settings.json file and set the value of the AzureWebJobsStorage key to the connection string you copied.

  4. Valuesİşlevlerinizin gerektirdiği diğer tüm bağlantılar için diziye benzersiz anahtarlar eklemek için önceki adımı tekrarlayın.Repeat the previous step to add unique keys to the Values array for any other connections required by your functions.

Projenize bir işlev ekleyinAdd a function to your project

C# sınıf kitaplığı işlevlerinde, işlev tarafından kullanılan bağlamalar koddaki öznitelikler uygulanarak tanımlanır.In C# class library functions, the bindings used by the function are defined by applying attributes in the code. İşlev tetiklerinizi, belirtilen şablonlardan oluşturduğunuzda, tetikleyici öznitelikleri sizin için uygulanır.When you create your function triggers from the provided templates, the trigger attributes are applied for you.

  1. Çözüm Gezgini, proje düğümüne sağ tıklayın ve Add > Yeni öğeEkle ' yi seçin.In Solution Explorer, right-click your project node and select Add > New Item.

  2. Azure işlevi' ni seçin, sınıf Için bir ad girin ve ardından Ekle' yi seçin.Select Azure Function, enter a Name for the class, and then select Add.

  3. Tetikleyiciyi seçin, bağlama özelliklerini ayarlayın ve ardından Tamam' ı seçin.Choose your trigger, set the binding properties, and then select OK. Aşağıdaki örnek, bir kuyruk depolama tetikleyicisi işlevi oluşturma ayarlarını gösterir.The following example shows the settings for creating a Queue storage trigger function.

    Kuyruk depolama tetikleyicisi işlevi oluşturma

    Bu tetikleyici örneği, adlı bir anahtarla bağlantı dizesi kullanır QueueStorage .This trigger example uses a connection string with a key named QueueStorage. Bu bağlantı dizesi ayarını dosyadalocal.settings.jstanımlayın.Define this connection string setting in the local.settings.json file.

  4. Yeni eklenen sınıfı inceleyin.Examine the newly added class. Run()Özniteliği ile nitelendirilen bir statik yöntem görürsünüz FunctionName .You see a static Run() method that's attributed with the FunctionName attribute. Bu öznitelik, yönteminin işlevin giriş noktası olduğunu gösterir.This attribute indicates that the method is the entry point for the function.

    Örneğin, aşağıdaki C# sınıfı temel bir kuyruk depolama tetikleyicisi işlevini temsil eder:For example, the following C# class represents a basic Queue storage trigger function:

    using System;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    using Microsoft.Extensions.Logging;
    
    namespace FunctionApp1
    {
        public static class Function1
        {
            [FunctionName("QueueTriggerCSharp")]
            public static void Run([QueueTrigger("myqueue-items", 
                Connection = "QueueStorage")]string myQueueItem, ILogger log)
            {
                log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
            }
        }
    }
    

Giriş noktası yöntemine sağlanan her bağlama parametresine bağlamaya özgü bir öznitelik uygulanır.A binding-specific attribute is applied to each binding parameter supplied to the entry point method. Öznitelik, bağlama bilgilerini parametre olarak alır.The attribute takes the binding information as parameters. Önceki örnekte, ilk parametrenin bir QueueTrigger kuyruk depolama tetikleyicisi işlevini belirten bir özniteliği uygulandı.In the previous example, the first parameter has a QueueTrigger attribute applied, indicating a Queue storage trigger function. Sıra adı ve bağlantı dizesi ayar adı özniteliğe parametre olarak geçirilir QueueTrigger .The queue name and connection string setting name are passed as parameters to the QueueTrigger attribute. Daha fazla bilgi için bkz. Azure Için Azure kuyruk depolama bağlamaları işlevleri.For more information, see Azure Queue storage bindings for Azure Functions.

İşlev uygulaması projenize daha fazla işlev eklemek için yukarıdaki yordamı kullanın.Use the above procedure to add more functions to your function app project. Projedeki her bir işlev farklı bir tetikleyicisine sahip olabilir, ancak bir işlevin tam olarak bir tetikleyicisi olmalıdır.Each function in the project can have a different trigger, but a function must have exactly one trigger. Daha fazla bilgi için bkz. Azure işlevleri Tetikleyicileri ve bağlamaları kavramları.For more information, see Azure Functions triggers and bindings concepts.

Bağlama eklemeAdd bindings

Tetikleyiciler 'de olduğu gibi, giriş ve çıkış bağlamaları işlevinizde bağlama öznitelikleri olarak eklenir.As with triggers, input and output bindings are added to your function as binding attributes. Bir işleve şu şekilde bağlama ekleyin:Add bindings to a function as follows:

  1. Projeyi yerel geliştirme için yapılandırdığınızdanemin olun.Make sure you've configured the project for local development.

  2. Belirli bağlama için uygun NuGet uzantı paketini ekleyin.Add the appropriate NuGet extension package for the specific binding.

    Daha fazla bilgi için bkz. Visual Studio Ile C# sınıf kitaplığı.For more information, see C# class library with Visual Studio. Bağlama yönelik başvuru makalesinde bağlamaya özgü NuGet paketi gereksinimlerini bulun.Find the binding-specific NuGet package requirements in the reference article for the binding. Örneğin, Event Hubs bağlama başvurusu makalesindekiEvent Hubs tetikleyicisinin paket gereksinimlerini bulun.For example, find package requirements for the Event Hubs trigger in the Event Hubs binding reference article.

  3. Bağlamanın ihtiyacı olan uygulama ayarları varsa, bunları Values yerel ayar dosyasındakoleksiyona ekleyin.If there are app settings that the binding needs, add them to the Values collection in the local setting file.

    İşlev yerel olarak çalıştırıldığında bu değerleri kullanır.The function uses these values when it runs locally. İşlev, Azure 'daki işlev uygulamasında çalıştırıldığında, işlev uygulama ayarları' nı kullanır.When the function runs in the function app in Azure, it uses the function app settings.

  4. Yöntem imzasına uygun bağlama özniteliğini ekleyin.Add the appropriate binding attribute to the method signature. Aşağıdaki örnekte, bir kuyruk iletisi işlevi tetikler ve çıkış bağlaması farklı bir kuyrukta aynı metne sahip yeni bir kuyruk iletisi oluşturur.In the following example, a queue message triggers the function, and the output binding creates a new queue message with the same text in a different queue.

    public static class SimpleExampleWithOutput
    {
        [FunctionName("CopyQueueMessage")]
        public static void Run(
            [QueueTrigger("myqueue-items-source", Connection = "AzureWebJobsStorage")] string myQueueItem, 
            [Queue("myqueue-items-destination", Connection = "AzureWebJobsStorage")] out string myQueueItemCopy,
            ILogger log)
        {
            log.LogInformation($"CopyQueueMessage function processed: {myQueueItem}");
            myQueueItemCopy = myQueueItem;
        }
    }
    

    Kuyruk depolama bağlantısı, ayarından elde edilir AzureWebJobsStorage .The connection to Queue storage is obtained from the AzureWebJobsStorage setting. Daha fazla bilgi için, belirli bağlama yönelik başvuru makalesine bakın.For more information, see the reference article for the specific binding.

Bu tabloda, Azure Işlevleri çalışma zamanının ana sürümlerinde desteklenen bağlamalar gösterilmektedir:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TürType 'in1.x 2. x ve üzeri12.x and higher1 TetikleyiciTrigger GirdiInput ÇıktıOutput
Blob depolamaBlob storage
Azure Cosmos DBAzure Cosmos DB
Davpr3Dapr3
Event GridEvent Grid
Event HubsEvent Hubs
HTTP & Web kancalarıHTTP & webhooks
IoT Hub’ıIoT Hub
Kafka2Kafka2
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Kuyruk depolamaQueue storage
Çbbitmq2RabbitMQ2
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Tablo depolamaTable storage
ZamanlayıcıTimer
TwilioTwilio

1 sürüm 2. x çalışma zamanı ile başlayarak, http ve Zamanlayıcı hariç tüm bağlamaların kayıtlı olması gerekir.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Bkz. bağlama uzantılarını kaydetme.See Register binding extensions.

2 tetikleyici tüketim planında desteklenmez.2 Triggers aren't supported in the Consumption plan. Çalışma zamanına dayalı Tetikleyicilergerektirir.Requires runtime-driven triggers.

3 yalnızca Kubernetes, IoT Edge ve yalnızca diğer şirket içinde barındırılan modlarda desteklenir.3 Supported only in Kubernetes, IoT Edge, and other self-hosted modes only.

İşlevleri test etmeTesting functions

Azure İşlevleri Temel Araçları, Azure İşlevleri projenizi yerel geliştirme bilgisayarınızda çalıştırmanıza olanak sağlar.Azure Functions Core Tools lets you run Azure Functions project on your local development computer. Daha fazla bilgi için bkz. Azure Functions Core Tools Ile çalışma.For more information, see Work with Azure Functions Core Tools. Visual Studio 'da bir işlevi ilk kez başlattığınızda bu araçları yüklemeniz istenir.You're prompted to install these tools the first time you start a function from Visual Studio.

Visual Studio 'da işlevinizi test etmek için:To test your function in Visual Studio:

  1. F5 tuşuna basın.Press F5. İstenirse Visual Studio'dan gelen Azure İşlevleri Temel (CLI) araçlarını indirme ve yükleme isteğini kabul edin.If prompted, accept the request from Visual Studio to download and install Azure Functions Core (CLI) tools. Ayrıca, araçların HTTP isteklerini işleyebilmesi için bir güvenlik duvarı özel durumu etkinleştirmeniz gerekebilir.You might also need to enable a firewall exception so that the tools can handle HTTP requests.

  2. Çalıştıran proje ile, dağıtılan bir işlevi test ettiğiniz için kodunuzu test edin.With the project running, test your code as you would test a deployed function.

    Daha fazla bilgi için bkz. Azure işlevlerinde kodunuzu test etme stratejileri.For more information, see Strategies for testing your code in Azure Functions. Visual Studio 'Yu hata ayıklama modunda çalıştırdığınızda, kesme noktaları beklenen şekilde dönüştürülür.When you run Visual Studio in debug mode, breakpoints are hit as expected.

Azure’da YayımlamaPublish to Azure

Visual Studio 'dan yayımladığınızda, iki dağıtım yönteminden birini kullanır:When you publish from Visual Studio, it uses one of two deployment methods:

Projenizi Azure 'da bir işlev uygulamasına yayımlamak için aşağıdaki adımları kullanın.Use the following steps to publish your project to a function app in Azure.

  1. Çözüm Gezgini'nde projeye sağ tıklayın ve Yayımla'yı seçin.In Solution Explorer, right-click the project and select Publish.

  2. Bir yayımlama hedefi seçinalanında, aşağıdaki tabloda belirtilen yayımlama seçeneklerini kullanın:In Pick a publish target, use the publish options specified in the following table:

    SeçenekOption AçıklamaDescription
    Azure Işlevleri tüketim planıAzure Functions Consumption Plan Bir Tüketim planındaçalışan bir Azure bulut ortamında bir işlev uygulaması oluşturun.Create a function app in an Azure cloud environment that runs in a Consumption plan. Bir tüketim planı kullandığınızda yalnızca işlevler uygulamanızın yürütmeleri için ödeme yaparsınız.When you use a Consumption plan, you pay only for executions of your functions app. Diğer barındırma planları daha yüksek maliyetler doğurur.Other hosting plans incur higher costs. Tüketim planı dışında bir planda çalıştırırsanız, işlev uygulamanızın ölçeklendirmesiniyönetmeniz gerekir.If you run in a plan other than a Consumption plan, you must manage the scaling of your function app.
    Yeni oluşturCreate New Azure 'da, ilgili kaynaklarla yeni bir işlev uygulaması oluşturulur.A new function app, with related resources, is created in Azure.
    Varolanı Seç' i seçerseniz, mevcut Işlev uygulamasındaki Azure 'daki tüm dosyaların yerel projedeki dosyalarla üzerine yazılır.If you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Bu seçeneği yalnızca, var olan bir işlev uygulamasına güncelleştirmeleri yeniden yayımladığınızda kullanın.Use this option only when you republish updates to an existing function app.
    Paket dosyasından ÇalıştırRun from package file İşlev uygulamanız, paket Çalıştır modu etkin olan ZIP dağıtımı kullanılarak dağıtılır.Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Bu dağıtım, daha iyi performans elde eden işlevlerinizi çalıştırmanın önerilen yoludur.This deployment, which results in better performance, is the recommended way of running your functions.
    Bu seçeneği kullanmazsanız, Azure 'da yayımlamadan önce işlev uygulaması projenizin yerel olarak çalışmasını durdurduğunuzdan emin olun.If you don't use this option, make sure to stop your function app project from running locally before you publish to Azure.

    Yayımlama profili oluşturma

  3. Profil Oluştur'u seçin.Select Create Profile. Visual Studio 'dan Azure hesabınızda zaten oturum açmadıysanız oturum aç' ı seçin.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Ayrıca, ücretsiz bir Azure hesabı da oluşturabilirsiniz.You can also create a free Azure account.

  4. App Service: Yeni oluştur' da, aşağıdaki tabloda belirtilen değerleri kullanın:In App Service: Create new, use the values specified in the following table:

    AyarSetting DeğerValue AçıklamaDescription
    AdName Genel olarak benzersiz bir adGlobally unique name Yeni işlev uygulamanızı benzersiz şekilde tanımlayan ad.Name that uniquely identifies your new function app. Bu adı kabul edin veya yeni bir ad girin.Accept this name or enter a new name. Geçerli karakterler şunlardır: a-z , 0-9 , ve - .Valid characters are: a-z, 0-9, and -.
    AbonelikSubscription AboneliğinizYour subscription Kullanılacak Azure aboneliği.The Azure subscription to use. Bu aboneliği kabul edin veya açılan listeden yeni bir tane seçin.Accept this subscription or select a new one from the drop-down list.
    Kaynak grubuResource group Kaynak grubunuzun adıName of your resource group İşlev uygulamanızın oluşturulacağı kaynak grubu.The resource group in which to create your function app. Açılan listeden var olan bir kaynak grubunu seçin veya yeni bir kaynak grubu oluşturmak için Yeni ' yi seçin.Select an existing resource group from the drop-down list or choose New to create a new resource group.
    Barındırma PlanıHosting Plan Barındırma planınızın adıName of your hosting plan Sunucusuz bir plan yapılandırmak için Yeni ' yi seçin.Select New to configure a serverless plan. Boyut' un altında tüketimi seçtiğinizden emin olun.Make sure to choose the Consumption under Size. Projenizi bir Tüketim planındaçalışan bir işlev uygulamasında yayımladığınızda yalnızca işlevler uygulamanızın yürütmeleri için ödeme yaparsınız.When you publish your project to a function app that runs in a Consumption plan, you pay only for executions of your functions app. Diğer barındırma planları daha yüksek maliyetler doğurur.Other hosting plans incur higher costs. Tüketimdışında bir planda çalıştırırsanız, işlev uygulamanızın ölçeklendirmesiniyönetmeniz gerekir.If you run in a plan other than Consumption, you must manage the scaling of your function app.
    KonumLocation App Service 'in konumuLocation of the app service Size yakın bir bölgede veya işlevlerinizin erişebileceği diğer hizmetlerden bir konum seçin.Choose a Location in a region near you or other services your functions access.
    Azure StorageAzure Storage Genel amaçlı depolama hesabıGeneral-purpose storage account Işlevler çalışma zamanı için bir Azure depolama hesabı gereklidir.An Azure Storage account is required by the Functions runtime. Genel amaçlı bir depolama hesabı yapılandırmak için Yeni ' yi seçin.Select New to configure a general-purpose storage account. Depolama hesabı gereksinimlerinikarşılayan mevcut bir hesabı da seçebilirsiniz.You can also choose an existing account that meets the storage account requirements.

    App Service Oluştur iletişim kutusu

  5. Azure 'da bu ayarlarla bir işlev uygulaması ve ilgili kaynakları oluşturmak ve işlev proje kodunuzu dağıtmak için Oluştur ' u seçin.Select Create to create a function app and its related resources in Azure with these settings and deploy your function project code.

  6. Yayımla ' yı seçin ve dağıtımın tamamlanmasını bekleyin.Select Publish and wait for the deployment to complete.

    Dağıtım tamamlandıktan sonra, Azure 'da işlev uygulamasının kök URL 'SI Yayımla sekmesinde gösterilir.After the deployment completes the root URL of the function app in Azure is shown in the Publish tab.

  7. Yayımla sekmesinde, Cloud Explorer 'Da Yönet' i seçin.In the Publish tab, choose Manage in Cloud Explorer. Bu, Cloud Explorer 'da yeni işlev uygulaması Azure kaynağı ' nı açar.This opens the new function app Azure resource in Cloud Explorer.

    Yayımlama profili oluşturma

    Cloud Explorer, Visual Studio 'Yu kullanarak sitenin içeriğini görüntüleyebilir, işlev uygulamasını başlatıp durdurabilir ve doğrudan Azure 'daki ve Azure portal uygulama kaynaklarına gidebilir.Cloud Explorer lets you use Visual Studio to view the contents of the site, start and stop the function app, and browse directly to function app resources on Azure and in the Azure portal.

İşlev uygulaması ayarlarıFunction app settings

Projeyi yayımladığınızda Visual Studio bu ayarları otomatik olarak yüklememediğinden local.settings.jseklediğiniz tüm ayarlar Azure 'daki işlev uygulamasına da eklemeniz gerekir.Because Visual Studio doesn't upload these settings automatically when you publish the project, any settings you add in the local.settings.json you must also add to the function app in Azure.

Gerekli ayarları Azure 'daki işlev uygulamanıza yüklemenin en kolay yolu, projenizi başarıyla yayımladıktan sonra görüntülenen Azure App Service ayarlarını yönet bağlantısını seçmesidir.The easiest way to upload the required settings to your function app in Azure is to select the Manage Azure App Service settings link that appears after you successfully publish your project.

Yayımla penceresindeki ayarlar

Bu bağlantının seçilmesi, yeni uygulama ayarları ekleyebileceğiniz veya var olanları değiştirebileceğiniz işlev uygulaması için uygulama ayarları iletişim kutusunu görüntüler.Selecting this link displays the Application settings dialog for the function app, where you can add new application settings or modify existing ones.

Uygulama ayarları

Yerel , local.settings.jsdosyadaki bir ayar değerini görüntüler ve Uzaktan Azure 'daki işlev uygulamasında bir geçerli ayar değeri görüntüler.Local displays a setting value in the local.settings.json file, and Remote displays a current setting value in the function app in Azure. Yeni bir uygulama ayarı oluşturmak için Ayar ekle ' yi seçin.Choose Add setting to create a new app setting. Bir ayar değerini uzak alana kopyalamak için Yerel bağlantıdan Ekle değerini kullanın.Use the Insert value from Local link to copy a setting value to the Remote field. Bekleyen değişiklikler, Tamam' ı seçtiğinizde yerel ayarlar dosyasına ve işlev uygulamasına yazılır.Pending changes are written to the local settings file and the function app when you select OK.

Not

Varsayılan olarak, dosyadaki local.settings.jskaynak denetimine iade edilmez.By default, the local.settings.json file is not checked into source control. Bu, kaynak denetiminden bir yerel Işlevler projesini klonladığınızda, projede local.settings.jsdosya yok demektir.This means that if you clone a local Functions project from source control, the project doesn't have a local.settings.json file. Bu durumda, uygulama ayarları iletişim kutusunun beklendiği gibi çalışması için proje kökündeki dosyasında local.settings.jsel ile oluşturmanız gerekir.In this case, you need to manually create the local.settings.json file in the project root so that the Application settings dialog works as expected.

Ayrıca, uygulama ayarlarını şu diğer yollarla da yönetebilirsiniz:You can also manage application settings in one of these other ways:

İzleme işlevleriMonitoring functions

İşlevlerinizin yürütülmesini izlemek için önerilen yol, işlev uygulamanızı Azure Application Insights ile tümleştirerek yapılır.The recommended way to monitor the execution of your functions is by integrating your function app with Azure Application Insights. Azure portal bir işlev uygulaması oluşturduğunuzda, bu tümleştirme varsayılan olarak sizin için yapılır.When you create a function app in the Azure portal, this integration is done for you by default. Ancak, Visual Studio yayımlama sırasında işlev uygulamanızı oluşturduğunuzda, Azure 'daki işlev uygulamanızda tümleştirme yapılmaz.However, when you create your function app during Visual Studio publishing, the integration in your function app in Azure isn't done. Application Insights işlev uygulamanıza nasıl bağlayacağınızı öğrenmek için bkz. Application Insights Tümleştirmesini Etkinleştirme.To learn how to connect Application Insights to your function app, see Enable Application Insights integration.

Application Insights kullanarak izleme hakkında daha fazla bilgi edinmek için bkz. Azure Işlevlerini izleme.To learn more about monitoring using Application Insights, see Monitor Azure Functions.

Sonraki adımlarNext steps

Azure Functions Core Tools hakkında daha fazla bilgi için bkz. Azure Functions Core Tools Ile çalışma.For more information about the Azure Functions Core Tools, see Work with Azure Functions Core Tools.

.NET sınıf kitaplıkları olarak işlevleri geliştirme hakkında daha fazla bilgi için bkz. Azure Işlevleri C# Geliştirici başvurusu.For more information about developing functions as .NET class libraries, see Azure Functions C# developer reference. Bu makale ayrıca, Azure Işlevleri tarafından desteklenen çeşitli tür bağlamaları bildirmek üzere özniteliklerin nasıl kullanılacağına dair örneklere bağlantı sağlar.This article also links to examples of how to use attributes to declare the various types of bindings supported by Azure Functions.