Azure İşlevleri’ni yerel olarak kodlama ve test etme

Uygulama geliştirme ve test testlerini Azure İşlevleri, [Azure portal]geliştiriciler yerel bir geliştirme deneyimi tercih eder. İşlevler, yerel bilgisayarınızda işlev oluşturmak ve test etmek için sık kullanılan kod düzenleyicisi ve geliştirme araçlarını kullanmayı kolaylaştırır. Yerel işlevleriniz canlı Azure hizmetlerine bağlanabilir ve tam İşlevler çalışma zamanını kullanarak yerel bilgisayarınızda bu işlevlerin hata ayıklamalarını sağlayabilirsiniz.

Bu makalede, tercih ettiğiniz dil için belirli geliştirme ortamlarının bağlantıları ve sağlar. Ayrıca, yerel geliştirme için dosyasındaki verilerle çalışma gibi local.settings.jsrehberlik sağlar.

Yerel geliştirme ortamları

Yerel bilgisayarınızda işlev geliştirme yolunuz, dilinize ve araç tercihlerinize bağlıdır. Aşağıdaki tabloda yer alan ortamlar yerel geliştirmeyi destekler:

Ortam Diller Description
Visual Studio Code C# (sınıf kitaplığı)
C# yalıtılmış işlemi (.NET 5.0)
JavaScript
PowerShell
Python
Azure İşlevleri uzantısı, VS Code'ye İşlevler desteği VS Code. Çekirdek Araçlar gerektirir. Core Tools'un 2.x sürümü Windows Linux, macOS ve Windows üzerinde geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. İlk işlevinizi Visual Studio Code.
Komut istemi veya terminal C# (sınıf kitaplığı)
C# yalıtılmış işlemi (.NET 5.0)
JavaScript
PowerShell
Python
[Azure Functions Core Tools,] yerel geliştirmeyi etkinleştiren işlevler oluşturmak için çekirdek çalışma zamanı ve şablonlar sağlar. Sürüm 2.x Linux, macOS ve Windows. Tüm ortamlar, yerel İşlevler çalışma zamanı için Core Tools'a güvenmektedir.
Visual Studio 2019 C# (sınıf kitaplığı)
C# yalıtılmış işlemi (.NET 5.0)
Azure İşlevleri araçları, 2019 ve sonraki sürümlerin Azure Visual Studio iş yüküne dahil edilir. Bir sınıf kitaplığında işlevleri derlemenizi ve azure'da .dll sağlar. Yerel test için Temel Araçları içerir. Daha fazla bilgi edinmek için bkz. Azure İşlevleri kullanarak Visual Studio.
Maven (çeşitli) Java Maven arketipi, Java işlevlerinin geliştirilmesini sağlamak için Core Tools'ı destekler. Sürüm 2.x Linux, macOS ve Windows. Daha fazla bilgi edinmek için bkz. Java ve Maven ile ilk işlevinizi oluşturma. Eclipse ve IntelliJ IDEA kullanarak geliştirmeyi de destekler

Önemli

Aynı işlev uygulamasında Portal geliştirmeyle yerel geliştirme karışmayın. Yerel bir projeden işlevler oluşturup yayımladığınızda, portalda proje kodunu sürdürme veya değiştirme denemeniz gerekir.

Bu yerel geliştirme ortamlarının her biri işlev uygulaması projeleri oluşturmanıza ve önceden tanımlanmış İşlevler şablonlarını kullanarak yeni işlevler oluşturmanıza olanak tanır. Her biri, diğer tüm uygulamalarda olduğu gibi işlevlerinizi kendi makineniz üzerinde gerçek İşlevler çalışma zamanı üzerinde test etmek ve hata ayıklamak için Core Tools'u kullanır. İşlev uygulaması projenizi bu ortamlardan herhangi bir azure'da da yayımabilirsiniz.

Yerel ayarlar dosyası

Dosya local.settings.js, yerel geliştirme araçları tarafından kullanılan uygulama ayarlarını ve ayarlarını depolar. Ayarlar dosyada local.settings.js, yalnızca projenizi yerel olarak çalıştırmanız için kullanılır.

Önemli

Üzerinde local.settings.js, bağlantı dizeleri gibi gizli diziler içerenenden, bunu asla uzak bir depoda depolamanız gerekir. İşlevleri destekleyen araçlar, dosyada local.settings.jsprojenizin dağıtılacağı işlev uygulamasında uygulama ayarlarıyla eşitlemenin yollarını sağlar.

Yerel ayarlar dosyası şu yapıya sahiptir:

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

Bu ayarlar, projeleri yerel olarak çalıştırabilirsiniz:

