Share via


Dayanıklı İşlevler sürümlerine genel bakış

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

2.x sürümündeki yeni özellikler

Bu bölümde, 2.x sürümünde eklenen Dayanıklı İşlevler özellikleri açıklanmaktadır.

Not

Bu bölüm, dotnet yalıtılmış çalışandaki Dayanıklı İşlevler için geçerli değildir. Bunun için bkz . dayanıklı işlevler yalıtılmış işleme genel bakış.

Dayanıklı varlıklar

Dayanıklı İşlevler 2.x sürümünde yeni bir varlık işlevleri kavramı kullanıma sunulmuştur.

Varlık işlevleri, dayanıklı varlıklar olarak bilinen küçük durum parçalarını okuma ve güncelleştirme işlemlerini tanımlar. Orchestrator işlevleri gibi varlık işlevleri de özel bir tetikleyici türü olan varlık tetikleyicisi olan işlevlerdir. Orchestrator işlevlerinden farklı olarak varlık işlevlerinin belirli bir kod kısıtlaması yoktur. Varlık işlevleri ayrıca denetim akışı aracılığıyla durumu örtük olarak temsil etmek yerine durumu açıkça yönetir.

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

Dayanıklı HTTP

Dayanıklı İşlevler 2.x sürümünde şunları yapmanızı sağlayan yeni bir Dayanıklı HTTP özelliği kullanıma sunulmuştur:

  • 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 destek.

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

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

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.

Uzantıyı yükseltme

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

JavaScript, Python ve PowerShell

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

Dayanıklı İşlevler'de Python desteği için 2.x veya üzeri Dayanıklı İşlevler gerekir.

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

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

Not

Uzantı paketi sürümünü değiştirdikten sonra Visual Studio Code doğru şablonları görüntülemiyorsa, Geliştirici: Pencereyi Yeniden Yükle komutunu (Windows ve Linux'ta Ctrl+R, macOS'ta Command+R) çalıştırarak pencereyi yeniden yükleyin.

Java

Dayanıklı İşlevler 2.x, Azure İşlevleri uzantı paketinin 4.x sürümünden itibaren kullanılabilir. Java işlevlerini yürütmek için Azure İşlevleri 4.0 çalışma zamanını kullanmanız gerekir.

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

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

.NET

.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. bağlama uzantılarını Azure İşlevleri kaydetme.

Kodunuzu güncelleştirme

Dayanıklı İşlevler 2.x birkaç hataya neden olan değişiklik içeriyor. Dayanıklı İşlevler 1.x uygulamaları kod değişikliği 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, host.json dosyasında bir görev hub'ı adı belirtilmemiş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üretilmiştir. 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 sürüm içi düzenlemelerde artık bunları işleyen bir uygulama olmaz. Bu sorunu geçici olarak çözmek için görev hub'ınızın adını açıkça v1.x varsayılanı olan "DurableFunctionsHub" olarak ayarlayabilir veya uçuş içi düzenlemelerde hataya neden olan değişiklikleri işlemeye ilişkin ayrıntılar için sıfır kapalı kalma süresi dağıtım kılavuzumuzu izleyebilirsiniz.

Ortak arabirim değişiklikleri (yalnızca.NET)

Sürüm 1.x'te, Dayanıklı İşlevler tarafından desteklenen çeşitli bağlam 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 tablo ana değişiklikleri temsil eder:

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şiklikleri

Dayanıklı İşlevler 1.x'te, düzenleme istemci bağlaması bir type kullanırorchestrationClient. Sürüm 2.x bunun yerine kullanır durableClient .

Olay değişikliklerini tetikle

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