Azure Functions Core Tools ile çalışma
Azure Functions Core Tools, yerel bilgisayarınızda komut isteminden veya terminalden işlevlerinizi geliştirip test etmenize olanak tanır. Yerel işlevleriniz canlı Azure hizmetlerine bağlanabilir ve işlevlerinizin hatalarını tam İşlevler çalışma zamanını kullanarak yerel bilgisayarınızda ayıklayabilirsiniz. Azure aboneliğinize bir işlev uygulaması bile dağıtabilirsiniz.
Not
Aynı işlev uygulamasında yerel geliştirmeyi portal geliştirmeyle karıştırmayın. Yerel bir projeden işlevler oluşturup yayımladığınızda, portalda proje kodunu koruyamaz veya değiştiremezsiniz.
Yerel bilgisayarınızda işlevler geliştirme ve Bunları Core Tools kullanarak Azure'da yayımlama aşağıdaki temel adımları izler:
- Temel Araçları ve bağımlılıkları yükleyin.
- Dile özgü bir şablondan işlev uygulaması projesi oluşturun.
- Tetikleyici ve bağlama uzantılarını kaydedin.
- Depolama ve diğer bağlantıları tanımlayın.
- Tetikleyiciden ve dile özgü şablondan bir işlev oluşturun.
- İşlevi yerel olarak çalıştırın.
- Projeyi Azure'da yayımlama.
Önkoşullar
Temel Araçlar için belirli önkoşullar, kullanmayı planladığınız özelliklere bağlıdır:
Yayımlama: Temel Araçlar şu anda Azure CLI'ya veya Azure hesabınızla kimlik doğrulaması için Azure PowerShell bağlıdır. Bu, Azure İşlevleri Temel Araçlar'dan Azure'da yayımlama yapabilmek için bu araçlardan birini yüklemeniz gerektiği anlamına gelir.
Uzantıları yükleme: Core Tools kullanarak uzantıları el ile yüklemek için .NET 6.0 SDK'sının yüklü olması gerekir. .NET SDK'sı, NuGet'ten uzantıları yüklemek için Core Tools tarafından kullanılır. Azure İşlevleri uzantılarını kullanmak için .NET'i bilmeniz gerekmez.
Core Tools sürümleri
Azure İşlevleri Core Tools'un dört sürümü vardır. Kullandığınız sürüm yerel geliştirme ortamınıza, dil seçiminize ve gerekli destek düzeyine bağlıdır.
Belirli sürümler hakkında bilgi edinmek ve ayrıntılı yükleme yönergeleri için aşağıdaki sürüm sekmelerinden birini seçin:
İşlevler çalışma zamanının 4.x sürümünü destekler. Bu sürüm Windows, macOS ve Linux'ı destekler ve yükleme için platforma özgü paket yöneticilerini veya npm'yi kullanır. Bu, İşlevler çalışma zamanının ve Core Tools'un önerilen sürümüdür.
Belirli bir bilgisayara yalnızca bir Core Tools sürümü yükleyebilirsiniz. Aksi belirtilmediği sürece, bu makaledeki örnekler 4.x sürümüne yöneliktir.
Azure Functions Core Tools’u Yükleme
Azure İşlevleri Core Tools, yerel geliştirme bilgisayarınızda çalıştırabileceğiniz Azure İşlevleri çalışma zamanını destekleyen aynı çalışma zamanının bir sürümünü içerir. Ayrıca işlevler oluşturmak, Azure'a bağlanmak ve işlev projelerini dağıtmak için komutlar sağlar.
Core Tools, 2.x sürümünden itibaren Windows, macOS ve Linux üzerinde çalışır.
Aşağıdaki adımlarda Core Tools v4.x'i yüklemek için bir Windows installer (MSI) kullanılır. Diğer paket tabanlı yükleyiciler hakkında daha fazla bilgi için bkz . Core Tools benioku.
Windows sürümünüz temelinde Core Tools yükleyicisini indirin ve çalıştırın:
- v4.x - Windows 64 bit (Önerilir. Visual Studio Code hata ayıklama 64 bit gerektirir.)
- v4.x - Windows 32 bit
Core Tools sürümlerini değiştirme
Core Tools'un farklı bir sürümüne geçiş yaparken, farklı bir paket sürümüne geçmek için özgün yüklemeyle aynı paket yöneticisini kullanmanız gerekir. Örneğin, Core Tools sürüm 3.x'i npm kullanarak yüklediyseniz, 4.x sürümüne yükseltmek için aşağıdaki komutu kullanmanız gerekir:
npm install -g azure-functions-core-tools@4 --unsafe-perm true
Core Tools'u Windows'a yüklemek için Windows installer (MSI) kullandıysanız, farklı bir sürüm yüklemeden önce Program Ekle Kaldır'dan eski sürümü kaldırmanız gerekir.
Yerel İşlevler projesi oluşturma
İşlevler proje dizini, dile bakılmaksızın aşağıdaki dosya ve klasörleri 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ı da dahil olmak üzere, Core Tools tarafından yerel olarak çalıştırılırken kullanılan ayarlar. Daha fazla bilgi edinmek için bkz. yerel ayarlar. |
.gitignore | local.settings.json dosyasının yanlışlıkla git deposuna yayımlanmasını engeller. Daha fazla bilgi edinmek için bkz. yerel ayarlar |
.vscode\extensions.json | proje klasörünü Visual Studio Code açarken kullanılan ayarlar dosyası. |
İşlevler proje klasörü hakkında daha fazla bilgi edinmek için Azure İşlevleri geliştiricileri kılavuzuna bakın.
Terminal penceresinde veya komut isteminden aşağıdaki komutu çalıştırarak projeyi ve yerel Git deposunu oluşturun:
func init MyFunctionProj
Bu örnek, yeni MyFunctionProj
bir klasörde İşlevler projesi oluşturur. Projeniz için varsayılan bir dil seçmeniz istenir.
Proje başlatma için aşağıdaki önemli noktalar geçerlidir:
Komutta
--worker-runtime
seçeneği sağlamazsanız dilinizi seçmeniz istenir. Daha fazla bilgi için bkz. func init başvurusu.Proje adı sağlamadığınızda geçerli klasör başlatılır.
Projenizi özel bir Linux kapsayıcısına yayımlamayı planlıyorsanız, projeniz için bir Dockerfile oluşturulduğundan emin olmak için seçeneğini kullanın
--docker
. Daha fazla bilgi edinmek için bkz. Özel görüntü kullanarak Linux'ta işlev oluşturma.
Bazı dillerde dikkat edilmesi gereken noktalar daha fazla olabilir:
Core Tools, .NET çalışma zamanı için hem işlem içi hem de yalıtılmış çalışan işlemi C# sınıf kitaplığı projeleri (.csproj) olarak işlev uygulaması projeleri oluşturmanıza olanak tanır. Visual Studio veya Visual Studio Code ile kullanılabilen bu projeler, hata ayıklama sırasında ve Azure'da yayımlanırken derlenir.
--csx
C# betiği (.csx) dosyalarıyla yerel olarak çalışmak istiyorsanız parametresini kullanın. Bu dosyalar, Azure portal işlevleri oluştururken ve Core Tools'un 1.x sürümünü kullanırken elde ettiğiniz dosyalarla aynıdır. Daha fazla bilgi edinmek için bkz. func init başvurusu.
Uzantıları kaydetme
Çalışma zamanı 2.x sürümünden başlayarak , İşlev tetikleyicileri ve bağlamaları .NET uzantısı (NuGet) paketleri olarak uygulanır. Derlenmiş C# projeleri için, kullandığınız belirli tetikleyiciler ve bağlamalar için NuGet uzantı paketlerine başvurmanız yeterlidir. HTTP bağlamaları ve zamanlayıcı tetikleyicileri için uzantı gerekmez.
C# olmayan projelerin geliştirme deneyimini geliştirmek için İşlevler, host.json proje dosyanızdaki sürümlü bir uzantı paketine başvurmanızı sağlar. Uzantı paketleri , tüm uzantıları uygulamanızın kullanımına sunar ve uzantılar arasında paket uyumluluğu sorunları yaşama olasılığını ortadan kaldırır. Uzantı paketleri ayrıca .NET SDK'sını yükleme ve extensions.csproj dosyasıyla ilgilenme gereksinimini de ortadan kaldırır.
Uzantı paketleri, C# ile uyumlu projeler dışındaki işlev projeleri ve C# betiği için önerilen yaklaşımdır. Bu projeler için, başlatma sırasında host.json dosyasında uzantı paketi ayarı oluşturulur. Paketler etkinleştirilmediyse projenin host.json dosyasını güncelleştirmeniz gerekir.
Bağlama uzantılarını yüklemenin en kolay yolu uzantı paketlerini etkinleştirmektir. Paketleri etkinleştirdiğinizde, önceden tanımlanmış bir uzantı paketi kümesi otomatik olarak yüklenir.
Uzantı paketlerini etkinleştirmek için host.json dosyasını açın ve içeriğini aşağıdaki kodla eşleşecek şekilde güncelleştirin:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[2.*, 3.0.0)"
}
}
Daha fazla bilgi edinmek için bkz. bağlama uzantılarını Azure İşlevleri kaydetme.
Bir non-.NET projesinde, uzantı paketlerini kullanamamanıza neden olan durumlar (örneğin, pakette olmayan bir uzantının belirli bir sürümünü hedeflemeniz gerektiğinde) olabilir. Bu nadir durumlarda, projeniz için gereken belirli uzantı paketlerini yerel olarak yüklemek için Core Tools'u kullanabilirsiniz. Daha fazla bilgi edinmek için bkz . Uzantıları yükleme.
Yerel ayarlar
Azure'da bir işlev uygulamasında çalışırken, işlevlerinizin gerektirdiği ayarlar uygulama ayarlarında güvenli bir şekilde depolanır. Yerel geliştirme sırasında, bu ayarlar bunun yerine local.settings.json dosyasındaki nesnesine Values
eklenir. local.settings.json dosyası, yerel geliştirme araçları tarafından kullanılan ayarları da depolar.
local.settings.json bağlantı dizeleri gibi gizli diziler içerebileceğinden, bunu hiçbir zaman uzak bir depoda depolamamalısınız. Yerel ayarlar hakkında daha fazla bilgi edinmek için bkz. Yerel ayarlar dosyası.
Varsayılan olarak, proje Azure'da yayımlandığında bu ayarlar otomatik olarak geçirilmez. Bu ayarların Azure'daki --publish-local-settings
işlev uygulamasına eklendiğinden emin olmak için yayımlarken seçeneğini kullanın. Bölümdeki ConnectionStrings
değerler hiçbir zaman yayımlanmaz.
İşlev uygulaması ayarları değerleri, kodunuzda ortam değişkenleri olarak da okunabilir. Daha fazla bilgi için şu dile özgü başvuru makalelerinin Ortam değişkenleri bölümüne bakın:
için AzureWebJobsStorage
geçerli bir depolama bağlantı dizesi ayarlanmadığında ve yerel depolama öykünücüsü kullanılmadığında, aşağıdaki hata iletisi gösterilir:
local.settings.json dosyasında AzureWebJobsStorage için eksik değer. Bu, HTTP dışındaki tüm tetikleyiciler için gereklidir. 'func azure functionapp fetch-app-settings <functionAppName>' komutunu çalıştırabilir veya local.settings.json dosyasında bir bağlantı dizesi belirtebilirsiniz.
Depolama bağlantı dizelerinizi alma
Geliştirme için Azurite depolama öykünücüsü kullanırken bile, gerçek bir depolama bağlantısıyla yerel olarak çalıştırmak isteyebilirsiniz. Zaten bir depolama hesabı oluşturduğunuzu varsayarsak, birkaç yoldan biriyle geçerli bir depolama bağlantı dizesi alabilirsiniz:
Azure portal depolama hesapları'nı arayın ve seçin.
Depolama hesabınızı seçin, Ayarlar'daErişim anahtarları'nı seçin ve ardından Bağlantı dizesi değerlerinden birini kopyalayın.
İşlev oluşturma
Mevcut bir projede işlev oluşturmak için aşağıdaki komutu çalıştırın:
func new
komutunu ç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. Sürüm 1.x'te dili de seçmeniz gerekir.
Komutta işlev adını ve şablonunu func new
da belirtebilirsiniz. Aşağıdaki örnekte adlı MyHttpTrigger
bir HTTP tetikleyicisi oluşturma seçeneği kullanılır--template
:
func new --template "Http Trigger" --name MyHttpTrigger
Bu örnek adlı MyQueueTrigger
bir Kuyruk Depolama tetikleyicisi oluşturur:
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
Daha fazla bilgi edinmek için komutunafunc new
bakın.
İşlevleri yerel olarak çalıştırma
İşlevler projesini çalıştırmak için, İşlevler ana bilgisayarını projenizin kök dizininden çalıştırırsınız. Konak, projedeki tüm işlevler için tetikleyicileri etkinleştirir. Komut, start
proje dilinize bağlı olarak değişir.
func start
Not
bunun yerine İşlevler çalışma zamanının 1.x sürümü gerekir func host start
. Daha fazla bilgi edinmek için bkz. Azure İşlevleri Temel Araçlar başvurusu.
İşlevler ana bilgisayarı başlatıldığında, aşağıdaki örnekte olduğu gibi HTTP ile tetiklenen işlevlerin URL'sini döndürür:
Found the following functions: Host.Functions.MyHttpTrigger Job host started Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger
Önemli
Yerel olarak çalıştırıldığında, HTTP uç noktaları için yetkilendirme uygulanmaz. Bu, tüm yerel HTTP isteklerinin olarak authLevel = "anonymous"
işlendiğini gösterir. Daha fazla bilgi için HTTP bağlama makalesine bakın.
Test verilerini işleve geçirme
İşlevlerinizi yerel olarak test etmek için İşlevler ana bilgisayarını başlatır ve HTTP isteklerini kullanarak yerel sunucuda uç noktaları çağırırsınız. Çağırdığınız uç nokta işlevin türüne bağlıdır.
Not
Bu konudaki örnekler, terminalden veya komut isteminden HTTP istekleri göndermek için cURL aracını kullanır. Http isteklerini yerel sunucuya göndermek için tercih ettiğiniz bir aracı kullanabilirsiniz. cURL aracı, Linux tabanlı sistemlerde ve Windows 10 derleme 17063 ve sonraki sürümlerde varsayılan olarak kullanılabilir. Eski Windows'ta, önce cURL aracını indirip yüklemeniz gerekir.
Test işlevleri hakkında daha fazla genel bilgi için bkz. Azure İşlevleri'de kodunuzu test etme stratejileri.
HTTP ve web kancası ile tetiklenen işlevler
HTTP ve web kancası ile tetiklenen işlevleri yerel olarak çalıştırmak için aşağıdaki uç noktayı çağırırsınız:
http://localhost:{port}/api/{function_name}
İşlevler ana bilgisayarının dinlediği sunucu adını ve bağlantı noktasını kullandığınızdan emin olun. İşlev konağı başlatılırken oluşturulan çıktıda bunu görürsünüz. Tetikleyici tarafından desteklenen herhangi bir HTTP yöntemini kullanarak bu URL'yi çağırabilirsiniz.
Aşağıdaki cURL komutu, sorgu dizesinde MyHttpTrigger
geçirilen ad parametresiyle bir GET isteğinden hızlı başlangıç işlevini tetikler.
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
Aşağıdaki örnek, istek gövdesinde geçen bir POST isteği adından çağrılan işlevdir:
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
Sorgu dizesinde veri geçiren bir tarayıcıdan GET isteklerinde bulunabilirsiniz. Diğer tüm HTTP yöntemleri için cURL, Fiddler, Postman veya POST isteklerini destekleyen benzer bir HTTP test aracı kullanmanız gerekir.
HTTP ile tetiklenmeyen işlevler
HTTP ve Event Grid tetikleyicileri dışındaki tüm işlevler için yönetim uç noktası olarak adlandırılan özel bir uç noktayı çağırarak REST kullanarak işlevlerinizi yerel olarak test edebilirsiniz. Bu uç noktanın yerel sunucuda bir HTTP POST isteğiyle çağrılması işlevi tetikler. Hem HTTP ile tetiklenen hem de HTTP olmayan tetiklenen tüm işlevlerin URL'lerini almak için yönetici uç noktasını (http://localhost:{port}/admin/functions/
) çağırabilirsinizfunctions
.
Yerel olarak çalıştırılırken kimlik doğrulaması ve yetkilendirme atlanır. Ancak Azure'daki işlev uygulamanızda aynı yönetici uç noktalarını çağırmaya çalıştığınızda bir erişim anahtarı sağlamanız gerekir. Daha fazla bilgi için bkz . İşlev erişim anahtarları.
Önemli
Erişim anahtarları değerli paylaşılan gizli dizilerdir. Yerel olarak kullanıldığında, kaynak denetimi dışında güvenli bir şekilde depolanmalıdır. Yerel olarak çalışırken İşlevler için kimlik doğrulaması ve yetkilendirme gerekli olmadığından, senaryolarınız gerektirmediği sürece erişim anahtarlarını kullanmaktan ve depolamaktan kaçınmalısınız.
Event Grid ile tetiklenen işlevleri yerel olarak test etmek için bkz. Görüntüleyici web uygulamasıyla yerel test.
İsteğe bağlı olarak test verilerini POST isteğinin gövdesindeki yürütmeye geçirebilirsiniz. Bu işlev, Azure portal Test sekmesine benzer.
HTTP dışı işlevleri tetiklemek için aşağıdaki yönetici uç noktasını çağırırsınız:
http://localhost:{port}/admin/functions/{function_name}
Test verilerini bir işlevin yönetici uç noktasına geçirmek için, verileri POST istek iletisinin gövdesinde sağlamanız gerekir. İleti gövdesinin aşağıdaki JSON biçimine sahip olması gerekir:
{
"input": "<trigger_input>"
}
değer, <trigger_input>
işlevi tarafından beklenen biçimde veriler içerir. Aşağıdaki cURL örneği bir işlevin POST örneğidir QueueTriggerJS
. Bu durumda giriş, kuyrukta bulunması beklenen iletiye eşdeğer bir dizedir.
curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTrigger
Azure’da Yayımlama
Azure İşlevleri Core Tools iki dağıtım türünü destekler:
Dağıtım türü | Komut | Açıklama |
---|---|---|
Proje dosyaları | func azure functionapp publish |
zip dağıtımını kullanarak işlev proje dosyalarını doğrudan işlev uygulamanıza dağıtır. |
Kubernetes kümesi | func kubernetes deploy |
Linux işlev uygulamanızı kubernetes kümesine özel bir Docker kapsayıcısı olarak dağıtır. |
Yayımlamadan önce
Önemli
Core Tools'tan Azure'da yayımlama yapabilmek için yerel olarak Azure CLI veya Azure PowerShell yüklü olmalıdır.
Proje klasörü, yayımlanmaması gereken dile özgü dosyalar ve dizinler içerebilir. Dışlanan öğeler kök proje klasöründeki bir .funcignore dosyasında listelenir.
Azure aboneliğinizde kodunuzu dağıtabileceğiniz bir işlev uygulaması oluşturmuş olmanız gerekir. İkili dosyaların dağıtılabilmesi için derleme gerektiren projeler oluşturulmalıdır.
Azure CLI veya Azure PowerShell kullanarak komut isteminden veya terminal penceresinden işlev uygulaması oluşturmayı öğrenmek için bkz. Sunucusuz yürütme için İşlev Uygulaması oluşturma.
Önemli
Azure portal bir işlev uygulaması oluşturduğunuzda, varsayılan olarak İşlev çalışma zamanının 4.x sürümünü kullanır. İşlev uygulamasının çalışma zamanının 1.x sürümünü kullanmasını sağlamak için 1.x sürümünde çalıştırma başlığındaki yönergeleri izleyin. Mevcut işlevleri olan bir işlev uygulamasının çalışma zamanı sürümünü değiştiremezsiniz.
Proje dosyalarını dağıtma
Yerel kodunuzu Azure'daki bir işlev uygulamasında yayımlamak için komutunu publish
kullanın:
func azure functionapp publish <FunctionAppName>
Bu tür dağıtımlar için aşağıdaki önemli noktalar geçerlidir:
Yayımlama işlevi uygulamasındaki mevcut dosyaların üzerine yazar.
--publish-local-settings
İşlev uygulamanızda local.settings.json dosyasındaki değerlere göre uygulama ayarlarını otomatik olarak oluşturmak için seçeneğini kullanın.Derlenmiş projelerde uzak derleme gerçekleştirilir. Bu, seçeneği kullanılarak
--no-build
denetlenebilir.Projeniz dağıtım paketinden çalışacak şekilde dağıtılır. Bu önerilen dağıtım modunu devre dışı bırakmak için seçeneğini kullanın
--nozip
.Java, yerel projenizi Azure'da yayımlamak için Maven kullanır. Bunun yerine, Azure'da yayımlamak için aşağıdaki komutu kullanın:
mvn azure-functions:deploy
. Azure kaynakları ilk dağıtım sırasında oluşturulur.Aboneliğinizde mevcut olmayan bir
<FunctionAppName>
öğeyi yayımlamaya çalışırsanız hata alırsınız.
Kubernetes kümesi
İşlevler ayrıca İşlevler projenizi bir Docker kapsayıcısında çalışacak şekilde tanımlamanıza da olanak tanır. --docker
Kendi diliniz için bir Dockerfile oluşturmak için seçeneğini func init
kullanın. Bu dosya daha sonra dağıtılacak bir kapsayıcı oluşturulurken kullanılır. Kubernetes olmadan Azure'da özel kapsayıcı yayımlamayı öğrenmek için bkz. Özel kapsayıcı kullanarak Linux'ta işlev oluşturma.
Çekirdek Araçlar, projenizi kubernetes kümesine özel kapsayıcı görüntüsü olarak dağıtmak için kullanılabilir.
Aşağıdaki komut dockerfile dosyasını kullanarak bir kapsayıcı oluşturur ve kubernetes kümesine dağıtır.
func kubernetes deploy --name <DEPLOYMENT_NAME> --registry <REGISTRY_USERNAME>
Daha fazla bilgi edinmek için bkz. Kubernetes'e işlev uygulaması dağıtma.
Uzantıları yükleme
Uzantı paketlerini kullanamıyorsanız, projeniz için gereken belirli uzantı paketlerini yüklemek için Azure İşlevleri Core Tools'u yerel olarak kullanabilirsiniz.
Önemli
Uzantı paketleri etkinleştirilmiş bir işlev uygulamasına uzantıları açıkça yükleyemezsiniz. İlk olarak, uzantıları açıkça yüklemeden önce host.json dosyasındaki bölümü kaldırınextensionBundle
.
Aşağıdaki öğeler uzantıları el ile yüklemenizin bazı nedenlerini açıklamaktadır:
- Pakette bulunmayan bir uzantının belirli bir sürümüne erişmeniz gerekir.
- Pakette bulunmayan özel bir uzantıya erişmeniz gerekir.
- Tek bir pakette bulunmayan belirli bir uzantı birleşimine erişmeniz gerekir.
Uzantıları açıkça yüklediğinizde, projenizin köküne extensions.csproj adlı bir .NET proje dosyası eklenir. Bu dosya, işlevlerinizin gerektirdiği NuGet paketleri kümesini tanımlar. Bu dosyadaki NuGet paket başvuruları ile çalışabilirsiniz ancak Core Tools, bu C# proje dosyasını el ile düzenlemenize gerek kalmadan uzantıları yüklemenize olanak tanır.
Gerekli uzantıları yerel projenize yüklemek için Core Tools'u kullanmanın çeşitli yolları vardır.
Tüm uzantıları yükleme
Bağlamalar tarafından kullanılan tüm uzantı paketlerini yerel projenize otomatik olarak eklemek için aşağıdaki komutu kullanın:
func extensions install
komut, hangi paketlere ihtiyacınız olduğunu görmek, bunları yüklemek ve extensions projesini (extensions.csproj) yeniden derlemek için function.json dosyasını okur. Geçerli sürüme yeni bağlamalar ekler ancak mevcut bağlamaları güncelleştirmez. --force
Yeni bağlamaları yüklerken mevcut bağlamaları en son sürüme güncelleştirmek için seçeneğini kullanın. Daha fazla bilgi edinmek için komutunafunc extensions install
bakın.
İşlev uygulamanız Core Tools'un tanımadığı bağlamalar veya NuGet paketleri kullanıyorsa, belirli bir uzantıyı el ile yüklemeniz gerekir.
Belirli bir uzantıyı yükleme
Belirli bir uzantı paketini belirli bir sürüme yüklemek için aşağıdaki komutu kullanın; bu durumda Depolama uzantısı:
func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 5.0.0
Uyumlu herhangi bir NuGet paketini yüklemek için bu komutu kullanabilirsiniz. Daha fazla bilgi edinmek için komutunafunc extensions install
bakın.
İzleme işlevleri
İşlevlerinizin yürütülmesini izlemenin önerilen yolu, Azure Uygulaması Insights ile tümleştirmektir. Yürütme günlüklerini yerel bilgisayarınıza da akışla aktarabilirsiniz. Daha fazla bilgi edinmek için bkz. İzleme Azure İşlevleri.
Application Insights tümleştirmesi
İşlev uygulamanızı Azure'da oluşturduğunuzda Application Insights tümleştirmesi etkinleştirilmelidir. herhangi bir nedenle işlev uygulamanız bir Application Insights örneğine bağlı değilse, bu tümleştirmeyi Azure portal kolayca yapabilirsiniz. Daha fazla bilgi edinmek için bkz . Application Insights tümleştirmesini etkinleştirme.
Akış günlüklerini etkinleştirme
İş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.
Yerleşik günlük akışı
Aşağıdaki örnekte olduğu gibi Azure'da func azure functionapp logstream
çalışan belirli bir işlev uygulamasının akış günlüklerini almaya başlamak için komutunu kullanın:
func azure functionapp logstream <FunctionAppName>
Not
Yerleşik günlük akışı, Tüketim planında Linux üzerinde çalışan işlev uygulamaları için Core Tools'ta henüz etkinleştirilmedi. Bu barındırma planlarında, bunun yerine günlükleri neredeyse gerçek zamanlı olarak görüntülemek için Canlı Ölçüm Akışı'nı kullanmanız gerekir.
Canlı Ölçüm Akışı
Aşağıdaki örnekte olduğu gibi seçeneğini ekleyerek işlev uygulamanız için Canlı Ölçüm Akışı'nı--browser
yeni bir tarayıcı penceresinde görüntüleyebilirsiniz:
func azure functionapp logstream <FunctionAppName> --browser
Bu tür akış günlükleri, işlev uygulamanız için Application Insights tümleştirmesinin etkinleştirilmesini gerektirir.
ARM64 üzerinde x86 öykünmesi
İşlevler şu anda ARM64 cihazlarında yerel Python işlevi geliştirmeyi desteklemez. Öykünülmüş x86 ortamında çalıştırarak M1 yongası olan bir Mac bilgisayarda Python işlevleri geliştirmek için aşağıdaki adımları kullanın.
Terminalde Rosetta'yı etkinleştirme
Mac'inizde Finder'ı açın, Uygulamalar'ı seçin ve Terminal'i bulun.
Control tuşuna basılı tarayarak Terminal'e tıklayın ve Bilgi Al'ı seçin. Terminali çoğaltıp yeniden adlandırarak da ayrı bir paralel ortam oluşturabilirsiniz.
Rosetta kullanarak aç'ı seçin.
Rosetta'nın etkinleştirildiği Terminal'i açın ve kabuğunuzun zsh olduğundan emin olun.
x86 öykünmesini doğrulamak için aşağıdaki komutu çalıştırın.
$ arch
yanıtı
i386
, terminalinizin x86 öykünmüş bir ortam çalıştırdığını gösterir.
Gerekli paketleri yükleme
Aşağıdaki paketleri içeren bu ortamda İşlevler tarafından gereken tüm bağımlılıkları yeniden yükleyin:
- homebrew, yoluna
/usr/local/bin/brew
yüklenir. - Python
- Azure Functions Core Tools
Ayrıca, Python projeniz için gereken diğer paketleri yeniden yükleyin.
Diğer adları ayarlama (isteğe bağlı)
Rosetta'da doğru sürümlere başvurmayı kolaylaştırmak için isteğe bağlı olarak diğer adlar ayarlayabilirsiniz.
Aşağıda, zsh terminalinizi yapılandırmak için bir .zshrc dosyası oluşturma örneği verilmiştir:
# file: .zshrc
# rosetta terminal setup
if [ $(arch) = "i386" ]; then
alias python="/usr/local/bin/python3"
alias brew86='/usr/local/bin/brew'
alias pyenv86="arch -x86_64 pyenv"
alias func="/usr/local/Cellar/azure-functions-core-tools@4/4.0.4785/func"
fi
Diğer adları uygulamak için aşağıdaki komutu çalıştırın:
$ source .zshrc
Aşağıdaki örneklerde gösterildiği gibi komutunu kullanarak which
doğru sürümlere başvurdığınızı doğrulayın:
Komut | Örnek yanıt |
---|---|
$ which python |
python: aliased to /usr/local/bin/python3 |
$ which func |
func: aliased to /usr/local/Cellar/azure-functions-core-tools@4/4.0.4785/func |
Bu örnek yanıtlar önceki örnek .zshrc dosyasını temel alır.
Artık Terminal'den x86 ortamında Azure İşlevleri kullanacak şekilde ayarlandınız.
Visual Studio Code kullanıyorsanız Rosetta'yı yerleşik Terminal ile tümleştirebilirsiniz. Daha fazla bilgi için bkz. Visual Studio Code öykünmesini etkinleştirme.
Sonraki adımlar
Azure İşlevleri temel araçlarını kullanarak Azure işlevlerini geliştirmeyi, test etmeyi ve yayımlamayı öğrenin. Azure İşlevleri Core Tools açık kaynak ve GitHub'da barındırılır. Hata veya özellik isteği göndermek için bir GitHub sorunu açın.