Dayanıklı İşlevler sürümleri ve geçiş kılavuzu

Dayanıklı İşlevler sunucusuz bir ortamda durum bilgisi olan işlevler yazmanızı sağlayan Azure İşlevleri ve Azure WebJobs uzantısıdır. Uzantı sizin için durumu, denetim noktalarını ve yeniden başlatmaları yönetir. Dayanıklı İşlevler'ı bilmiyorsanız, genel bakış belgelerine bakın.

Sürüm özeti

Version Statü Önemli değişiklikler
v3.x Geçerli (önerilen) Azure Depolama SDK güncelleştirildi, maliyet verimliliği iyileştirildi, v2.x'ten yükseltecek kod değişikliği yok
v2.x Bakımlı (yalnızca güvenlik ve hata düzeltmeleri) Kalıcı varlıklar, Kalıcı HTTP
v1.x Destek sonu Eylül 2026 Legacy

v3.x'teki yenilikler

Microsoft.Azure. WebJobs.Extensions.DurableTask v3 paketi (sonraki bölümlerde WebJobs.Extensions.DurableTask olarak adlandırılır) geçerli önerilen sürümdür. v2.x'ten yükseltme için kod değişikliği gerekmez ; yalnızca paket bağımlılıklarınızı güncelleştirmeniz yeterlidir. Bu güncelleştirme yalnızca işlem içi modeli kullanan Dayanıklı C# uygulamalarını çalıştıran müşteriler için önemli bir değişiklik olarak kabul edilir.

Uyarı

Microsoft.Azure.Functions.Worker.Extensions.DurableTask işlem dışı paketi, temel derleme olarak Microsoft.Azure.WebJobs.Extensions.DurableTask'a başvurur. Bu nedenle, bu güncelleştirme Microsoft.Azure.Functions.Worker.Extensions.DurableTask için 1.2.x sürümünden başlayarak geçerlidir.

güncelleştirilmiş Azure Depolama SDK

Varsayılan olarak, Dayanıklı İşlevler uygulama durumunu durarak kaydetmek için depolama arka ucu olarak Azure Depolama kullanır. WebJobs.Extensions.DurableTask v3'te Azure Depolama arka ucu, Azure Depolama SDK'larının en son sürümlerini kullanacak şekilde yükseltildi: Azure. Data.Tables, Azure. Storage.Blobs ve Azure. Storage.Queues. Bu SDK'lar, v2.x'te kullanılan eski Microsoft.Azure.Storage.* paketlerine kıyasla Yönetilen Kimlik için gelişmiş destek, daha iyi performans, daha verimli veri işleme ve gelişmiş güvenlik sunar.

Geliştirilmiş maliyet verimliliği (Azure Depolama sağlayıcısı için)

Azure Depolama arka uç bölüm yöneticisi, partitions/control kuyruklarını çalışanlar arasında dağıtmaktan sorumludur. WebJobs.Extensions.DurableTask v3 paketi, Bölüm Yöneticisi V3'ünü varsayılan olarak kullanır. Bu, Azure Blob kiralamaları yerine bölüm atamalarını yönetmek için Azure Tablolarından yararlanan yeni bir tasarımdır. Bu tasarım, hata ayıklamayı kolaylaştırırken depolama maliyetlerini önemli ölçüde azaltabilir. Partition Manager V3 kullanıldığında, depolama hesabınızda adlı Partitions oluşturulur ve bölüm bilgilerini kolayca denetlemenize olanak sağlar.

Azure İşlevleri v1 çalışma zamanı desteği kaldırıldı

WebJobs.Extensions.DurableTask v3 artık September 2026 sürümünde sona erecek şekilde zamanlanan Azure İşlevleri çalışma zamanının 1.x sürümünü desteklemiyor. İşlevler çalışma zamanı v1 kullanmanız gerekiyorsa lütfen v2.11.0 daha düşük bir Dayanıklı İşlevler uzantı sürümü kullanın. Destek sonu geldiğinde, Dayanıklı İşlevler'ın çalışma zamanı v1 desteğini bırakacağı unutulmamalıdır.

.NET çalışma zamanı hedef güncellemesi

WebJobs.Extensions.DurableTask v3, hedef çalışma zamanını .NET Core 3.1'den .NET 6'ya güncelleştirir ve modern .NET özellikleri ve kitaplıklarıyla gelişmiş performans ve gelişmiş uyumluluk sunar. Bu güncelleştirme, Azure İşlevleri uzantı paketlerinin gelecek sürümleriyle uyumlu hale gelir.

v2.x'ten v3.x'e geçiş

