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 izlenmesi açıklanır.

Zaman uyumsuz işlemler için durum kodları

Zaman uyumsuz bir işlem başlangıçta aşağıdakilerden birinin HTTP durum kodunu döndürür:

  • 201 (Oluşturuldu)
  • 202 (Kabul Edildi)

Ancak, bu durum kodu işlemin zaman uyumsuz olduğu anlamına gelmez. Zaman uyumsuz bir işlem, işlemin tamamlanmadığını gösteren değerini provisioningState de döndürür. Değer işleme göre farklılık gösterebilir ancak Başarılı, Başarısız veya İptal Edildi değerlerini içermez. Bu üç değer işlemin bittiğini gösterir. için provisioningStatehiçbir değer döndürülmezse işlem tamamlanır ve başarılı olur.

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

  • 200 (Tamam)
  • 204 (İç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 isteğinizden döndürülen üst bilgi değerlerini inceleyerek doğru yaklaşımı belirlersiniz. İlk olarak şunları arayın:

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

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

  • Location - bir işlemin ne zaman tamamlandığını belirlemek için URL. Bu değeri yalnızca Azure-AsyncOperation döndürülmezse kullanın.
  • Retry-After - Zaman uyumsuz işlemin durumunu denetlemeden önce beklenmesi gereken saniye sayısı.

Retry-after Üst bilgi döndürülmezse kendi yeniden deneme mantığınızı uygulayın.

Dekont

REST istemciniz ve Locationiçin Azure-AsyncOperation en az 4 KB URL boyutunu kabul etmelidir.

Zaman uyumsuz durumu izleme izni

Zaman uyumsuz bir işlemin durumunu izlemek için kaynak grubu düzeyinde yeterli izne sahip olmanız gerekir. Yalnızca kaynak düzeyinde izniniz varsa işlemi başlatabilirsiniz ancak durumunu izleyemezsiniz. İzleme durumu URL'si kaynağın kapsamına girmediğinden kaynak grubu düzeyinde izin gereklidir.

Örneğin, bir sanal makineyi başlatmak için, sanal makineyi içeren kaynak grubu için Sanal Makine Katkıda Bulunanı rolüne ihtiyacınız vardır. Başlangıç isteğini izlemeye yönelik URL, yoluna sanal makineyi içermez.

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

Azure-AsyncOperation isteği ve yanıtı

Üst bilgi değerinden Azure-AsyncOperation bir URL'niz varsa, bu URL'ye bir GET isteği gönderin. Durumunun ne sıklıkta denetleneceklerini zamanlamak için değerini Retry-After kullanın. İşlemin durumunu gösteren bir yanıt nesnesi alırsınız. URL ile Location işlemin durumu denetlenirken farklı bir yanıt döndürülür. Konum URL'sinden gelen yanıt hakkında daha fazla bilgi için bkz . Depolama hesabı oluşturma (Konum ile 202 ve Yeniden Dene-Sonra).

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

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

Aşağıdaki örnekte, işlemden döndürülebilecek diğer değerler gösterilmektedir:

{
    "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}"
    }
}

Durum Başarısız veya İptal Edildi olduğunda hata nesnesi döndürülür. Diğer tüm değerler isteğe bağlıdır. Aldığınız yanıt örnekten farklı görünebilir.

provisioningState değerleri

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

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

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

Örnek istekler ve yanıtlar

Sanal makineyi başlatma (Azure-AsyncOperation ile 202)

Bu örnekte sanal makineler için başlatma işleminin durumunun nasıl belirleneceği gösterilmektedir. İ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 şunları 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

Zaman uyumsuz işlemin durumunu denetlemek için bu URL'ye başka bir istek gönderin.

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-AsyncOperation ile 201)

Bu örnekte, kaynakları Azure'a dağıtmak için dağıtım 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

Durum kodu 201'i döndürür. Yanıtın gövdesi şunları içerir:

"provisioningState":"Accepted",

Üst bilgi değerleri arasında şunları 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

Zaman uyumsuz işlemin durumunu denetlemek için bu URL'ye başka bir istek gönderir.

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şturma (Konum ve Yeniden Deneme Sonrası ile 202)

Bu örnekte, depolama hesapları için oluşturma 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.Storage/storageAccounts/{storage-name}?api-version=2019-06-01

İstek gövdesi, depolama hesabının özelliklerini 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 Dene-Sonra bölümünde 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 durum kodunu alırsınız. İstek tamamlandıysa, 200 durum kodunu alırsınız. Yanıtın gövdesi, oluşturulan depolama hesabının özelliklerini içerir.

Sonraki adımlar