HTTP API başvurusu

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:

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: Dosyadan host.json alı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
  • connection: Depolama bağlantısını içeren uygulama ayarının adı. şu kaynaktan host.jsonalındı:

    • v2.x: extensions.durableTask.storageProvider.connectionStringName (belirtilmezse varsayılan değeri AzureWebJobsStorage )
    • v1.x: durableTask.azureStorageConnectionStringName (belirtilmezse varsayılan olarak AzureWebJobsStorage )
    • Bağlantı dizelerini veya identity tabanlı bağlantıları (Microsoft Entra kimlik doğrulaması) kullanabilir
  • systemKey: Dayanıklı Görev API'leri için uzantıya özgü yetkilendirme anahtarı. Azure portalından alındı:

    1. İşlev Uygulamanızı açma
    2. Soldaki menüden İşlevlerUygulama tuşları'nı seçin
    3. Sistem anahtarları bölümünde anahtarı bulun (genellikle uzantı için otomatik olarak oluşturulur)
    4. 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:

  1. Düzenlemeyi başlatmaPOST /runtime/webhooks/durabletask/orchestrators/{functionName} → Örnek kimliğini ve durum URL'sini döndürür
  2. durumu denetlemeGET /runtime/webhooks/durabletask/instances/{instanceId} → İzleme ilerleme durumu
  3. Olay gönderme (isteğe bağlı)POST /runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName} → Dış sinyal gönderme
  4. 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ı. 10 varsayı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 returnInternalServerErrorOnFailure olarak 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/json değ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 class tabanlı varlıklarda varsayılan olarak, değerinin belirtilmesi varlığın durumunu siler. Ancak varlık adlı 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çersiz entityKey bir değere sahipti.
  • HTTP 404 (Bulunamadı): Belirtilen entityName bulunamadı.

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
}

Sonraki Adımlar