v2.x'ten v3.x'e geçiş kod değişikliği gerektirmez; yeni özellikleri kullanmaya başlamak için bağımlılıklarınızı güncelleştirmeniz yeterlidir.

Azure İşlevleri uzantı paketi sürüm 4.22.0 veya sonraki bir sürüme güncelleştirin.

Uyumluluk düşürme (v3.x'ten v2.x'e)

WebJobs.Extensions.DurableTask v3, Azure Depolama SDK'sı (Base64) için v2 (UTF-8) ile karşılaştırıldığında farklı bir metin kodlaması kullanır. v3.x'ten v2.x'e geri dönmeniz gerekiyorsa geriye dönük uyumluluğu sağlamak için aşağıdaki en düşük sürümleri kullanın:

  • In-process model:v2.13.5 veya üzeri.
  • İzole edilmiş işçi modeli:v1.1.5 veya daha yüksek sürümler (v1.2.x veya üzeri sürümlerden geri döndürülüyorsa).

4.22.0'dan önceki bir uzantı paketi sürümüne geri dön.

v2.x desteği ve bakımı

WebJobs.Extensions.DurableTask v2.x, mevcut uygulamalarınızın güvenli ve kararlı kalmasını sağlayarak güvenlik güncelleştirmelerini ve hata düzeltmelerini almaya devam eder. Ancak tüm yeni özellikler ve geliştirmeler yalnızca v3.x'e eklenir. Bu nedenle, en son özelliklerden ve devam eden geliştirmelerden yararlanmak için en kısa sürede WebJobs.Extensions.DurableTask v3'e yükseltmeniz gerekir.

v2.x ile sunulan özellikler

Aşağıdaki özellikler, desteklenen tüm dillerde Dayanıklı İşlevler 2.x ve sonraki sürümlerde kullanılabilir.

Uyarı

Bu bölümdeki .NET işlem içi API ayrıntıları yalıtılmış çalışan modeli için geçerli değildir. Yalıtılmış çalışan kılavuzu için bkz. Dayanıklı İşlevler yalıtılmış işleme genel bakış.

Dayanıklı varlıklar

Dayanıklı İşlevler, durable varlıklar olarak bilinen küçük durum parçalarını okumak ve güncelleştirmek için entity işlevlerini destekler. Varlık işlevleri, orchestrator işlevleri gibi, özel bir tetikleyici türü olan varlık tetikleyicisi ile tetiklenen işlevlerdir. Orchestrator işlevlerinden farklı olarak varlık işlevlerinin belirli bir kod kısıtlaması yoktur. Varlık işlevleri, denetim akışı aracılığıyla durumu örtük olarak göstermek yerine durumu açıkça da yönetir.

Daha fazla bilgi edinmek için dayanıklı varlıklar makalesine bakın.

Dayanıklı HTTP

Dayanıklı İşlevler şunları yapmanızı sağlayan bir Durable HTTP özelliği içerir:

  • HTTP API'lerini doğrudan düzenleme işlevlerinden çağır (bazı belgelenmiş sınırlamalarla).
  • Otomatik istemci tarafı HTTP 202 durum yoklaması uygulayın.
  • Azure Yönetilen Kimlikler için yerleşik desteği kullanın.

Daha fazla bilgi edinmek için HTTP özellikleri makalesine bakın.

1.x'ten 2.x'e geçiş

Important

Azure İşlevleri çalışma zamanının 1.x sürümü, Eylül 2026'da destek sona eriyor. Hala v1.x kullanıyorsanız geçişinizi yakında planlayın.

Bu bölümde, yeni özelliklerden yararlanmak için mevcut sürüm 1.x Dayanıklı İşlevler sürüm 2.x'e geçirme işlemleri açıklanmaktadır.

Dayanıklı İşlevler uzantısını yükseltme

projenize Dayanıklı İşlevler bağlamaları uzantısının en son 2.x sürümünü yükleyin.

Dayanıklı İşlevler 2.x, Azure İşlevleri uzantı paketinin 2.x sürümünden itibaren kullanılabilir.

Dayanıklı İşlevler'da Python desteği için Dayanıklı İşlevler 2.x veya üzeri sürümler gereklidir.

Projenizdeki uzantı paketi sürümünü güncelleştirmek için host.json açın ve bölümü 4.x (extensionBundle sürümünü) kullanacak şekilde güncelleştirin[4.*, 5.0.0).

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

Dayanıklı İşlevler 2.x, Azure İşlevleri uzantı paketinin 2.x sürümünden itibaren kullanılabilir.

Projenizdeki uzantı paketi sürümünü güncelleştirmek için host.json açın ve bölümü 4.x (extensionBundle sürümünü) kullanacak şekilde güncelleştirin[4.*, 5.0.0).

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

