Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Mümkün olduğunda yerel geliştirme ortamında Azure İşlevleri kod projenizi oluşturun ve doğrulayın. Azure İşlevleri Core Tools (v4) veya Azure İşlevleri CLI (v5) kullanarak, tümleşik geliştirme, hata ayıklama ve dağıtımlar için popüler geliştirme araçlarıyla tümleştirilen Azure İşlevleri yerel çalışma zamanı sürümünü elde edersiniz. Yerel işlevleriniz canlı Azure hizmetlerine bile bağlanabilir.
Bu makalede, yerel geliştirme için local.settings.json dosyasıyla çalışma gibi bazı paylaşılan yönergeler sağlanır. Ayrıca geliştirme ortamına özgü yönergelere de bağlantı sağlar.
Tavsiye
İşlevleri yerel olarak geliştirme hakkında ayrıntılı bilgi için bağlı IDE'ye özgü kılavuz makalelerine bakın.
Yerel geliştirme ortamları
Yerel bilgisayarınızda işlevleri geliştirme şekliniz dilinize ve araç tercihlerinize bağlıdır. Makalenin üst kısmında tercih ettiğiniz dili seçin.
Tavsiye
Tüm yerel geliştirme, yerel ortamda hata ayıklama için İşlevler konağı sağlamak üzere yerel Azure İşlevleri çalışma zamanına ve araçlarına (func CLI) dayanır.
İşlevleri tercih ettiğiniz dilde yerel olarak kodlarken bu geliştirme ortamlarını kullanın:
| Ortam | Açıklama |
|---|---|
| Visual Studio | Azure İşlevleri araçları Visual Studio'nunAzure geliştirme iş yüküne dahildir. C# işlev kodunuzu derleyebilir ve .NET sınıf kitaplığı olarak Azure'a dağıtabilirsiniz. Yerel test için Temel Araçları içerir. Daha fazla bilgi edinmek için bkz. Visual Studio kullanarak Azure'da ilk C# işlevinizi oluşturma. |
| Visual Studio Code | Visual Studio Code için Azure İşlevleri uzantısı, Visual Studio Code'a İşlevler desteği ekler. Çekirdek Araçları gerektirir. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. Visual Studio Code kullanarak ilk işlevinizi oluşturma. |
| Komut istemi veya terminal | Azure İşlevleri yerel bir çalışma zamanı ve yerel geliştirmeyi etkinleştiren araçlar sağlar. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için komut satırından Bkz. Azure'da C# işlevi oluşturma. |
| Ortam | Açıklama |
|---|---|
| Maven | Maven arketipi, Java işlevlerinin geliştirilmesini sağlamak için Temel Araçlar'ı kullanır. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. Java ve Maven ile ilk işlevinizi oluşturma. |
| Visual Studio Code | Visual Studio Code için Azure İşlevleri uzantısı, Visual Studio Code'a İşlevler desteği ekler. Çekirdek Araçları gerektirir. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. Visual Studio Code kullanarak ilk işlevinizi oluşturma. |
| IntelliJ IDEA | Maven arketipi ve Çekirdek Araçları, IntelliJ kullanarak işlevlerinizi geliştirmenizi sağlar. Daha fazla bilgi için bkz. IntelliJ kullanarak Azure'da ilk Java işlevinizi oluşturma. |
| Eclipse | Maven arketipi ve Temel Araçlar, Eclipse kullanarak işlevlerinizi geliştirmenizi sağlar. Daha fazla bilgi edinmek için bkz. Ecplise kullanarak Azure'da ilk Java işlevinizi oluşturma. |
| Ortam | Açıklama |
|---|---|
| Visual Studio Code | Visual Studio Code için Azure İşlevleri uzantısı, Visual Studio Code'a İşlevler desteği ekler. Çekirdek Araçları gerektirir. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. Visual Studio Code kullanarak ilk işlevinizi oluşturma. |
| Komut istemi veya terminal | Azure İşlevleri yerel bir çalışma zamanı ve yerel geliştirmeyi etkinleştiren araçlar sağlar. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için komut satırından Bkz. Azure'da Node.js işlevi oluşturma. |
| Ortam | Açıklama |
|---|---|
| Visual Studio Code | Visual Studio Code için Azure İşlevleri uzantısı, Visual Studio Code'a İşlevler desteği ekler. Çekirdek Araçları gerektirir. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. Visual Studio Code kullanarak ilk işlevinizi oluşturma. |
| Komut istemi veya terminal | Azure İşlevleri yerel bir çalışma zamanı ve yerel geliştirmeyi etkinleştiren araçlar sağlar. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için komut satırından Bkz. Azure'da PowerShell işlevi oluşturma. |
| Ortam | Açıklama |
|---|---|
| Visual Studio Code | Visual Studio Code için Azure İşlevleri uzantısı, Visual Studio Code'a İşlevler desteği ekler. Çekirdek Araçları gerektirir. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için bkz. Visual Studio Code kullanarak ilk işlevinizi oluşturma. |
| Komut istemi veya terminal | Azure İşlevleri yerel bir çalışma zamanı ve yerel geliştirmeyi etkinleştiren araçlar sağlar. Linux, macOS ve Windows'da geliştirmeyi destekler. Daha fazla bilgi edinmek için komut satırından Bkz. Azure'da Python işlevi oluşturma. |
Bu yerel geliştirme ortamlarının her biri işlev uygulaması projeleri oluşturmanıza ve yeni işlevler oluşturmak için önceden tanımlanmış işlev şablonlarını kullanmanıza olanak tanır. Her ortam yerel Azure İşlevleri çalışma zamanını ve araçlarını kullanır, böylece işlevlerinizi diğer tüm uygulamalarda yaptığınız gibi kendi makinenizdeki gerçek İşlevler çalışma zamanında test edebilir ve hatalarını ayıklayabilirsiniz. İşlev uygulaması projenizi bu ortamların herhangi birinden Azure'da da yayımlayabilirsiniz.
Yerel çalışma zamanı ve araçlar
Önemli
Azure İşlevleri CLI (v5) şu anda önizleme aşamasında. Bu önizleme sürümü henüz Java ve PowerShell'i desteklemez. Şu anda desteklenmeyen dillerle çalışmak için Azure İşlevleri Core Tools v4 kullanmaya devam edin.
Azure İşlevleri için sunulan func.exe adlı iki komut satırı aracı vardır:
| Azure İşlevleri Temel Araçları | Azure İşlevleri CLI | |
|---|---|---|
| func.exe sürümü | v4 | v5 |
| Destek düzeyi | Genel kullanılabilirlik (GA) | Preview |
| Ayak izini yükleme | Tüm yerel diller için tüm komutları ve özellikleri içeren tam ikili. | Küçük temel yüklemenin yanı sıra dil başına iş yükleri ve gerektiğinde eklediğiniz diğer özellikler. Barındırıcı ayrı bir iş yükü olarak dağıtılır, böylece CLI’yi yeniden indirmeden en son barındırıcı sürümünü edinirsiniz. |
| Kullanılacağı durum | Tüm geliştirme iş akışları için tam GA desteğine ihtiyacınız vardır. | Yerel ortamınızı Azure barındırma planı yapılandırmanızla eşitlenmiş durumda tutan hızlı başlangıç şablonları ve profilleri gibi yeni özelliklerle hafif, iş yükü tabanlı bir deneyim istiyorsunuz. |
Yerel proje dosyaları
İşlevler proje dizini, dilden bağımsız olarak proje kök klasöründe aşağıdaki dosyaları içerir:
| Dosya adı | Açıklama |
|---|---|
| host.json | Daha fazla bilgi edinmek için host.json başvurusuna bakın. |
| local.settings.json | Uygulama ayarları dahil olmak üzere yerel İşlevler çalışma zamanı tarafından kullanılan ayarlar. Daha fazla bilgi için bkz. yerel ayarlar dosyası. |
| .gitignore | local.settings.json dosyasının yanlışlıkla git deposunda yayımlanmasını engeller. Daha fazla bilgi için bkz. yerel ayarlar dosyası. |
| .vscode\extensions.json | Visual Studio Code'da proje klasörü açılırken kullanılan ayarlar dosyası. |
Projedeki diğer dosyalar dilinize ve belirli işlevlerinize bağlıdır. Daha fazla bilgi için dilinize yönelik geliştirici kılavuzuna bakın.
Yerel ayarlar dosyası
Dosya, local.settings.json uygulama ayarları ve yerel geliştirme araçları tarafından kullanılan diğer ayarları depolar. Dosyadaki local.settings.json ayarları yalnızca projenizi yerel olarak çalıştırırken kullanın. Projenizi Azure'da yayımladığınızda, işlev uygulamasının uygulama ayarlarına gerekli ayarları ekleyin.
Önemli
Dosya bağlantı local.settings.json dizeleri gibi gizli diziler içerebileceğinden, dosyayı kaynak denetimine işleme konusunda dikkatli olun. İşlevleri destekleyen araçlar, dosyadaki local.settings.json ayarları projenizin dağıtıldığı işlev uygulamasındaki uygulama ayarlarıyla eşitlemenin yollarını sağlar.
Dosya local.settings.json ş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>"
}
}
Projeleri yerel olarak çalıştırdığınızda bu ayarlar desteklenir:
| Ayar | Açıklama |
|---|---|
IsEncrypted |
Bu ayar olarak trueayarlandığında, tüm değerler yerel makine anahtarı kullanılarak şifrelenir.
func settings komutlarıyla kullanılır. Varsayılan değer false olarak belirlenmiştir. Hizmet bağlantı dizeleri gibi gizli diziler içerdiğinde yerel bilgisayarınızdaki local.settings.json dosyasını şifrelemek isteyebilirsiniz. Sunucu çalıştığında ayarların şifresini otomatik olarak çözer.
func settings decrypt Yerel olarak şifrelenmiş ayarları okumaya çalışmadan önce komutunu kullanın. |
Values |
Proje yerel olarak çalışırken kullanılan uygulama ayarlarının koleksiyonu. Bu anahtar-değer (dize-dize) çiftleri, Azure'daki işlev uygulamanızda AzureWebJobsStorage gibi uygulama ayarlarına karşılık gelir. Birçok tetikleyici ve bağlama, Connection için gibi bir bağlantı dizesi uygulama ayarını referans alan bir özelliğe sahiptir. Bu özellikler için dizide tanımlanmış bir uygulama ayarına Values ihtiyacınız 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ıdır. Ayar adları çift alt çizgi ( __) içeremez ve iki nokta üst üste (:) içermemelidir. Çift alt çizgi karakterleri çalışma zamanı tarafından ayrılmıştır ve iki nokta üst üste karakteri bağımlılık enjeksiyonunu desteklemek için ayrılmıştır. |
Host |
Bu bölümdeki ayarlar, projeleri yerel olarak çalıştırdığınızda İşlevler ana bilgisayar sürecini özelleştirmek içindir. Bu ayarlar, Azure'da projeleri çalıştırdığınızda da geçerli olan host.json ayarlarından ayrıdır. |
LocalHttpPort |
Yerel İşlevler ana bilgisayarını (func host start ve func run) çalıştırırken kullanılan varsayılan bağlantı noktasını ayarlar. Komut --port satırı seçeneği bu ayardan önceliklidir. Örneğin, Visual Studio IDE'de çalışırken, "Proje Özellikleri -> Hata Ayıklama" penceresine gidip "Uygulama Bağımsız Değişkenleri" alanında sağlanabilir bir host start --port <your-port-number> komutta bağlantı noktası numarasını açıkça belirterek bağlantı noktası numarasını değiştirebilirsiniz. |
CORS |
Kaynaklar arası paylaşıma (CORS) izin verilen kaynakları tanımlar. Kökenler, boşluk içermeyen virgülle ayrılmış bir liste olarak sağlanır. Joker karakter değeri (*) desteklenir ve bu değer herhangi bir kaynaktan gelen isteklere izin verir. |
CORSCredentials |
true olarak ayarlandığında, withCredentials isteklerine izin verir. |
ConnectionStrings |
Bir koleksiyon. İşlev bağlamalarınız tarafından kullanılan bağlantı dizeleri için bu koleksiyonu kullanmayın. Bu koleksiyon yalnızca genellikle ConnectionStrings gibi bir yapılandırma dosyasının bölümünden bağlantı dizeleri alan çerçeveler tarafından kullanılır. Bu nesnedeki 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ımlanmaz. Bu değerleri işlev uygulaması ayarlarınızın koleksiyonuna Connection strings açıkça eklemeniz gerekir. İşlev kodunuzda bir SqlConnection oluşturuyorsanız, bağlantı dizesi değerini portaldaki Uygulama Ayarları'nda diğer bağlantılarınızla birlikte depolayın. |
Aşağıdaki uygulama ayarları yerel olarak çalıştırılırken diziye Values eklenebilir:
| Ayar | Değerler | Açıklama |
|---|---|---|
AzureWebJobsStorage |
Depolama hesabı bağlantı dizesi veyaUseDevelopmentStorage=true |
Azure depolama hesabının bağlantı dizesini içerir. HTTP dışındaki tetikleyiciler kullanılırken gereklidir. Daha fazla bilgi için AzureWebJobsStorage başvuru kaynağına bakın.Azurite Emulator yerel olarak yüklü olduğunda ve AzureWebJobsStorage değerini UseDevelopmentStorage=true olarak ayarladığınızda, yerel Functions ana bilgisayarı öykünücüyü kullanır. Daha fazla bilgi için bkz. Yerel depolama öykünücüsü. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true|false |
Bir işlevi yerel olarak çalıştırırken devre dışı bırakmak için, işlevin adı olan "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" koleksiyona ekleyin<FUNCTION_NAME>. Daha fazla bilgi edinmek için bkz. Azure İşlevleri'nde işlevleri devre dışı bırakma. |
FUNCTIONS_WORKER_RUNTIME |
dotnetdotnet-isolatednodejavapowershellpython |
İşlevler çalışma zamanının hedeflenen dilini gösterir. İşlevler çalışma zamanının 2.x ve üzeri sürümleri için gereklidir.
func init komutu projeniz için bu ayarı oluşturur. Daha fazla bilgi edinmek için FUNCTIONS_WORKER_RUNTIME referansına bakın. |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Yerel olarak çalışırken PowerShell 7'nin kullanılacağını gösterir. Ayarlanmadıysa PowerShell Core 6 kullanılır. Bu ayar yalnızca yerel olarak çalıştırılırken kullanılır. PowerShell çalışma zamanı sürümü, powerShellVersion Azure'da çalıştırıldığında site yapılandırma ayarı tarafından belirlenir. |
dizisindeki values değerleri işlev kodunuzda ortam değişkenleri olarak kullanmayı öğrenmek için geliştirici kılavuzundaki Ortam değişkenleri bölümüne bakın.
dizisindeki values değerleri işlev kodunuzda ortam değişkenleri olarak kullanmayı öğrenmek için geliştirici kılavuzundaki Ortam değişkenleri bölümüne bakın.
dizisindeki values değerleri işlev kodunuzda ortam değişkenleri olarak kullanmayı öğrenmek için geliştirici kılavuzundaki Ortam değişkenleri bölümüne bakın.
dizisindeki values değerleri işlev kodunuzda ortam değişkenleri olarak kullanmayı öğrenmek için geliştirici kılavuzundaki Ortam değişkenleri bölümüne bakın.
Eşitleme ayarları
İşlevlerinizi yerel olarak geliştirirken, uygulamanızın gerektirdiği tüm yerel ayarları kodunuzu dağıttığınız işlev uygulamasının uygulama ayarlarına ekleyin. Geçerli ayarları işlev uygulamasından yerel projenize de indirmeniz gerekebilir. Uygulama ayarlarını Azure portalında el ile yapılandırabilirsiniz ancak aşağıdaki araçlar uygulama ayarlarını projenizdeki yerel ayarlarla eşitlemenize de olanak sağlar:
Tetikleyiciler ve bağlamalar
İşlevlerinizi yerel olarak geliştirirken tetikleyici ve bağlama davranışlarını göz önünde bulundurun. HTTP tetikleyicileri için, yerel bilgisayarda http://localhost/ kullanarak HTTP uç noktasını çağırabilirsiniz. HTTP ile tetiklenmeyen işlevlerde, yerel olarak çalıştırmak için birkaç seçenek kullanın:
- Yerel geliştirme sırasında bağlamaları test etmek için canlı Azure hizmetlerini hedefleyen bağlantı dizelerini kullanabilirsiniz. local.settings.json dosyasındaki diziye
Valuesuygun bağlantı dizesi ayarlarını ekleyin. Bunu yaptığınızda, test sırasındaki yerel yürütmeler üretim hizmetlerinizi etkileyebilir. Bunun yerine, geliştirme ve test sırasında kullanılacak ayrı canlı hizmetler ayarlamayı ve ardından üretim sırasında farklı hizmetlere geçmeyi göz önünde bulundurun. - Depolama tabanlı tetikleyiciler için yerel bir depolama öykünücüsü kullanın.
- Özel yönetici uç noktalarını kullanarak HTTP olmayan tetikleyici işlevlerini el ile çalıştırın. Daha fazla bilgi için bkz. HTTP ile tetiklenmeyen bir işlevi el ile çalıştırma.
Yerel test sırasında, yerel İşlevler çalışma zamanı (func.exe) tarafından sağlanan konağı yerel olarak çalıştırmanız gerekir. Daha fazla bilgi için bkz. Azure İşlevleri Core Tools veya Azure İşlevleri CLI.
HTTP test araçları
Geliştirme sırasında, HTTP GET yöntemini desteklediklerinde işlev uç noktalarınızdan herhangi birini bir web tarayıcısından çağırabilirsiniz. Ancak POST veya PUT gibi yükleri destekleyen diğer HTTP yöntemleri için, bu HTTP isteklerini oluşturmak ve işlev uç noktalarınıza göndermek için bir HTTP test aracı kullanmanız gerekir.
Dikkat
İsteklerinizin hassas veriler içermesi gereken senaryolar için verilerinizi koruyan ve tüm hassas verileri genel kullanıma açma riskini azaltan bir araç kullandığınızdan emin olun. Korumanız gereken hassas veriler şunlar olabilir: kimlik bilgileri, gizli diziler, erişim belirteçleri, API anahtarları, coğrafi konum verileri ve kişisel veriler.
Çevrimdışı veya yerel olarak çalışan, verilerinizi bulutla eşitlemeyen ve çevrimiçi bir hesapta oturum açmanızı gerektirmeyen bir HTTP test aracı seçerek verilerinizin güvenliğini sağlayın. Bazı araçlar, belirli güvenlik özelliklerini uygulayarak verilerinizi yanlışlıkla açığa çıkarmaktan da koruyabilir.
HTTP istek geçmişinizi (hassas bilgiler dahil) merkezi olarak depolayan, en iyi güvenlik uygulamalarını izlemeyen veya veri gizliliği endişelerine uymayen araçları kullanmaktan kaçının.
http isteklerini işlev uç noktalarınıza güvenli bir şekilde göndermek için şu araçlardan birini kullanmayı göz önünde bulundurun:
- Visual Studio Marketplace'ten .http dosya uzantısına sahip Visual Studio Code gibi REST İstemcisi
- Visual Studio sürüm 17.8'den başlayarak .http dosyalarını destekler
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ağ Konsolu aracı
- Bruno
- curl
Yerel depolama emülatörü
Yerel geliştirme sırasında, uzak depolama hizmetlerine bağlanmadan Azure Depolama bağlamaları (Kuyruk Depolama, Blob Depolama ve Tablo Depolama) ile işlevleri test ederken yerel Azurite öykünücüsü kullanabilirsiniz. Azurite, Visual Studio Code ve Visual Studio ile tümleştirilir ve npm kullanarak komut isteminden de çalıştırabilirsiniz. Daha fazla bilgi için bkz. Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma.
local.settings.json dosyasının koleksiyonundaki Values aşağıdaki ayar yerel İşlevler ana bilgisayarına varsayılan AzureWebJobsStorage bağlantı için Azurite kullanmasını söyler:
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
Bu ayar değeriyle, bağlantı olarak kullanan AzureWebJobsStorage tüm Azure Depolama tetikleyicileri veya bağlamaları yerel olarak çalıştırılırken Azurite'ye bağlanır. Yerel yürütme sırasında depolama öykünmesi kullanılırken şu noktaları göz önünde bulundurun:
- Azurite yüklü ve çalışıyor olmalıdır.
- Azure'da yayımlamadan önce Azure hizmetlerine gerçek bir depolama bağlantısıyla test etmelisiniz.
- Projenizi yayımladığınızda,
AzureWebJobsStorageayarınıUseDevelopmentStorage=trueolarak yayımlamayın. Azure'daAzureWebJobsStoragebu ayar her zaman işlev uygulamanız tarafından kullanılan depolama hesabının bağlantı dizesi olmalıdır. Daha fazla bilgi için bkz.AzureWebJobsStorage.
İlgili makaleler
- Visual Studio kullanarak işlevlerin yerel olarak geliştirilmesi hakkında daha fazla bilgi edinmek için bkz. Visual Studio kullanarak Azure İşlevleri geliştirme.
- Bir Go işlev uygulamasını yerel olarak oluşturmak ve çalıştırmak için bkz. Komut satırından Go işlevi oluşturma.
- Go'ya özgü proje yapısı ve yerel geliştirme ayrıntıları için Go geliştirici başvurusuna bakın.
- Mac, Linux veya Windows bilgisayarda Visual Studio Code kullanarak işlevlerin yerel olarak geliştirilmesi hakkında daha fazla bilgi edinmek için bkz. Visual Studio Code kullanarak Azure İşlevleri geliştirme.
- Komut isteminden veya terminalden işlev geliştirme hakkında daha fazla bilgi edinmek için bkz. Azure İşlevleri Temel Araçları ile çalışma.
- Azure İşlevleri CLI'nin önizleme sürümü (v5) hakkında daha fazla bilgi edinmek için Azure İşlevleri CLI’yi kullanarak Azure İşlevleri’ı yerel olarak geliştirme konusuna bakın.