Ayar Açıklama
IsEncrypted Bu ayar olarak true ayarlanırsa, tüm değerler yerel makine anahtarıyla şifrelenir. Komutlarla func settings kullanılır. Varsayılan değer false olarak belirlenmiştir. Hizmet bağlantı dizeleri local.settings.jsgizli diziler içerdiğinde yerel bilgisayarınızda dosyada yer alan dosyaları şifrelemek iyi olabilir. Konak, çalıştırılırken ayarların şifresini otomatik olarak çözebilir. Yerel olarak func settings decrypt şifrelenmiş ayarları okumaya çalışmadan önce komutunu kullanın.
Values Bir proje yerel olarak çalıştır çalıştırılabilirken kullanılan uygulama ayarlarının koleksiyonu. Bu anahtar-değer (dize-dizesi) çiftleri, azure'daki işlev uygulamanıza ilişkin uygulama ayarlarına karşılık [AzureWebJobsStorage] gelir. Birçok tetikleyici ve bağlamanın, Blob depolama tetikleyicisi gibi bir bağlantı dizesi uygulama ayarına Connection başvuran bir özelliği vardır. Bu özellikler için dizide tanımlanmış bir uygulama ayarına ihtiyacınız Values vardır. Sık kullanılan ayarların listesi için sonraki tabloya bakın.
Değerler JSON nesneleri veya dizileri değil dizeler olmalı. Ayar adları iki nokta üst üste ( : ) veya çift alt çizgi ( ) __ içerebilir. Çift alt çizgi karakterleri çalışma zamanı tarafından ayrılmıştır ve iki nokta üst üste, bağımlılık eklemesini desteklemek için ayrılmıştır.
Host Ayarlar bölümünde, projeleri yerel olarak çalıştırarak İşlevler konak işlemini özelleştirebilirsiniz. Bu ayarlar, ayarlar host.jsayrıdır ve Azure'da proje çalıştıracakları zaman da geçerlidir.
LocalHttpPort Yerel İşlevler ana bilgisayarı ( ve ) çalıştırıldıken kullanılan varsayılan bağlantı func host start noktasını func run ayarlar. Komut --port satırı seçeneği bu ayardan önceliklidir. Örneğin, Visual Studio IDE'de çalıştırarak, "Project Özellikler -> Hata Ayıkla" penceresine giderek ve "Uygulama Bağımsız Değişkenleri" alanında sağlanlanacak bir komutta bağlantı noktası numarasını açıkça belirterek bağlantı noktası numarasını host start --port <your-port-number> değiştirebilirsiniz.
CORS Çıkış noktası arası kaynak paylaşımı (CORS) için izin verilen kaynakları tanımlar. Çıkış noktası, boşluk olmayan virgülle ayrılmış bir liste olarak sağlanır. Joker karakter değeri ( * ), herhangi bir kaynaktan gelen isteklere izin veren desteklemektedir.
CORSCredentials olarak ayarlanırsa true withCredentials isteklere izin verir.
ConnectionStrings Bir koleksiyon. İşlev bağlamaları tarafından kullanılan bağlantı dizeleri için bu koleksiyonu kullanma. Bu koleksiyon yalnızca bir yapılandırma dosyasının bölümünden genellikle bağlantı dizelerini alan çerçeveler tarafından ConnectionStrings kullanılır, Entity Framework. Bu nesnede bağlantı dizeleri, System.Data.SqlClient sağlayıcı türüyle ortama eklenir. Bu koleksiyondaki öğeler, diğer uygulama ayarlarıyla Azure'da yayımlanamaz. Bu değerleri işlev uygulaması ayarlarınızın Connection strings koleksiyonuna açıkça eklemeniz gerekir. İşlev kodunda bir oluşturuyorsanız, bağlantı dizesi değerini portalda Application SqlConnection Ayarlar bağlantılarla depolamanız gerekir.

Aşağıdaki uygulama ayarları, yerel olarak Values çalıştırılabilirken diziye dahil olabilir:

Ayar Değerler Açıklama
AzureWebJobsStorage Depolama bağlantı dizesini seçin veya
UseDevelopmentStorage=true
Azure depolama hesabının bağlantı dizesini içerir. HTTP dışında tetikleyiciler kullanırken gereklidir. Daha fazla bilgi için başvuruya [AzureWebJobsStorage] bakın.
Azure Depolama Emulator'i yerel olarak yüklemiş ve olarak ayar [AzureWebJobsStorage] her zaman , Çekirdek Araçlar UseDevelopmentStorage=true öykünücüsünü kullanır. Öykünücü geliştirme sırasında yararlıdır, ancak dağıtımdan önce gerçek bir depolama bağlantısıyla test edin.
AzureWebJobs.<FUNCTION_NAME>.Disabled true|false Yerel olarak çalışan bir işlevi devre dışı bırakmak için koleksiyonuna "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" ekleyin; <FUNCTION_NAME> burada işlevin adıdır. Daha fazla bilgi edinmek için bkz. Azure İşlevleri'de işlevleri devre dışı bırakma
FUNCTIONS_WORKER_RUNTIME dotnet
node
java
powershell
python
Işlevlerin çalışma zamanının hedeflenen dilini gösterir. Sürüm 2. x ve üzeri Işlevleri çalışma zamanının daha yüksek olması gerekir. Bu ayar projeniz için temel araçlar tarafından üretilir. Daha fazla bilgi için bkz FUNCTIONS_WORKER_RUNTIME . başvuru.
FUNCTIONS_WORKER_RUNTIME_VERSION ~7 Yerel olarak çalıştırılırken PowerShell 7 ' nin kullanılacağını gösterir. Ayarlanmamışsa, PowerShell Core 6 kullanılır. Bu ayar yalnızca yerel olarak çalıştırılırken kullanılır. Azure 'da çalışırken, PowerShell çalışma zamanı sürümü powerShellVersion Portal 'da ayarlanbilensite yapılandırma ayarı tarafından belirlenir.

Sonraki adımlar