Aracılığıyla paylaş


HTTP API başvurusu

Dayanıklı İşlevler uzantısı, düzenlemelerde, varlıklarda ve görev hub'larında yönetim görevlerini gerçekleştirmek için kullanılabilecek bir dizi yerleşik HTTP API'sini kullanıma sunar. Bu HTTP API'leri, Azure İşlevleri ana bilgisayarı tarafından yetkilendirilmiş ancak doğrudan Dayanıklı İşlevler uzantısı tarafından işlenen genişletilebilirlik web kancalarıdır.

Bu makalede bahsedilen API'lerin temel URL'si, işlev uygulamanızın temel URL'si ile aynıdır. Azure İşlevleri Temel Araçları'nı kullanarak yerel olarak geliştirme yaparken, temel URL genellikle http://localhost:7071şeklindedir. barındırılan Azure İşlevleri hizmette temel URL genellikle https://{appName}.azurewebsites.netşeklindedir. App Service uygulamanızda yapılandırılırsa özel konak adları da desteklenir.

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ı.

systemKeyAzure İşlevleri ana bilgisayarı tarafından otomatik olarak oluşturulan bir yetkilendirme anahtarıdır. Özel olarak Dayanıklı Görev uzantısı API'lerine erişim verir ve diğer Azure İşlevleri erişim anahtarlarıyla aynı şekilde yönetilebilir. .NET'teki createCheckStatusResponse ve API'leri, JavaScript'teki ve systemKey API'leri gibi CreateCheckStatusResponse düzenleme istemci bağlama API'lerini kullanarak doğru taskHub, connectionve createHttpManagementPayload sorgu dizesi değerlerini içeren URL'ler oluşturabilirsinizCreateHttpManagementPayload.

Sonraki birkaç bölüm, uzantı tarafından desteklenen belirli HTTP API'lerini kapsar ve bunların nasıl kullanılabileceğini gösteren örnekler sağlar.

Düzenlemeyi başlatma

Belirtilen orchestrator işlevinin yeni bir örneğini yürütmeye başlar.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

POST /admin/extensions/DurableTaskExtension/orchestrators/{functionName}/{instanceId?}
     ?taskHub={taskHub}
     &connection={connectionName}
     &code={systemKey}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

POST /runtime/webhooks/durabletask/orchestrators/{functionName}/{instanceId?}
     ?taskHub={taskHub}
     &connection={connectionName}
     &code={systemKey}

Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümenin yanı sıra aşağıdaki benzersiz parametreleri içerir:

Alan Parametre türü Açıklama
functionName URL Başlatacak orchestrator işlevinin adı.
instanceId URL İsteğe bağlı parametre. Düzenleme örneğinin kimliği. Belirtilmezse, orchestrator işlevi rastgele bir örnek kimliğiyle başlar.
{content} İçerik isteme isteğe bağlı. 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, düzenleme durumunu yoklama url'sini içerir.
  • HTTP 400 (Hatalı istek): Belirtilen orchestrator işlevi yok, belirtilen örnek kimliği geçerli değil veya istek içeriği geçerli değil JSON.

Aşağıda bir orchestrator işlevi başlatan ve JSON nesne yükünü içeren örnek bir RestartVMs istek verilmiştir:

POST /runtime/webhooks/durabletask/orchestrators/RestartVMs?code=XXX
Content-Type: application/json
Content-Length: 83

{
    "resourceGroup": "myRG",
    "subscriptionId": "111deb5d-09df-4604-992e-a968345530a9"
}

HTTP 202 servis talepleri için yanıt yükü, aşağıdaki alanlara sahip bir JSON nesnesidir:

Alan Açıklama
id Düzenleme örneğinin kimliği.
statusQueryGetUri Düzenleme örneğinin durum URL'si.
sendEventPostUri Düzenleme örneğinin "olay tetikle" URL'si.
terminatePostUri Düzenleme örneğinin "sonlandırma" URL'si.
purgeHistoryDeleteUri Düzenleme örneğinin "temizleme geçmişi" URL'si.
rewindPostUri (önizleme) Düzenleme örneğinin "geri sarma" URL'si.
suspendPostUri Düzenleme örneğinin "askıya alma" URL'si.
resumePostUri Düzenleme örneğinin "özgeçmiş" URL'si.

Tüm alanların veri türü şeklindedir string.

Burada, kimliği (okunabilirlik için biçimlendirilmiş) olan abc123 bir düzenleme örneği için ö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 Düzeni ile uyumlu olması amaçlanmıştır. Ayrıca aşağıdaki önemli yanıt üst bilgilerini içerir:

  • Konum: Durum uç noktasının URL'si. Bu URL alanıyla aynı değeri statusQueryGetUri içerir.
  • Yeniden Deneme-Sonra: Yoklama işlemleri arasında beklenmesi gereken saniye sayısı. Varsayılan değer şudur: 10.