Uyarı

Uzantı paketi sürümünü değiştirdikten sonra Visual Studio Code doğru şablonları görüntülemiyorsa, Developer: Reload Window komutunu (Windows ve Linux üzerinde Ctrl+RCommand+R) çalıştırarak pencereyi yeniden yükleyin.

Dayanıklı İşlevler 2.x, Azure İşlevleri uzantı paketinin 2.x sürümünden itibaren kullanılabilir.

Projenizdeki uzantı paketi sürümünü güncelleştirmek için host.json açın ve bölümü 4.x (extensionBundle sürümünü) kullanacak şekilde güncelleştirin[4.*, 5.0.0).

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

.NET projenizi Dayanıklı İşlevler bağlama uzantısının en son sürümünü kullanacak şekilde güncelleştirin.

Daha fazla bilgi için bkz. Register Azure İşlevleri bağlama uzantıları.

Dayanıklı İşlevler kodunuzu güncelleştirme

Dayanıklı İşlevler 2.x birkaç uyumsuzluk yaratan değişiklik getiriyor. Dayanıklı İşlevler 1.x uygulamaları kod değişiklikleri olmadan Dayanıklı İşlevler 2.x ile uyumlu değildir. Bu bölümde, sürüm 1.x işlevlerinizi 2.x sürümüne yükseltirken yapmanız gereken bazı değişiklikler listelenir.

Host.json şeması

Dayanıklı İşlevler 2.x yeni bir host.json şeması kullanır. 1.x'ten yapılan ana değişiklikler şunlardır:

  • "storageProvider" (ve alt bölümü) depolamaya "azureStorage" özgü yapılandırma için.
  • "tracing" izleme ve günlüğe kaydetme yapılandırması için.
  • "notifications" (ve "eventGrid" alt bölümü) Event Grid bildirim yapılandırması için.

Ayrıntılar için Dayanıklı İşlevler host.json başvuru belgelerine bakın.

Varsayılan görev hub'ı adı değişiklikleri

Sürüm 1.x'te görev hub'ı adı host.jsonbelirtilmemişse, varsayılan olarak "DurableFunctionsHub" olarak belirlenmiştir. Sürüm 2.x'te, varsayılan görev hub'ı adı artık işlev uygulamasının adından türetilir. Bu nedenle, 2.x sürümüne yükseltirken bir görev hub'ı adı belirtmediyseniz kodunuz yeni görev hub'ı ile çalışır ve tüm uçuş içi düzenlemelerde artık bunları işleyen bir uygulama olmaz. Bu sorunu aşmak için, görev hub adınızı açıkça v1.x varsayılanı olan "DurableFunctionsHub" olarak ayarlayabilir veya devam eden orkestrasyonlar için kesintilere yol açabilecek değişiklikleri nasıl ele alacağınız hakkında ayrıntılı bilgi için sıfır kapalı kalma süresi dağıtım kılavuzumuzu izleyebilirsiniz.

Dayanıklı İşlevler genel arabirim değişiklikleri

Sürüm 1.x'te, Dayanıklı İşlevler tarafından desteklenen çeşitli context nesneleri, birim testinde kullanılmak üzere tasarlanmış soyut temel sınıflara sahiptir. Dayanıklı İşlevler 2.x'in bir parçası olarak, bu soyut temel sınıflar arabirimlerle değiştirilir.

Aşağıdaki tabloda ana değişiklikler gösterilir:

1.x 2.x
DurableOrchestrationClientBase IDurableOrchestrationClient veya IDurableClient
DurableOrchestrationContext veya DurableOrchestrationContextBase IDurableOrchestrationContext
DurableActivityContext veya DurableActivityContextBase IDurableActivityContext
OrchestrationClientAttribute DurableClientAttribute

Soyut bir temel sınıfın sanal yöntemler içerdiği durumlarda, bu sanal yöntemler içinde DurableContextExtensionstanımlanan uzantı yöntemleriyle değiştirilmiştir.

function.json değişiklikler

Dayanıklı İşlevler 1.x'te, orkestrasyon istemci bağlantısı type ile orchestrationClient kullanır. Bunun yerine sürüm 2.x kullanır durableClient .

Etkinlik değişikliklerini başlat

Dayanıklı İşlevler 1.x'te raise olayı API'sinin çağrılması ve var olmayan bir örneğin belirtilmesi sessiz bir hatayla sonuçlandı. 2.x'den başlayarak, bir olayı var olmayan bir düzenlemeye yükseltmek bir özel durumla sonuçlanmıştır.