Сбой шаблона JSON при активном развертывании в цикле - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь создать шаблон, который выполняет несколько виртуальных машин в Azure, а затем шифрует диски, мне удалось заставить его работать с 2 виртуальными машинами около 3 часов назад, однако, когда я выполняю три или более виртуальных тома в циклеЯ получаю следующую ошибку:

            "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": "Conflict",
            "message": "{\r\n  \"error\": {\r\n    \"code\": \"DeploymentActive\",\r\n    \"message\": \"Unable to edit or replace deployment 'updatevm': previous deployment 
from '12/29/2018 1:11:34 AM' is still active (expiration time is '1/5/2019 1:11:34 AM'). Please see https://aka.ms/arm-deploy for usage details.\"\r\n  }\r\n}"
          }
        ]
      }
    ]

Есть ли способ поставить паузу, чтобы он ожидал завершения расширения updatevm?

Раздел кода, который у меня есть для шифрованияэто:

{
      "name": "[concat(parameters('VMNames'),copyIndex(),'UpdateEncryptionSettings')]",
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2015-01-01",
      "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', parameters('VMNames'),copyIndex(1))]"
      ],
      "properties": {
        "mode": "Incremental",
        "templateLink": {
          "uri": "[concat(parameters('_artifactsLocation'),'/nestedtemplates/encryptVm.json',parameters('_artifactsLocationSasToken'))]",
          "contentVersion": "1.0.0.0"
        },
        "parameters": {
          "vmName": {
            "value": "[concat(parameters('VMNames'), copyIndex(1))]"
          },
          "aadClientID": {
            "value": "[parameters('aadClientID')]"
          },
          "aadClientSecret": {
            "value": "[parameters('aadClientSecret')]"
          },
          "keyVaultName": {
            "value": "[parameters('keyVaultName')]"
          },
          "keyVaultResourceGroup": {
            "value": "[parameters('keyVaultResourceGroup')]"
          },
          "useExistingKek": {
            "value": "[parameters('useExistingKek')]"
          },
          "keyEncryptionKeyURL": {
            "value": "[parameters('keyEncryptionKeyURL')]"
          },
          "_artifactsLocation": {
            "value": "[parameters('_artifactsLocation')]"
          },
          "_artifactsLocationSasToken": {
            "value": "[parameters('_artifactsLocationSasToken')]"
          }
        }
      }
    },

1 Ответ

0 голосов
/ 29 декабря 2018

делает его зависимым от предыдущего расширения, так как вы не предоставляете точный код, это что-то вроде:

"dependsOn": [
    "updatevm"
}

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

"copy": {
    "name": "storagecopy",
    "count": 4,
    "mode": "serial",
    "batchSize": 1
}

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-multiple#resource-iteration

...