Zaman uyumsuz HTTP yoklama düzeni hakkında daha fazla bilgi için HTTP zaman uyumsuz işlem izleme belgelerine bakın.

Örnek durumunu alma

Belirtilen düzenleme örneğinin durumunu alır.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

GET /admin/extensions/DurableTaskExtension/instances/{instanceId}
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}
    &showHistory=[true|false]
    &showHistoryOutput=[true|false]
    &showInput=[true|false]
    &returnInternalServerErrorOnFailure=[true|false]

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

GET /runtime/webhooks/durabletask/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ümenin yanı sıra aşağıdaki benzersiz parametreleri içerir:

Alan Parametre türü Açıklama
instanceId URL Düzenleme ö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 edilmeyecektir.
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ı.
  • HTTP 500 (İç Sunucu Hatası): Yalnızca değeri olarak ayarlandığında true ve belirtilen örnek işlenmeyen bir özel durumla başarısız olduğunda returnInternalServerErrorOnFailure 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 Dize Ö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 showInput falseolur.
customStatus JSON Özel düzenleme durumu için kullanılan JSON verileri. Bu alan ayarlanmadıysa.null
output JSON Örneğin JSON çıkışı. Bu alan, null örneğin tamamlanmış durumda olmamasıdır.
createdTime Dize Örneğin oluşturulduğu saat. ISO 8601 genişletilmiş gösterimini kullanır.
lastUpdatedTime Dize Örneğin son kalıcı olduğu saat. ISO 8601 genişletilmiş gösterimini kullanır.
historyEvents JSON Düzenleme yürütme geçmişini içeren bir JSON dizisi. Bu alan, null sorgu dizesi parametresi olarak ayarlanmadığı truesürece showHistory şeklindedir.

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 statusQueryGetUri başvuran bir Konum yanıt üst bilgisi de içerir.

Tüm örneklerin durumunu alma

'Örnek durumunu al' isteğinden öğesini kaldırarak instanceId tüm örneklerin durumunu da sorgulayabilirsiniz. Bu durumda, temel parametreler 'Örnek durumunu al' ile aynıdır. Filtreleme için sorgu dizesi parametreleri de desteklenir.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

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}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

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}

Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümenin yanı sıra 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 edilmeyecektir.
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.
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

Düzenleme durumu (okunabilirlik için biçimlendirilmiş) dahil olmak üzere yanıt yüklerine 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"
    }
]

Not

Varsayılan Azure Depolama sağlayıcısını kullanıyorsanız ve Örnekler tablosunda çok fazla satır varsa bu işlem Azure Depolama G/Ç açısından çok pahalı olabilir. Örnek tablosuyla ilgili diğer ayrıntılar Azure Depolama sağlayıcısı belgelerinde bulunabilir.

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.

Dikkat

Sorgu sonucu tarafından topbelirtilen sınırdan daha az öğe döndürebilir. Bu nedenle sonuçları alırken süreklilik belirteci olup olmadığını her zaman denetlemeniz gerekir.

Sonraki istek üst bilgisinde devamlılık belirteci değeri ayarlarsanız, bir sonraki sonuç sayfasını alabilirsiniz. İstek üst bilgisinin bu adı da x-ms-continuation-tokenşeklindedir.

Tek örnek geçmişini temizleme

Belirtilen düzenleme örneğinin geçmişini ve ilgili yapıtlarını siler.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

DELETE /admin/extensions/DurableTaskExtension/instances/{instanceId}
    ?taskHub={taskHub}
    &connection={connection}
    &code={systemKey}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

DELETE /runtime/webhooks/durabletask/instances/{instanceId}
    ?taskHub={taskHub}
    &connection={connection}
    &code={systemKey}

Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümenin yanı sıra aşağıdaki benzersiz parametreleri içerir:

Alan Parametre türü Açıklama
instanceId URL Düzenleme ö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
}

Birden çok örnek geçmişlerini temizleme

'Tek örnek geçmişini temizle' isteğinden öğesini kaldırarak {instanceId} bir görev hub'ı içindeki birden çok örneğin geçmişini ve ilgili yapıtlarını da silebilirsiniz. Örnek geçmişini seçmeli olarak temizlemek için 'Tüm örneklerin durumunu al' isteğinde açıklanan filtreleri kullanın.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

DELETE /admin/extensions/DurableTaskExtension/instances
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}
    &createdTimeFrom={timestamp}
    &createdTimeTo={timestamp}
    &runtimeStatus={runtimeStatus1,runtimeStatus2,...}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

DELETE /runtime/webhooks/durabletask/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ümenin yanı sıra 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, temizlenir ö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.

Not

Varsayılan Azure Depolama sağlayıcısını kullanıyorsanız ve Örnekler ve/veya Geçmiş tablolarında çok fazla satır varsa bu işlem Azure Depolama G/Ç açısından çok pahalı olabilir. Bu tablolarla ilgili diğer ayrıntılar Dayanıklı İşlevler (Azure İşlevleri) içinde performans ve ölçeklendirme belgelerinde bulunabilir.

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.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/raiseEvent/{eventName}
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

