Ресурс не может быть обновлен во время ошибки подготовки при развертывании подписки на сетку событий из шаблона ARM

При развертывании подписки Azure Event Grid мы начали получать ошибку «Ресурс не может быть обновлен во время подготовки» с конца прошлой недели, из ниоткуда, без каких-либо изменений в шаблоне ARM, который работал в течение нескольких недель.

Шаблон ARM для непрерывного развертывания в основном развертывает последние настройки AppSettings приложения «Функции Azure» вместе с подпиской на тему сетки событий. Вот важные шаги с компакт-диска, он терпит неудачу на первом шаге, который выполняет шаблон ARM:

Действия по непрерывному развертыванию

Сообщение об ошибке при непрерывном развертывании в VSTS:

2018-04-16T15:42:12.8544806Z There were errors in your deployment. Error code: DeploymentFailed.
2018-04-16T15:42:12.8544806Z ##[error]At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.
2018-04-16T15:42:12.8544806Z ##[error]Details:
2018-04-16T15:42:12.8544806Z ##[error]Conflict: {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "DeploymentFailed",
        "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.",
        "details": [
          {
            "code": "BadRequest",
            "message": "{\r\n  \"error\": {\r\n    \"code\": \"InvalidRequest\",\r\n    \"message\": \"Resource cannot be updated during provisioning\"\r\n  }\r\n}"
          }
        ]
      }
    ]
  }
} undefined
2018-04-16T15:42:12.8544806Z ##[error]Task failed while creating or updating the template deployment.

При просмотре журнала активности сетки событий на портале Azure я обнаружил следующую информацию, подтверждающую сбой подписки:

{
  "authorization": {
    "action": "Microsoft.EventGrid/eventSubscriptions/write",
    "scope": "[REMOVED]"
  },
  "caller": "a11d0bff-196e-4967-a4be-7fa0c095d39f",
  "channels": "Operation",
  "claims": {
    "aud": "[REMOVED]"
  },
  "correlationId": "a7be5495-e9b8-47fd-a2be-9aa30b9ec54a",
  "description": "",
  "eventDataId": "005b7a10-b0d1-4281-9e44-26f33e4a3e39",
  "eventName": {
    "value": "EndRequest",
    "localizedValue": "End request"
  },
  "category": {
    "value": "Administrative",
    "localizedValue": "Administrative"
  },
  "eventTimestamp": "2018-04-16T16:26:31.5821162Z",
  "id": "[REMOVED]",
  "level": "Error",
  "operationId": "fea43c00-d46e-49d4-8c97-d78a9951aaaa",
  "operationName": {
    "value": "Microsoft.EventGrid/eventSubscriptions/write",
    "localizedValue": "Microsoft.EventGrid/eventSubscriptions/write"
  },
  "resourceGroupName": "[REMOVED]",
  "resourceProviderName": {
    "value": "Microsoft.EventGrid",
    "localizedValue": "Microsoft.EventGrid"
  },
  "resourceType": {
    "value": "Microsoft.EventGrid/eventSubscriptions",
    "localizedValue": "Microsoft.EventGrid/eventSubscriptions"
  },
  "resourceId": "[REMOVED]",
  "status": {
    "value": "Failed",
    "localizedValue": "Failed"
  },
  "subStatus": {
    "value": "",
    "localizedValue": ""
  },
  "submissionTimestamp": "2018-04-16T16:26:55.0807594Z",
  "subscriptionId": "[REMOVED]",
  "properties": {
    "statusCode": "BadRequest",
    "statusMessage": "{\"error\":{\"code\":\"InvalidRequest\",\"message\":\"Resource cannot be updated during provisioning\"}}",
    "serviceRequestId": "05c4b3e5-692a-4669-b8b4-c00a3a9cbd88"
  },
  "relatedEvents": [

  ]
}

Выдержка из шаблона ARM для подписки Event Grid:

            {
        "apiVersion": "2017-05-10",
        "name": "nested-shared-rg",
        "type": "Microsoft.Resources/deployments",
        "resourceGroup": "[variables('globalSharedResourceGroupName')]",
        "properties": {
            "mode": "Incremental",
            "template": {
                "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                "contentVersion": "1.0.0.0",
                "parameters": {},
                "variables": {},
                "resources": [
                    {
                        "name": "[concat(variables('notificationTopicName'), '/Microsoft.EventGrid/', variables('notificationTopicSubscriptionName'))]",
                        "type": "Microsoft.EventGrid/topics/providers/eventSubscriptions",
                        "apiVersion": "2017-06-15-preview",
                        "tags": {
                            "version": "[parameters('templateVersion')]",
                            "fullVersion": "[parameters('templateFullVersion')]",
                            "scope": "[parameters('webAppFctName')]",
                            "environment": "[parameters('environmentName')]",
                            "displayName": "Event Grid Subscription"
                        },
                        "properties": {
                            "destination": {
                                "endpointType": "WebHook",
                                "properties": {
                                    "endpointUrl": "[concat('https://', variables('webAppName') ,'.azurewebsites.net', variables('notificationEndPointPath'))]"
                                }
                            },
                            "filter": {
                                "includedEventTypes": [ "All" ],
                                "subjectBeginsWith": "",
                                "subjectEndsWith": "",
                                "subjectIsCaseSensitive": false
                            },
                            "labels": [ "" ]
                        }
                    }
                ],
                "outputs": {
                    "resourceGroupOutput": {
                        "type": "object",
                        "value": "[resourceGroup()]"
                    }
                }
            },
            "parameters": {}
        }
    }

Спасибо! Саймон


person Simon Luckenuik    schedule 16.04.2018    source источник
comment
Могу я спросить, использует ли ваш шаблон ARM supportsOn, чтобы подписка Grid строго соответствовала развертыванию FunctionApp? - ›Изменение шаблона ARM для развертывания только подписки Event Grid, как показано выше, дает ту же ошибку. Также обратите внимание, что подписка Event Grid и приложение Functions находятся в разных группах ресурсов.   -  person Simon Luckenuik    schedule 24.04.2018
comment
Я также попытался развернуть предыдущий выпуск пакета с использованием того же шаблона ARM, и теперь развертывание не удается (работало в последний раз, когда оно было развернуто).   -  person Simon Luckenuik    schedule 24.04.2018
comment
ты решил это?   -  person HariHaran    schedule 20.09.2018
comment
Нет, но со мной этого давно не случалось, может, с их стороны что-то поправили ИЛИ мне повезло ...   -  person Simon Luckenuik    schedule 20.09.2018


Ответы (1)


В этой секции:

https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#sample-script-to-stop-and-restart-triggers-and-clean-up

Эта строка, кажется, вызывает периодическую ошибку, если у вас много триггеров (у нас 36 триггеров на основе событий). Start-AzDataFactoryV2Trigger -ResourceGroupName $ ResourceGroupName -DataFactoryName $ DataFactoryName -Name $ _ -Force

Добавив небольшую задержку (5 секунд), можно избежать ошибки. то есть Start-Sleep -s 5 внутри foreach.

person yash    schedule 26.01.2021