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.
Azure İşlevleri'nin bir özelliği olan Dayanıklı İşlevler'i kullanarak sunucusuz bir ortamda durum bilgisi olan işlevler yazın. Dayanıklı İşlevler'ın faydalı olduğu senaryolar arasında mikro hizmetlerin ve iş akışlarının orkestrasyonu, fan-out/fan-in gibi durum bilgisi gerektiren desenler ve uzun süreli görevler bulunur.
Dayanıklı İşlevleriniz için orkestrasyon ve varlık çalışma zamanı durumunu depolamak üzere arka uç olarak Dayanıklı Görev Zamanlayıcı'yı kullanabilirsiniz.
Bu hızlı başlangıç rehberinde şunları yapacaksınız:
- Dayanıklı Görev Zamanlayıcısı'nı kullanmak için mevcut bir Dayanıklı İşlevler uygulamasını yapılandırın.
- Yerel geliştirme için Dayanıklı Görev emülatörünü ayarlayın.
- Visual Studio Code kullanarak uygulamanızı App Service planında Azure'a dağıtın.
- Dayanıklı Görev Zamanlayıcı panosunda uygulamanızın ve görev hub'ınızın durumunu izleyin.
C# için bu hızlı başlangıç kılavuzunda, .NET İzole Çalışan Modeli kullanılır.
Önkoşullar
- Yerel bilgisayarınızda var olan bir Azure İşlevleri projesi:
- Dayanıklı İşlevler uygulaması oluşturun - JavaScript
- Dayanıklı Görev Zamanlayıcı öykünücüsü çalıştırmak için Docker yüklendi.
- Azurite yüklendi.
- Verilerinizin güvenliğini sağlayan bir HTTP test aracı .
Dayanıklı Görev Zamanlayıcı paketini ekleme
Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged paketinin en son sürümünü dotnet add package komutunu kullanarak yükleyin.
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease
Uyarı
Dayanıklı Görev Zamanlayıcı uzantısı, Microsoft.Azure.Functions.Worker.Extensions.DurableTask sürüm 1.2.2 veya üzerini gerektirir.
host.jsoniçinde, özelliğini Dayanıklı Görev Zamanlayıcı desteği içeren 4.32.0 veya sonraki bir sürümü kullanacak şekilde güncelleştirin extensionBundle :
{
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.32.0, 5.0.0)"
}
}
host.json dosyasını güncelle
Arka uç olarak Dayanıklı Görev Zamanlayıcı'yı kullanmak için host.json aşağıdaki gibi güncelleştirin.
{
"extensions": {
"durableTask": {
"hubName": "%TASKHUB_NAME%",
"storageProvider": {
"type": "azureManaged",
"connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
}
}
}
}
local.settings.json yapılandırın
Yerel geliştirme için bağlantı bilgileri ekleyin:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
"TASKHUB_NAME": "default"
}
}
Dayanıklı Görev öykünücüsünü ayarlayın
Emülatörü içeren docker imajını alın.
docker pull mcr.microsoft.com/dts/dts-emulator:latestÖykünücüyü çalıştırın.
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latestAşağıdaki çıktı, öykünücünün başarıyla başladığını gösterir.
Docker masaüstünde kullanıma sunulan bağlantı noktalarını not edin. Zamanlayıcı, farklı amaçlar için birden çok bağlantı noktasını kullanıma sunar:
-
8080: Bir uygulamanın zamanlayıcıya bağlanmasına izin veren gRPC uç noktası -
8082: Dayanıklı Görev Zamanlayıcı panosu için uç nokta
-
Uyarı
Dayanıklı Görev Zamanlayıcı öykünücüsü, düzenleme verilerini bellekte depolar, bu da kapatıldığında tüm verilerin kaybolduğu anlamına gelir.
Yerel olarak test et
Uygulamanızın kök dizinine gidin ve Azurite'yi başlatın.
azurite startUygulamayı çalıştırın.
func startUygulamanızdaki işlevlerin listesini görmeniz gerekir.
Seçtiğiniz HTTP
POSTtest aracını kullanarak URL uç noktasına bir HTTP isteği göndererek bir düzenleme örneği başlatın.url
statusQueryGetUrideğerini kopyalayın ve tarayıcınızın adres çubuğuna yapıştırın. Orkestrasyon örneğinin durumunu görmelisiniz.{ "name": "DurableFunctionsOrchestration", "instanceId": "<instanceID>", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2025-02-21T21:09:59Z", "lastUpdatedTime": "2025-02-21T21:10:00Z" }Düzenleme örneği hakkında daha fazla ayrıntı görüntülemek için http://localhost:8082/ gidin ve Dayanıklı Görev Zamanlayıcı panosunu açın.
Panosunu görmek için varsayılan görev hub'ına tıklayın.
Test sorunlarıyla mı karşılaşılıyor? Sorun giderme kılavuzuna bakın.
Uygulamanızı Azure'da çalıştırma
Gerekli kaynakları oluşturma
İşlev uygulaması tümleşik oluşturma akışının ardından Azure'da Dayanıklı Görev Zamanlayıcı örneği ve Azure İşlevleri uygulaması oluşturun. Bu deneyim, kimlik tabanlı erişimi otomatik olarak ayarlar ve uygulamanın zamanlayıcıya erişmesi için gerekli ortam değişkenlerini yapılandıracaktır.
Fonksiyon uygulaması oluşturma paneline gidin.
İşlev Uygulaması Oluştur (Esnek Tüketim) dikey penceresinde Temel Bilgiler sekmesindeki bilgileri doldurun.
Alan Açıklama Subscription Azure aboneliğinizi seçin. Kaynak Grubu Mevcut bir kaynak grubunu seçin veya yeni bir grup oluşturmak için Yeni oluştur'a tıklayın. İşlev Uygulamasının adı İşlev uygulamanız için benzersiz bir ad oluşturun. Kod veya kapsayıcı görüntüsü dağıtmak istiyor musunuz? Kod seçeneğinin seçili kalmasını sağlayın. Bölge Desteklenen bölgelerden birini seçin. Çalışma zamanı yığını Bu hızlı başlangıç için kullandığınız çalışma zamanını seçin. Sürüm Çalışma zamanı yığını sürümünüzü seçin. Örnek boyutu Bir örnek boyutu seçin veya varsayılan seçimi kullanın. Örnek boyutları hakkında daha fazla bilgi edinin. Alanlar Arası Yedeklilik Varsayılan Devre Dışı ayarı olarak bırakın. Dayanıklı İşlevler sekmesini seçin.
Dayanıklı İşlevleriniz için arka uç sağlayıcısı olarak Azure tarafından yönetilen: Dayanıklı Görev Zamanlayıcı'yı seçin.
Bir zamanlayıcı kaynağı oluşturun. Bu eylem otomatik olarak bir görev hub'ı oluşturur.
Alan Açıklama Depolama altyapısı Azure tarafından yönetilen: Dayanıklı Görev Zamanlayıcı'yı seçin. Bölge Zamanlayıcı ve işlev uygulaması bölgelerinin aynı olduğundan emin olun. Dayanıklı Görev Zamanlayıcı Sunulan zamanlayıcı adını kullanın veya Özel ad oluşturmak için Yeni oluştur'a tıklayın. Tasarı Projenize en uygun fiyatlandırma planını seçin. Üretim kullanımı için en uygun planı belirlemek için Düzenleme çerçevesi seçme kılavuzunu gözden geçirin. Kapasite birimleri Yalnızca "Ayrılmış" fiyatlandırma planı seçildiğinde geçerlidir. En fazla 3 Kapasite Birimi seçebilirsiniz. Kaynak oluşturmayı gözden geçirmek için Gözden Geçir + oluştur'a tıklayın.
Gerekli rol tabanlı erişim denetimi (RBAC) iznine sahip kullanıcı tarafından atanan yönetilen kimlik otomatik olarak oluşturulur ve İşlev uygulamasına eklenir. Yönetilen kimlik kaynağıyla ilgili özet görünüm bilgilerini bulabilirsiniz, örneğin:
Kendisine atanan rol (Dayanıklı Görev Verileri Katkıda Bulunanı)
Görev hub'ı düzeyi kapsamındaki atama
Doğrulama geçtikten sonra Oluştur'a tıklayın.
Kaynak dağıtımı yaklaşık 15-20 dakika sürebilir. Bu işlemi tamamladıktan sonra uygulamanızı Azure'a dağıtabilirsiniz.
İşlev uygulamanızı Azure'a dağıtma
Önemli
Mevcut bir işlev uygulamasına dağıtım yapıldığında Azure'da bu uygulamanın içeriğinin her zaman üzerine yazılacağını unutmayın.
Komut paletine Azure İşlevleri: İşlev Uygulamasına Dağıt yazın ve seçin.
Yeni oluşturduğunuz işlev uygulamasını seçin. Önceki dağıtımların üzerine yazmanız istendiğinde, işlev kodunuzu yeni işlev uygulaması kaynağına dağıtmak için Dağıt'ı seçin.
Dağıtım tamamlandığında, oluşturduğunuz Azure kaynakları da dahil olmak üzere oluşturma ve dağıtım sonuçlarını görüntülemek için View Output öğesini seçin. Bildirimi kaçırırsanız, yeniden görmek için sağ alt köşedeki zil simgesini seçin.
İşlevler Premium planındaki uygulamalar
Uygulamanız İşlevler Premium planında çalışıyorsa, uygulamanızın yüke göre otomatik olarak ölçeklendirildiğinden emin olmak için dağıtımdan sonra Çalışma Zamanı Ölçeği İzleme ayarını açın:
az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites
İşlev uygulamanızı test edin
İşlevinizin URL'sini almak için aşağıdaki komutu çalıştırın:
az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME> --query '[].{Function:name, URL:invokeUrlTemplate}' --output json
Orkestrasyon durumunu kontrol etme
Dayanıklı Görev Zamanlayıcı panosunda düzenleme örneğinin ve etkinlik ayrıntılarının durumunu denetleyin. Panoya erişmek için oturum açmanız gerekir.
Uyarı
Aşağıdaki yönerge, kapsamı belirli bir görev hub'ına göre belirlenmiş bir rol atamasını gösterir. Zamanlayıcıdaki tüm görev hub'larına erişmeniz gerekiyorsa, atamayı zamanlayıcı düzeyinde gerçekleştirin.
Portalda Dayanıklı Görev Zamanlayıcı kaynağına gidin.
Görev hub'ı adına tıklayın.
Sol menüde Erişim denetimi (IAM) öğesini seçin.
Rol ataması eklemek için Ekle'ye tıklayın.
Dayanıklı Görev Verileri Katkıda Bulunanı'yı arayın ve seçin. Nextöğesine tıklayın.
Üyeler sekmesinde, Erişim ata için Kullanıcı, grup veya hizmet sorumlusu seçeneğini seçin.
Üyeler için + Üye seç'e tıklayın.
Üyeleri seçin bölmesinde adınızı veya e-postanızı arayın:
E-postanızı seçin ve Seç düğmesine tıklayın.
Rolü atamayı tamamlamak için Gözden Geçir ve ata tıklayın.
Rol atandıktan sonra görev hub'ı kaynağının sol menüsünde Genel Bakış'a tıklayın ve en üstteki Temel Parçalar bölümünde bulunan pano URL'sine gidin.
Kaynakları temizle
Hızlı başlangıcı tamamlamak için oluşturduğunuz kaynaklara artık ihtiyacınız yoksa, Azure aboneliğinizde ilgili maliyetlerden kaçınmak için kaynak grubunu ve tüm ilgili kaynakları geri alın.
Sonraki Adımlar
- Dayanıklı Görev Zamanlayıcı panosu hakkında daha fazla bilgi edinin.
- Dayanıklı Görev Zamanlayıcı'yı kullanırken karşılaşabileceğiniz hataları giderin.