POST /runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName}
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}

Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümenin yanı sıra aşağıdaki benzersiz parametreleri içerir:

Alan Parametre türü Açıklama
instanceId URL Düzenleme ö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.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/terminate
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}
    &reason={text}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

POST /runtime/webhooks/durabletask/instances/{instanceId}/terminate
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}
    &reason={text}

Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümenin yanı sıra aşağıdaki benzersiz parametreyi içerir.

Alan Parametre Türü Açıklama
instanceId URL Düzenleme örneğinin kimliği.
reason Sorgu dizesi isteğe bağlı. 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 askıya alır.

İste

İş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 Düzenleme örneğinin kimliği.
reason Sorgu dizesi isteğe bağlı. Düzenleme örneğini askıya alma nedeni.

Birkaç olası durum kodu değeri döndürülebilir.

  • HTTP 202 (Kabul Edildi): Askıya alma isteği işlenmek üzere kabul edildi.
  • HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
  • HTTP 410 (Gitti): Belirtilen örnek tamamlandı, başarısız oldu veya sonlandırıldı.

Bu API'nin yanıtları herhangi bir içerik içermiyor.

Özgeçmiş örneği

Askıya alınmış bir düzenleme örneğini sürdürür.

İste

İş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 Düzenleme örneğinin kimliği.
reason Sorgu dizesi isteğe bağlı. Düzenleme örneğini devam ettiren neden.

Birkaç olası durum kodu değeri döndürülebilir.

  • HTTP 202 (Kabul Edildi): Özgeçmiş isteği işlenmek üzere kabul edildi.
  • HTTP 404 (Bulunamadı): Belirtilen örnek bulunamadı.
  • HTTP 410 (Gitti): Belirtilen örnek tamamlandı, başarısız oldu veya sonlandırıldı.

Bu API'nin yanıtları herhangi bir içerik içermiyor.

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.

İste

İşlevler çalışma zamanının 1.x sürümü için istek aşağıdaki gibi biçimlendirilir (netlik için birden çok satır gösterilir):

POST /admin/extensions/DurableTaskExtension/instances/{instanceId}/rewind
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}
    &reason={text}

İşlevler çalışma zamanının 2.x sürümünde URL biçiminin tümü aynı parametrelere sahiptir ancak biraz farklı bir ön eke sahiptir:

POST /runtime/webhooks/durabletask/instances/{instanceId}/rewind
    ?taskHub={taskHub}
    &connection={connectionName}
    &code={systemKey}
    &reason={text}

Bu API için istek parametreleri, daha önce bahsedilen varsayılan kümenin yanı sıra aşağıdaki benzersiz parametreyi içerir.

Alan Parametre Türü Açıklama
instanceId URL Düzenleme örneğinin kimliği.
reason Sorgu dizesi isteğe bağlı. Düzenleme ö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 sarmalayan ve düzeltildi nedenini belirten örnek bir istek verilmiştir:

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 varlığı

Dayanıklı Varlığa tek yönlü işlem iletisi gönderir. Varlık yoksa, otomatik olarak oluşturulur.

Not

Dayanıklı varlıklar Dayanıklı İşlevler 2.0'dan itibaren kullanılabilir.

İste

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ümenin yanı sıra 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 isteğe bağlı. Çağrılacak kullanıcı tanımlı işlemin adı.
{content} İçerik isteme JSON biçimli olay yükü.

Aşağıda adlı stepsvarlığa kullanıcı tanımlı bir "Ekle" iletisi gönderen örnek bir Counter istek verilmiştir. İletinin içeriği değeridir 5. Varlık henüz yoksa, bu istek tarafından oluşturulur:

POST /runtime/webhooks/durabletask/entities/Counter/steps?op=Add
Content-Type: application/json

5

Not

.NET'teki sınıf tabanlı varlıklarda varsayılan olarak değerinin delete belirtilmesi op bir 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 bir 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çermiyor. 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.

İste

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.

Örnek

Aşağıdaki örnek HTTP isteği adlı stepsmevcut Counter varlığın durumunu alır:

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
}

Liste varlıkları

Varlık adına göre veya son işlem tarihine göre birden çok varlık sorgulayabilirsiniz.

İste

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ümenin yanı sıra aşağıdaki benzersiz parametreleri içerir:

Alan Parametre türü Açıklama
entityName URL isteğe bağlı. 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ğeri ayarlarsanız, bir sonraki sonuç sayfasını alabilirsiniz. İstek üst bilgisinin bu adı da x-ms-continuation-tokenşeklindedir.

Örnek - tüm varlıkları listeleme

Aşağıdaki örnek HTTP isteği, görev hub'ında tüm varlıkları listeler:

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

Aşağıdaki örnek HTTP isteği türündeki counter yalnızca ilk iki varlığı listeler ve ayrıca durumlarını getirir:

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 }
    }
]

Sonraki adımlar