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.
Dayanıklı İşlevler uzantısı, orchestrations, entities ve task hubs üzerinde yönetim görevleri gerçekleştirebilen bir dizi yerleşik HTTP API'sini kullanıma sunar. Bu HTTP API'leri, Azure İşlevleri konağı tarafından yetkilendirilen ancak Dayanıklı İşlevler uzantısının doğrudan işlediği genişletilebilirlik web kancalarıdır.
Bu HTTP API'lerini kullanmadan önce şunlara sahip olduğunuzdan emin olun:
- Dayanıklı Görev programlama modeli kavramları (düzenleyiciler, etkinlikler, varlıklar) hakkında temel bilgiler
- Yapılandırılmış bağlamalarla başlatılan Dayanıklı İşlevler projesi
- İşlev uygulamanızın temel URL'sine, görev hub'ı adına, bağlantı ayarlarına ve yetkilendirme anahtarına erişim
Temel URL ve ortak parametreler
Tüm HTTP API'leri işlev uygulamanızla aynı temel URL'yi paylaşır.
Azure İşlevleri Core Tools kullanarak yerel olarak geliştirme yaptığınızda, temel URL genellikle http://localhost:7071. Azure İşlevleri barındırılan hizmetinde temel URL genellikle https://{appName}.azurewebsites.netşeklindedir. Uzantı, App Service uygulamanızda yapılandırılmışsa özel ana bilgisayar adlarını da destekler.
Uzantı tarafından uygulanan tüm HTTP API'leri aşağıdaki parametreleri gerektirir. Tüm parametrelerin veri türü olur string.
| Parametre | Parametre Türü | Açıklama |
|---|---|---|
taskHub |
Sorgu dizesi | Görev hub'ının adı. Belirtilmezse, geçerli işlev uygulamasının görev hub'ı adı varsayılır. |
connection |
Sorgu dizesi | Arka uç depolama sağlayıcısı için bağlantı uygulaması ayarının adı . Belirtilmezse, işlev uygulaması için varsayılan bağlantı yapılandırması varsayılır. |
systemKey |
Sorgu dizesi | API'yi çağırmak için gereken yetkilendirme anahtarı. |
Parametre değerlerini alma
Düzenleme istemci bağlamalarını kullanma (önerilir):Orchestration istemci bağlama API'lerini kullanarak tam URL'leri otomatik olarak oluşturun:
- .NET:
CreateCheckStatusResponse(),CreateHttpManagementPayload() - JavaScript:
createCheckStatusResponse(),createHttpManagementPayload()
El ile URL oluşturma:
taskHub: Dosyadanhost.jsonalındı:-
v2.x:
extensions.durableTask.hubName -
v1.x:
durableTask.hubName - Söz dizimi kullanılarak
%AppSettingName%uygulama ayarları aracılığıyla da yapılandırılabilir
-
v2.x:
connection: Depolama bağlantısını içeren uygulama ayarının adı. şu kaynaktanhost.jsonalındı:-
v2.x:
extensions.durableTask.storageProvider.connectionStringName(belirtilmezse varsayılan değeriAzureWebJobsStorage) -
v1.x:
durableTask.azureStorageConnectionStringName(belirtilmezse varsayılan olarakAzureWebJobsStorage) - Bağlantı dizelerini veya identity tabanlı bağlantıları (Microsoft Entra kimlik doğrulaması) kullanabilir
-
v2.x:
systemKey: Dayanıklı Görev API'leri için uzantıya özgü yetkilendirme anahtarı. Azure portalından alındı:- İşlev Uygulamanızı açma
- Soldaki menüden İşlevler → Uygulama tuşları'nı seçin
- Sistem anahtarları bölümünde anahtarı bulun (genellikle uzantı için otomatik olarak oluşturulur)
- Anahtar değerini kopyalama
️ Güvenlik notu : Sistem anahtarı tüm Dayanıklı İşlevler HTTP API'lerine erişim verir. Genel olarak paylaşmayın veya istemci tarafı koduna eklemeyin.
Her HTTP API'sinde tutarlı bir istek/yanıt desenleri kümesi desteklenir. Aşağıdaki bölümlerde her işlem için bilgi sağlanır.
Ortak API iş akışı
Tipik bir düzenleme yaşam döngüsü şu sırayı izler:
-
Düzenlemeyi başlatma →
POST /runtime/webhooks/durabletask/orchestrators/{functionName}→ Örnek kimliğini ve durum URL'sini döndürür - durumu denetleme →
GET /runtime/webhooks/durabletask/instances/{instanceId}→ İzleme ilerleme durumu -
Olay gönderme (isteğe bağlı) →
POST /runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName}→ Dış sinyal gönderme -
Temizleme (isteğe bağlı) →
DELETE /runtime/webhooks/durabletask/instances/{instanceId}→ Temizleme geçmişi
İşlem ayrıntıları ve istek/yanıt örnekleri için aşağıdaki başvuruya bakın.
Orkestrasyonu başlat
Belirtilen orchestrator işlevinin yeni bir örneğini yürütmeye başlar.
İstek
Important
URL biçimi İşlevler çalışma zamanı sürümüne göre farklılık gösterir. Ortamınızla eşleşen biçimi seçin.
İşlevler çalışma zamanı 2.x (önerilir):
POST /runtime/webhooks/durabletask/orchestrators/{functionName}/{instanceId?}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
İşlevler çalışma zamanı 1.x (eski):
POST /admin/extensions/DurableTaskExtension/orchestrators/{functionName}/{instanceId?}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
functionName |
URL | Başlatılacak orkestratör işlevinin adı. |
instanceId |
URL | İsteğe bağlı parametre. Orkestrasyon örneğinin kimliği. Belirtilmezse orchestrator işlevi rastgele bir örnek kimliğiyle başlar. |
{content} |
İçerik isteme | Opsiyonel. JSON biçimli orchestrator işlev girişi. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
-
HTTP 202 (Kabul Edildi): Belirtilen orchestrator işlevi çalışmaya başlamak için zamanlandı. Yanıt
Locationüst bilgisi, orkestrasyon durumu sorgulama URL'sini içerir. - HTTP 400 (Hatalı istek): Belirtilen düzenleyici işlevi yok, belirtilen örnek kimliği geçerli değil veya istek içeriği geçerli JSON değil.
Aşağıda bir orchestrator işlevi başlatan RestartVMs ve bir JSON nesnesi yükü içeren örnek bir istek verilmiştir:
POST /runtime/webhooks/durabletask/orchestrators/RestartVMs?code=XXX
Content-Type: application/json
Content-Length: 83
{
"resourceGroup": "myRG",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
HTTP 202 servis talepleri için yanıt yükü, aşağıdaki alanlara sahip bir JSON nesnesidir:
| Alan | Açıklama |
|---|---|
id |
Orkestrasyon örneğinin kimliği. |
statusQueryGetUri |
Orkestrasyon örneğinin durum URL'si. |
sendEventPostUri |
Orkestrasyon örneğinin "olay tetikle" URL'si. |
terminatePostUri |
Orkestrasyon örneğinin "sonlandırma" URL'si. |
purgeHistoryDeleteUri |
Orkestrasyon örneğinin "temizleme geçmişi" URL'si. |
rewindPostUri |
(önizleme) Orkestrasyon örneğinin "geri sarma" URL'si. |
suspendPostUri |
Orkestrasyon örneğinin "askıya alma" URL'si. |
resumePostUri |
Düzenleme örneğinin "devam et" URL'si. |
Tüm alanların veri türü şeklindedir string.
Burada, kimliği abc123 olarak belirtilen bir orkestrasyon örneği için (okunabilirlik için biçimlendirilmiş) örnek bir yanıt yükü verilmiştir.
{
"id": "abc123",
"purgeHistoryDeleteUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123?code=XXX",
"sendEventPostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/raiseEvent/{eventName}?code=XXX",
"statusQueryGetUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123?code=XXX",
"terminatePostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/terminate?reason={text}&code=XXX",
"suspendPostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/suspend?reason={text}&code=XXX",
"resumePostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123/resume?reason={text}&code=XXX"
}
HTTP yanıtının Yoklama Tüketici Deseni ile uyumlu olması tasarlanmıştır. Ayrıca aşağıdaki önemli yanıt başlıklarını içerir:
-
Konum: Alanla aynı değeri içeren durum uç noktasının URL'si
statusQueryGetUri. -
Yeniden Deneme-Sonra: Yoklama işlemleri arasında beklenmesi gereken saniye sayısı.
10varsayılan değerdir.
Zaman uyumsuz HTTP yoklama düzeni hakkında daha fazla bilgi için HTTP zaman uyumsuz işlem izleme belgelerine bakın.
Örnek durumu kontrol et
Belirtilen bir orkestrasyon örneğinin durumunu alır. Düzenleme ilerleme durumunu izlemek ve sonuçları almak için bunu kullanın.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
GET /runtime/webhooks/durabletask/instances/{instanceId}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&showHistory=[true|false]
&showHistoryOutput=[true|false]
&showInput=[true|false]
&returnInternalServerErrorOnFailure=[true|false]
İşlevler çalışma zamanı 1.x (eski):
GET /admin/extensions/DurableTaskExtension/instances/{instanceId}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&showHistory=[true|false]
&showHistoryOutput=[true|false]
&showInput=[true|false]
&returnInternalServerErrorOnFailure=[true|false]
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
showInput |
Sorgu dizesi | İsteğe bağlı parametre. olarak ayarlanırsa false, işlev girişi yanıt yüküne dahil değildir. |
showHistory |
Sorgu dizesi | İsteğe bağlı parametre. olarak trueayarlanırsa, düzenleme yürütme geçmişi yanıt yüküne eklenir. |
showHistoryOutput |
Sorgu dizesi | İsteğe bağlı parametre. olarak ayarlanırsa true, işlev çıkışları düzenleme yürütme geçmişine eklenir. |
createdTimeFrom |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasında veya sonrasında oluşturulan döndürülen örneklerin listesini filtreler. |
createdTimeTo |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasında veya öncesinde oluşturulan döndürülen örneklerin listesini filtreler. |
runtimeStatus |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, döndürülen örneklerin listesini çalışma zamanı durumlarına göre filtreler. Olası çalışma zamanı durum değerlerinin listesini görmek için Örnekleri sorgulama makalesine bakın. |
returnInternalServerErrorOnFailure |
Sorgu dizesi | İsteğe bağlı parametre. olarak ayarlanırsa true, örnek hata durumundaysa bu API 200 yerine bir HTTP 500 yanıtı döndürür. Bu parametre otomatik durum yoklama senaryolarına yöneliktir. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
- HTTP 200 (Tamam): Belirtilen örnek tamamlandı veya başarısız durumda.
- HTTP 202 (Kabul Edildi): Belirtilen örnek devam ediyor.
- HTTP 400 (Hatalı İstek): Belirtilen örnek başarısız oldu veya sonlandırıldı.
- HTTP 404 (Bulunamadı): Belirtilen örnek yok veya çalışmaya başlamadı.
- Yalnızca 'nin
returnInternalServerErrorOnFailureolarak ayarlandığında ve belirtilen örnekte işlenmeyen bir özel durumla başarısızlık yaşandığında döndürülür.
HTTP 200 ve HTTP 202 durumlarının yanıt yükü, aşağıdaki alanlara sahip bir JSON nesnesidir:
| Alan | Veri türü | Açıklama |
|---|---|---|
runtimeStatus |
string | Örneğin çalışma zamanı durumu. Değerler: Çalışıyor, Beklemede, Başarısız, İptal Edildi, Sonlandırıldı, Tamamlandı, Askıya Alındı. |
input |
JSON | Örneği başlatmak için kullanılan JSON verileri. Bu alan, null sorgu dizesi parametresi olarak ayarlandıysa showInputfalseolur. |
customStatus |
JSON | Özel düzenleme durumu için kullanılan JSON verileri. Bu alan ayarlanmadıysa null olur. |
output |
JSON | Örneğin JSON çıktısı. Bu alan, örnek tamamlanmış durumda değilse null olur. |
createdTime |
string | Örnek oluşturulma zamanı. ISO 8601 genişletilmiş gösterimini kullanır. |
lastUpdatedTime |
string | Bu örneğin en son kaydedildiği zaman. ISO 8601 genişletilmiş gösterimini kullanır. |
historyEvents |
JSON | Bir JSON dizisi, orkestrasyon yürütme geçmişini içerir. Bu alan null, showHistory sorgu dizesi parametresi true olarak ayarlandığında farklı olur. |
Düzenleme yürütme geçmişi ve etkinlik çıkışları (okunabilirlik için biçimlendirilmiş) dahil olmak üzere örnek bir yanıt yükü aşağıda verilmiştir:
{
"createdTime": "2018-02-28T05:18:49Z",
"historyEvents": [
{
"EventType": "ExecutionStarted",
"FunctionName": "E1_HelloSequence",
"Timestamp": "2018-02-28T05:18:49.3452372Z"
},
{
"EventType": "TaskCompleted",
"FunctionName": "E1_SayHello",
"Result": "Hello Tokyo!",
"ScheduledTime": "2018-02-28T05:18:51.3939873Z",
"Timestamp": "2018-02-28T05:18:52.2895622Z"
},
{
"EventType": "TaskCompleted",
"FunctionName": "E1_SayHello",
"Result": "Hello Seattle!",
"ScheduledTime": "2018-02-28T05:18:52.8755705Z",
"Timestamp": "2018-02-28T05:18:53.1765771Z"
},
{
"EventType": "TaskCompleted",
"FunctionName": "E1_SayHello",
"Result": "Hello London!",
"ScheduledTime": "2018-02-28T05:18:53.5170791Z",
"Timestamp": "2018-02-28T05:18:53.891081Z"
},
{
"EventType": "ExecutionCompleted",
"OrchestrationStatus": "Completed",
"Result": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"Timestamp": "2018-02-28T05:18:54.3660895Z"
}
],
"input": null,
"customStatus": { "nextActions": ["A", "B", "C"], "foo": 2 },
"lastUpdatedTime": "2018-02-28T05:18:54Z",
"output": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"runtimeStatus": "Completed"
}
HTTP 202 yanıtı, daha önce bahsedilen alanla aynı URL'ye başvuran bir statusQueryGetUri yanıt üst bilgisi de içerir.
Tüm örneklerin durumunu alma
Aynı anda birden çok düzenleme örneğinin durumunu sorgular. Sonuçları duruma, oluşturma zamanına ve örnek kimliği ön eklerine göre filtreleyebilirsiniz. Tüm etkin düzenlemeleri izlemek veya belirli örnekleri bulmak için bu işlemi kullanın.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
GET /runtime/webhooks/durabletask/instances?
taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
&instanceIdPrefix={prefix}
&showInput=[true|false]
&top={integer}
İşlevler çalışma zamanı 1.x (eski):
GET /admin/extensions/DurableTaskExtension/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
&instanceIdPrefix={prefix}
&showInput=[true|false]
&top={integer}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
showInput |
Sorgu dizesi | İsteğe bağlı parametre. olarak ayarlanırsa false, işlev girişi yanıt yüküne dahil değildir. |
showHistoryOutput |
Sorgu dizesi | İsteğe bağlı parametre. olarak trueayarlanırsa, işlev çıkışlarını düzenleme yürütme geçmişine ekler. |
createdTimeFrom |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasında veya sonrasında oluşturulan döndürülen örneklerin listesini filtreler. |
createdTimeTo |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasında veya öncesinde oluşturulan döndürülen örneklerin listesini filtreler. |
runtimeStatus |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, döndürülen örneklerin listesini çalışma zamanı durumlarına göre filtreler. Olası çalışma zamanı durum değerlerinin listesini görmek için Örnekleri sorgulama makalesine bakın. |
instanceIdPrefix |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, döndürülen örneklerin listesini yalnızca örnek kimliği belirtilen ön ek dizesiyle başlayan örnekleri içerecek şekilde filtreler. Uzantının 2.7.2 sürümünden itibaren kullanılabilir. |
top |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, sorgu tarafından döndürülen örnek sayısını sınırlar. |
Response
Yanıt yüklerine, orkestrasyon durumunu (okunabilirlik için biçimlendirilmiş) içeren bir örnek aşağıda verilmiştir:
[
{
"instanceId": "7af46ff000564c65aafbfe99d07c32a5",
"runtimeStatus": "Completed",
"input": null,
"customStatus": null,
"output": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"createdTime": "2018-06-04T10:46:39Z",
"lastUpdatedTime": "2018-06-04T10:46:47Z"
},
{
"instanceId": "80eb7dd5c22f4eeba9f42b062794321e",
"runtimeStatus": "Running",
"input": null,
"customStatus": null,
"output": null,
"createdTime": "2018-06-04T15:18:28Z",
"lastUpdatedTime": "2018-06-04T15:18:38Z"
},
{
"instanceId": "9124518926db408ab8dfe84822aba2b1",
"runtimeStatus": "Completed",
"input": null,
"customStatus": null,
"output": [
"Hello Tokyo!",
"Hello Seattle!",
"Hello London!"
],
"createdTime": "2018-06-04T10:46:54Z",
"lastUpdatedTime": "2018-06-04T10:47:03Z"
},
{
"instanceId": "d100b90b903c4009ba1a90868331b11b",
"runtimeStatus": "Pending",
"input": null,
"customStatus": null,
"output": null,
"createdTime": "2018-06-04T15:18:39Z",
"lastUpdatedTime": "2018-06-04T15:18:39Z"
}
]
Uyarı
Azure Depolama sağlayıcısı kullanıyorsanız ve Örnekler tablosunda çok sayıda satır varsa bu işlem Azure Depolama G/Ç açısından pahalı olabilir. Örnekler tablosu hakkında daha fazla bilgi için Azure Depolama sağlayıcısı belgelerine bakın.
Daha fazla sonuç varsa, yanıt üst bilgisinde bir devamlılık belirteci döndürülür. Üst bilginin adı şeklindedir x-ms-continuation-token.
Caution
Sorgu sonucu tarafından topbelirtilen sınırdan daha az öğe döndürebilir. Sonuçları aldığınızda, süreklilik belirteci olup olmadığını her zaman denetlemeniz gerekir.
Sonraki istek üst bilgisinde devamlılık belirteci değerini ayarlarsanız, bir sonraki sonuç sayfasını alabilirsiniz. İstek üst bilgisinin adı da x-ms-continuation-tokenşeklindedir.
Tek örnek geçmişini sil
Belirtilen orkestrasyon örneğinin geçmişini ve ilgili eserlerini siler. Bu işlem depolama kaynaklarını serbesttir ve geri alınamaz.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
DELETE /runtime/webhooks/durabletask/instances/{instanceId}
?taskHub={taskHub}
&connection={connection}
&code={systemKey}
İşlevler çalışma zamanı 1.x (eski):
DELETE /admin/extensions/DurableTaskExtension/instances/{instanceId}
?taskHub={taskHub}
&connection={connection}
&code={systemKey}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
Response
Aşağıdaki HTTP durum kodu değerleri döndürülebilir.
- HTTP 200 (Tamam):Örnek geçmişi başarıyla temizlendi.
- HTTP 404 (Bulunamadı): Belirtilen örnek yok.
HTTP 200 olayı için yanıt yükü, aşağıdaki alana sahip bir JSON nesnesidir:
| Alan | Veri türü | Açıklama |
|---|---|---|
instancesDeleted |
integer | Silinen örnek sayısı. Tek örnek örneği için bu değer her zaman olmalıdır 1. |
Aşağıda örnek bir yanıt yükü verilmiştir (okunabilirlik için biçimlendirilmiş):
{
"instancesDeleted": 1
}
Çoklu örnek geçmişini temizleme
Durum, oluşturma zamanı veya örnek kimliği ön eklerine göre filtrelenmiş birden çok örneğin geçmişini ve yapıtlarını aynı anda siler. Eski örnekleri toplu olarak temizlemek ve depolama maliyetlerini yönetmek için bunu kullanın.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
DELETE /runtime/webhooks/durabletask/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
İşlevler çalışma zamanı 1.x (eski):
DELETE /admin/extensions/DurableTaskExtension/instances
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&createdTimeFrom={timestamp}
&createdTimeTo={timestamp}
&runtimeStatus={runtimeStatus1,runtimeStatus2,...}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
createdTimeFrom |
Sorgu dizesi | Verilen ISO8601 zaman damgasında veya sonrasında oluşturulan temizlenmemiş örneklerin listesini filtreler. |
createdTimeTo |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasında veya öncesinde oluşturulan temizlenmemiş örneklerin listesini filtreler. |
runtimeStatus |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, temizlenmiş örneklerin listesini çalışma zamanlarındaki durumlarına göre filtreler. Olası çalışma zamanı durum değerlerinin listesini görmek için Örnekleri sorgulama makalesine bakın. |
Uyarı
Azure Depolama sağlayıcısı kullanıyorsanız ve Örnekler veya Geçmiş tablolarında çok sayıda satır varsa bu işlem Azure Depolama G/Ç açısından pahalı olabilir. Bu tablolar hakkında daha fazla bilgi için bkz. Performans ve Dayanıklı İşlevler (Azure İşlevleri) ölçeği.
Response
Aşağıdaki HTTP durum kodu değerleri döndürülebilir.
- HTTP 200 (Tamam):Örnek geçmişi başarıyla temizlendi.
- HTTP 404 (Bulunamadı): Filtre ifadesiyle eşleşen hiçbir örnek bulunamadı.
HTTP 200 olayı için yanıt yükü, aşağıdaki alana sahip bir JSON nesnesidir:
| Alan | Veri türü | Açıklama |
|---|---|---|
instancesDeleted |
integer | Silinen örnek sayısı. |
Aşağıda örnek bir yanıt yükü verilmiştir (okunabilirlik için biçimlendirilmiş):
{
"instancesDeleted": 250
}
Olay oluşturma
Çalışan bir düzenleme örneğine olay bildirim iletisi gönderir. Düzenleme, veya WaitForExternalEventkullanarak wait_for_external_event ada göre bu olayı bekliyor olmalıdır.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
POST /runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
İşlevler çalışma zamanı 1.x (eski):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/raiseEvent/{eventName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
eventName |
URL | Hedef düzenleme örneğinin beklediği olayın adı. |
{content} |
İçerik isteme | JSON biçimli olay yükü. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
- HTTP 202 (Kabul Edildi): Oluşturulan olay işlenmek üzere kabul edildi.
-
HTTP 400 (Hatalı istek): İstek içeriği türünde
application/jsondeğildi veya geçerli JSON değildi. - HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
- HTTP 410 (Gitti): Belirtilen örnek tamamlandı veya başarısız oldu ve oluşturulan olayları işleyemiyor.
JSON dizesini "incr" işlem adlı bir olayı bekleyen bir örneğe gönderen örnek bir istek aşağıda verilmiştir:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/raiseEvent/operation?taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Content-Type: application/json
Content-Length: 6
"incr"
Bu API'nin yanıtları herhangi bir içerik içermiyor.
Örneği sonlandırma
Çalışan bir düzenleme örneğini sonlandırır.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
POST /runtime/webhooks/durabletask/instances/{instanceId}/terminate
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
İşlevler çalışma zamanı 1.x (eski):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/terminate
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreyi içerir.
| Alan | Parametre Türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
reason |
Sorgu dizesi | Opsiyonel. Düzenleme örneğini sonlandırmanın nedeni. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
- HTTP 202 (Kabul Edildi): Sonlandırma isteği işlenmek üzere kabul edildi.
- HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
- HTTP 410 (Gitti): Belirtilen örnek tamamlandı veya başarısız oldu.
Çalışan örneği sonlandıran ve buggy nedenini belirten örnek bir istek aşağıda verilmiştir:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/terminate?reason=buggy&taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Bu API'nin yanıtları herhangi bir içerik içermiyor.
Örneği askıya alma
Çalışan bir düzenleme örneğini sonlandırmadan duraklatır. Örnek daha sonra işlemi kullanılarak resume sürdürülebilir.
İstek
İşlevler çalışma zamanının 2.x sürümünde istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):
POST /runtime/webhooks/durabletask/instances/{instanceId}/suspend
?reason={text}
&taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
| Alan | Parametre Türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
reason |
Sorgu dizesi | Opsiyonel. Orkestrasyon örneğini askıya alma nedeni. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
- HTTP 202 (Kabul Edildi): Askıya alma isteği işlenmek üzere kabul edildi. Yanıt gövdesi döndürülmedi.
- HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
- HTTP 410 (Gitti): Belirtilen örnek tamamlandı, başarısız oldu veya sonlandırıldı ve askıya alınamaz.
Doğrulama: HTTP 202'yi aldıktan sonra, öğesinin olarak değiştiğini doğrulamak GET /runtime/webhooks/durabletask/instances/{instanceId} için kullanarak runtimeStatus örnek durumunu sorgulayabilirsiniz"Suspended".
Özgeçmiş örneği
Daha önce askıya alınmış bir düzenleme örneğinin yürütülmesini sürdürür.
İstek
İşlevler çalışma zamanının 2.x sürümünde istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):
POST /runtime/webhooks/durabletask/instances/{instanceId}/resume
?reason={text}
&taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
| Alan | Parametre Türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
reason |
Sorgu dizesi | Opsiyonel. Orkestrasyon örneğini yeniden başlatmanın nedeni. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
- HTTP 202 (Kabul Edildi): Özgeçmiş isteği işlenmek üzere kabul edildi. Yanıt gövdesi döndürülmedi.
- HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
- HTTP 410 (Gitti): Belirtilen örnek tamamlandı, başarısız oldu veya sonlandırıldı ve sürdürülemiyor.
Doğrulama: HTTP 202'yi aldıktan sonra, öğesinin olarak değiştiğini doğrulamak GET /runtime/webhooks/durabletask/instances/{instanceId} için kullanarak runtimeStatus örnek durumunu sorgulayabilirsiniz"Running".
Geri sarma örneği (önizleme)
En son başarısız işlemleri yeniden yürüterek başarısız bir düzenleme örneğini çalışır duruma geri yükler. Bu özellik, el ile müdahale olmadan geçici hatalardan kurtarma sağlar.
İstek
İşlevler çalışma zamanı 2.x (önerilir):
POST /runtime/webhooks/durabletask/instances/{instanceId}/rewind
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
İşlevler çalışma zamanı 1.x (eski):
POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/rewind
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&reason={text}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreyi içerir.
| Alan | Parametre Türü | Açıklama |
|---|---|---|
instanceId |
URL | Orkestrasyon örneğinin kimliği. |
reason |
Sorgu dizesi | Opsiyonel. Orkestrasyon örneğini geri sarmanın nedeni. |
Response
Birkaç olası durum kodu değeri döndürülebilir.
- HTTP 202 (Kabul Edildi): Geri sarma isteği işlenmek üzere kabul edildi.
- HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
- HTTP 410 (Gitti): Belirtilen örnek tamamlandı veya sonlandırıldı.
Aşağıda, başarısız bir örneği geri saran ve nedeni düzeltildi olarak belirten örnek bir istek yer almaktadır:
POST /admin/extensions/DurableTaskExtension/instances/bcf6fb5067b046fbb021b52ba7deae5a/rewind?reason=fixed&taskHub=DurableFunctionsHub&connection=Storage&code=XXX
Bu API'nin yanıtları herhangi bir içerik içermiyor.
Sinyal nesnesi
Dayanıklı Varlığa tek yönlü işlem iletisi gönderir. Varlık yoksa, otomatik olarak oluşturulur. Varlık işlemleri sıralı olarak işlenir ve kalıcı olarak kalıcı hale getirme.
Uyarı
Dayanıklı varlıklar Dayanıklı İşlevler 2.0'dan itibaren kullanılabilir.
İstek
HTTP isteği aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):
POST /runtime/webhooks/durabletask/entities/{entityName}/{entityKey}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&op={operationName}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
entityName |
URL | Varlığın adı (türü). |
entityKey |
URL | Varlığın anahtarı (benzersiz kimlik). |
op |
Sorgu dizesi | Opsiyonel. Çağrılacak kullanıcı tanımlı işlemin adı. |
{content} |
İçerik isteme | JSON biçimli olay yükü. |
Aşağıda adlı Countervarlığa kullanıcı tanımlı bir "Ekle" iletisi gönderen örnek bir steps istek verilmiştir. Mesajın içeriği 5 değeridir. Varlık henüz yoksa, bu istek onu oluşturur:
POST /runtime/webhooks/durabletask/entities/Counter/steps?op=Add
Content-Type: application/json
5
Uyarı
.NET içindeki deletebir işlem tanımlarsa, bunun yerine kullanıcı tanımlı işlem çağrılır.
Response
Bu işlemin birkaç olası yanıtı vardır:
- HTTP 202 (Kabul Edildi): Sinyal işlemi zaman uyumsuz işleme için kabul edildi.
-
HTTP 400 (Hatalı istek): İstek içeriği türünde
application/jsondeğildi, geçerli JSON değildi veya geçersizentityKeybir değere sahipti. -
HTTP 404 (Bulunamadı): Belirtilen
entityNamebulunamadı.
Başarılı bir HTTP isteği yanıtta herhangi bir içerik içermez. Başarısız bir HTTP isteği, yanıt içeriğinde JSON biçimli hata bilgileri içerebilir.
Varlık alma
Belirtilen varlığın durumunu alır.
İstek
HTTP isteği aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):
GET /runtime/webhooks/durabletask/entities/{entityName}/{entityKey}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
Response
Bu işlemin iki olası yanıtı vardır:
- HTTP 200 (Tamam):Belirtilen varlık var.
- HTTP 404 (Bulunamadı): Belirtilen varlık bulunamadı.
Başarılı bir yanıt, içeriği olarak varlığın JSON serileştirilmiş durumunu içerir.
Example
adlı Countermevcut steps bir varlığın durumunu almak için:
GET /runtime/webhooks/durabletask/entities/Counter/steps
Counter Varlık yalnızca bir currentValue alana kaydedilmiş birkaç adım içeriyorsa, yanıt içeriği aşağıdaki gibi görünebilir (okunabilirlik için biçimlendirilmiş):
{
"currentValue": 5
}
Varlıkları listeleme
Varlık adına göre veya son işlem tarihine göre birden çok varlık sorgulayabilirsiniz.
İstek
HTTP isteği aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):
GET /runtime/webhooks/durabletask/entities/{entityName}
?taskHub={taskHub}
&connection={connectionName}
&code={systemKey}
&lastOperationTimeFrom={timestamp}
&lastOperationTimeTo={timestamp}
&fetchState=[true|false]
&top={integer}
Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümeyi ve aşağıdaki benzersiz parametreleri içerir:
| Alan | Parametre türü | Açıklama |
|---|---|---|
entityName |
URL | Opsiyonel. Belirtildiğinde, döndürülen varlıkların listesini varlık adlarına göre filtreler (büyük/küçük harfe duyarsız). |
fetchState |
Sorgu dizesi | İsteğe bağlı parametre. olarak ayarlanırsa true, varlık durumu yanıt yüküne eklenir. |
lastOperationTimeFrom |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasından sonra işlemleri işleyen döndürülen varlıkların listesini filtreler. |
lastOperationTimeTo |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, verilen ISO8601 zaman damgasından önce işlemleri işleyen döndürülen varlıkların listesini filtreler. |
top |
Sorgu dizesi | İsteğe bağlı parametre. Belirtildiğinde, sorgu tarafından döndürülen varlık sayısını sınırlar. |
Response
Başarılı bir HTTP 200 yanıtı JSON serileştirilmiş varlık dizisi ve isteğe bağlı olarak her varlığın durumunu içerir.
Varsayılan olarak, işlem sorgu ölçütlerine uyan ilk 100 varlığı döndürür. Çağıran, farklı bir maksimum sonuç sayısı döndürmek için için top bir sorgu dizesi parametre değeri belirtebilir. Döndürülenin ötesinde daha fazla sonuç varsa, yanıt üst bilgisinde bir devamlılık belirteci de döndürülür. Üst bilginin adı şeklindedir x-ms-continuation-token.
Sonraki istek üst bilgisinde devamlılık belirteci değerini ayarlarsanız, bir sonraki sonuç sayfasını alabilirsiniz. İstek üst bilgisinin adı da x-ms-continuation-tokenşeklindedir.
Örnek - tüm varlıkları listeleme
Görev hub'ında tüm varlıkları listelemek için:
GET /runtime/webhooks/durabletask/entities
JSON yanıtı aşağıdaki gibi görünebilir (okunabilirlik için biçimlendirilmiş):
[
{
"entityId": { "key": "cats", "name": "counter" },
"lastOperationTime": "2019-12-18T21:45:44.6326361Z",
},
{
"entityId": { "key": "dogs", "name": "counter" },
"lastOperationTime": "2019-12-18T21:46:01.9477382Z"
},
{
"entityId": { "key": "mice", "name": "counter" },
"lastOperationTime": "2019-12-18T21:46:15.4626159Z"
},
{
"entityId": { "key": "radio", "name": "device" },
"lastOperationTime": "2019-12-18T21:46:18.2616154Z"
},
]
Örnek - varlık listesini filtreleme
İlk iki counter varlığı listelemek ve durumlarını getirmek için:
GET /runtime/webhooks/durabletask/entities/counter?top=2&fetchState=true
JSON yanıtı aşağıdaki gibi görünebilir (okunabilirlik için biçimlendirilmiş):
[
{
"entityId": { "key": "cats", "name": "counter" },
"lastOperationTime": "2019-12-18T21:45:44.6326361Z",
"state": { "value": 9 }
},
{
"entityId": { "key": "dogs", "name": "counter" },
"lastOperationTime": "2019-12-18T21:46:01.9477382Z",
"state": { "value": 10 }
}
]
Tam iş akışı örneği
Bu örnekte komutları kullanarak curl tam düzenleme yaşam döngüsü gösterilmektedir. Postman, Thunder client veya herhangi bir HTTP istemcisini de kullanabilirsiniz.
1. Düzenleme başlatma
Giriş verileriyle yeni ProcessOrder bir düzenleme başlatma:
curl -X POST "http://localhost:7071/runtime/webhooks/durabletask/orchestrators/ProcessOrder" \
-H "Content-Type: application/json" \
-d '{
"orderId": "ORD-12345",
"customerId": "CUST-789",
"amount": 150.00
}'
Yanıt (HTTP 202):
{
"id": "abc123def456",
"statusQueryGetUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123def456?code=XXX",
"sendEventPostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123def456/raiseEvent/{eventName}?code=XXX",
"terminatePostUri": "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123def456/terminate?reason={text}&code=XXX"
}
Örnek kimliğini kaydedin: abc123def456
2. Durum yoklaması
Düzenleme ilerleme durumunu denetleyin:
curl "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123def456?code=XXX"
Çalışırken yanıt (HTTP 202):
{
"runtimeStatus": "Running",
"input": { "orderId": "ORD-12345", "customerId": "CUST-789", "amount": 150.00 },
"output": null,
"createdTime": "2026-01-23T10:30:00Z",
"lastUpdatedTime": "2026-01-23T10:30:05Z"
}
Tamamlandığında yanıt (HTTP 200):
{
"runtimeStatus": "Completed",
"input": { "orderId": "ORD-12345", "customerId": "CUST-789", "amount": 150.00 },
"output": { "status": "shipped", "trackingNumber": "TRK-98765" },
"createdTime": "2026-01-23T10:30:00Z",
"lastUpdatedTime": "2026-01-23T10:30:15Z"
}
3. Dış olay gönderme (isteğe bağlı)
Düzenleme onay bekliyorsa bir onay olayı gönderin:
curl -X POST "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123def456/raiseEvent/ApprovalReceived?code=XXX" \
-H "Content-Type: application/json" \
-d '{ "approved": true, "reviewer": "manager@contoso.com" }'
Yanıt: HTTP 202 (Kabul Edildi)
4. Geçmişi temizleme (isteğe bağlı)
Düzenleme tamamlandıktan sonra geçmişini temizle:
curl -X DELETE "http://localhost:7071/runtime/webhooks/durabletask/instances/abc123def456?code=XXX"
Yanıt (HTTP 200):
{
"instancesDeleted": 1
}