Zaman uyumsuz Azure işlemlerini izleme

İşlem hızlı bir şekilde tamamlanamadığından bazı Azure REST işlemleri zaman uyumsuz olarak çalışır. Bu makalede, yanıtta döndürülen değerler aracılığıyla zaman uyumsuz işlemlerin durumunun nasıl izleneceği açıklanır.

Zaman uyumsuz işlemler için durum kodları

Zaman uyumsuz bir işlem başlangıçta bir HTTP durum kodu döndürür:

  • 201 (oluşturuldu)
  • 202 (kabul edildi)

İşlem başarıyla tamamlandığında, aşağıdakilerden birini döndürür:

  • 200 (TAMAM)
  • 204 (Içerik yok)

Yürütmekte olduğunuz işlemin yanıtlarını görmek için REST API belgelerine bakın.

201 veya 202 yanıt kodunu aldıktan sonra, işlemin durumunu izlemeye hazırsınız demektir.

Durumu izlemek için URL

Zaman uyumsuz işlemin durumunu izlemenin iki farklı yolu vardır. Özgün talebinizden döndürülen üst bilgi değerlerini inceleyerek doğru yaklaşımı belirlersiniz. İlk olarak şunu arayın:

  • Azure-AsyncOperation -İşlemin devam eden durumunu denetlemek için URL. İşlem bu değeri döndürürse, işlemin durumunu izlemek için onu kullanın.
  • Retry-After -Zaman uyumsuz işlemin durumu denetlenmeden önce beklenecek saniye sayısı.

Azure-AsyncOperationÜst bilgi değerlerinden biri değilse, şunu arayın:

  • Location -Bir işlemin ne zaman tamamlandığını belirlemek için URL. Yalnızca Azure-AsyncOperation döndürülmediğinde bu değeri kullanın.
  • Retry-After -Zaman uyumsuz işlemin durumu denetlenmeden önce beklenecek saniye sayısı.

İstek ve yanıt Azure-AsyncOperation

Azure-AsyncOperationÜst bilgi değerindeki BIR URL varsa, bu URL 'ye BIR get isteği gönderin. Retry-AfterDurumu ne sıklıkta kontrol etmek için değerini kullanın. İşlemin durumunu gösteren bir yanıt nesnesi alacaksınız. URL ile işlemin durumu denetlenirken farklı bir yanıt döndürülür Location . Konum URL 'sindeki yanıt hakkında daha fazla bilgi için bkz. depolama hesabı oluşturma (konum ile 202 ve yeniden deneme-sonrası).

Yanıt özellikleri farklılık gösterebilir, ancak her zaman zaman uyumsuz işlemin durumunu içerir.

{
    "status": "{status-value}"
}

Aşağıdaki örnek, işlemden döndürülebilecek diğer değerleri gösterir:

{
    "id": "{resource path from GET operation}",
    "name": "{operation-id}",
    "status" : "Succeeded | Failed | Canceled | {resource provider values}",
    "startTime": "2017-01-06T20:56:36.002812+00:00",
    "endTime": "2017-01-06T20:56:56.002812+00:00",
    "percentComplete": {double between 0 and 100 },
    "properties": {
        /* Specific resource provider values for successful operations */
    },
    "error" : {
        "code": "{error code}",  
        "message": "{error description}"
    }
}

Hata nesnesi, durum başarısız olduğunda veya Iptal edildiğinde döndürülür. Diğer tüm değerler isteğe bağlıdır. Aldığınız yanıt, örneğinden farklı görünebilir.

provisioningState değerleri

Kaynak oluşturan, güncelleştiren veya silen (PUT, PATCH, SIL) işlemler genellikle bir provisioningState değer döndürüyor. Bir işlem tamamlandığında, aşağıdaki üç değerden biri döndürülür:

  • Başarılı
  • Başarısız
  • İptal edildi

Diğer tüm değerler işlemin hala çalıştığını gösterir. Kaynak sağlayıcı, durumunu gösteren özelleştirilmiş bir değer döndürebilir. Örneğin, istek alındığında ve çalıştırıldığında kabul edilebilir.

Örnek istekleri ve yanıtları

Sanal makineyi başlatın (Azure-AsyncOperation ile 202)

Bu örnek, sanal makineler için başlatma işleminindurumunun nasıl belirleneceğini gösterir. İlk istek aşağıdaki biçimdedir:

POST 
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Compute/virtualMachines/{vm-name}/start?api-version=2019-12-01

202 durum kodunu döndürür. Üst bilgi değerleri arasında şunu görürsünüz:

Azure-AsyncOperation : https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01

Bu URL 'ye başka bir istek göndererek zaman uyumsuz işlemin durumunu denetlemek için.

GET 
https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01

Yanıt gövdesi işlemin durumunu içerir:

{
  "startTime": "2017-01-06T18:58:24.7596323+00:00",
  "status": "InProgress",
  "name": "9a062a88-e463-4697-bef2-fe039df73a02"
}

Kaynakları dağıtma (Azure ile zaman uyumsuz coperation ile 201)

Bu örnekte, Azure 'a kaynak dağıtmaya yönelik dağıtımlar işleminin durumunun nasıl belirleneceği gösterilmektedir. İlk istek aşağıdaki biçimdedir:

PUT
https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.resources/deployments/{deployment-name}?api-version=2020-06-01

201 durum kodunu döndürür. Yanıtın gövdesi şunları içerir:

"provisioningState":"Accepted",

Üst bilgi değerleri arasında şunu görürsünüz:

Azure-AsyncOperation: https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-version=2020-06-01

Bu URL 'ye başka bir istek göndererek zaman uyumsuz işlemin durumunu denetlemek için.

GET 
https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-version=2020-06-01

Yanıt gövdesi işlemin durumunu içerir:

{
    "status": "Running"
}

Dağıtım tamamlandığında, yanıt şunları içerir:

{
    "status": "Succeeded"
}

Depolama hesabı oluştur (konum ve yeniden dene ile 202)

Bu örnek, depolama hesapları için oluşturma işleminindurumunun nasıl belirleneceğini gösterir. İlk istek aşağıdaki biçimdedir:

PUT
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}?api-version=2019-06-01

Ve istek gövdesi depolama hesabı için özellikler içerir:

{
    "location": "South Central US",
    "properties": {},
    "sku": {
        "name": "Standard_LRS"
    },
    "kind": "Storage"
}

202 durum kodunu döndürür. Üst bilgi değerleri arasında aşağıdaki iki değeri görürsünüz:

Location: https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2019-06-01
Retry-After: 17

Yeniden deneme sırasında belirtilen saniye sayısını bekledikten sonra, bu URL 'ye başka bir istek göndererek zaman uyumsuz işlemin durumunu denetleyin.

GET 
https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2019-06-01

İstek hala çalışıyorsa 202 bir durum kodu alırsınız. İstek tamamlandıysa, 200 durum kodunu alır ve yanıtın gövdesi oluşturulan depolama hesabının özelliklerini içerir.

Sonraki adımlar