Диспетчер ресурсов Azure. Как указать необязательные параметры в связанных шаблонах - PullRequest
1 голос
/ 26 апреля 2019

Я использую связанные шаблоны для развертывания общих ресурсов. В этом случае я развертываю VM , для которого определен необязательный параметр AdminPassword, который требуется только в определенных сценариях (а именно, когда для параметра PasswordAuthenticationDisabled установлено значение false):

"parameters": {
    "AdminPassword": {
        "type": "securestring",
        "defaultValue": null,
        "metadata": {
            "description": "Password when password-based authentication isn't disabled"
        }
    },
    "PasswordAuthenticationDisabled": {
        "type": "bool",
        "defaultValue": "true",
        "metadata": {
            "description": "Should password-based authentication thorugh SSH be disabled"
        }
    }
}

Я ссылаюсь на связанный шаблон следующим образом:

{
    "type": "Microsoft.Resources/deployments",
    "name": "[variables('nameDeploymentVmAttacker1')]",
    "apiVersion": "2017-05-10",
    "properties": {
        "mode": "Incremental",
        "templateLink": {
            "uri": "[concat(variables('urlTemplates'), '/vm/ubuntu-18.04.json')]"
        },
        "parameters": {
            "Name": {
                "value": "[variables('nameVmAttacker1')]"
            },
            "Region": {
                "value": "[resourceGroup().location]"
            },
            "AdminUsername": {
                "value": "[parameters('AdminUsername')]"
            },
            "AdminSshKey": {
                "value": "[parameters('AdminSshKey')]"
            },
            "VmSize": {
                "value": "[parameters('VmSize')]"
            },
            "VnetName": {
                "value": "[variables('nameVnet')]"
            },
            "PasswordAuthenticationDisabled": {
                "value": true
            }
        }
    }
}

Без указания необязательного параметра. Это приводит к тому, что ARM жалуется на отсутствующий параметр: Deployment template validation failed: 'The value for the template parameter 'AdminPassword' at line '25' and column '26' is not provided. Please see https://aka.ms/arm-deploy/#parameter-file for usage details.

Как я могу сказать вызывающему шаблону соблюдать необязательность параметра и просто перейти со значением по умолчанию?

1 Ответ

0 голосов
/ 26 апреля 2019

Установите для defaultValue значение, отличное от null, например, пустую строку.Для этого сценария вы также можете сделать что-то вроде этого: https://github.com/Azure/azure-quickstart-templates/blob/master/100-marketplace-sample/azuredeploy.json#L36

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...