Azure ARM 模板 - 空值作为参数,IF 函数

Azure ARM templates - empty values as a parameters, IF function

我正在为更新管理服务中的 "Schedule update deployment" 准备 ARM 模板。我想添加如下参数:"excludedKbNumbers""includedKbNumbers"。我正在使用 powershell 部署我的模板。当我使用提到的参数模板传递 KB 编号时,模板已成功完成。如果我使用上述参数之一输入 KB 编号,第二个为空,模板成功完成。问题是当我不想传递 Included/Exluded KB 数字时,在我的 powershell 部署命令中我没有输入参数名称 "excludedKbNumbers""includedKbNumbers",然后我收到以下错误:"message": "{\"Message\":\"The request is invalid.\",\"ModelState\":{\"softwareUpdateConfiguration.properties.updateConfiguration\":[\"Software update configuration has same KbNumbers in includedKbNumbers and excludedKbNumbers.\"]}}"

我在我的模板中使用此结构 json('null'),这是一个有问题的区域。 从我的模板中提取:

    "parameters": {
        "excludedKbNumbers": {
            "type": "string",
            "defaultValue": "",
            "metadata": {
                "description": "Specify excluded KB numbers, required data structure: 123456"
            }
        },
        "includedKbNumbers": {
            "type": "string",
            "defaultValue": "",
            "metadata": {
                "description": "Specify included KB numbers, required data structure: 123456"
            }
   },
"resources": [
        {
            "type": "Microsoft.Automation/automationAccounts/softwareUpdateConfigurations",
            "apiVersion": "2017-05-15-preview",
            "name": "[concat(parameters('automationAccountName'), '/', parameters('scheduleName'))]",
            "properties": {
                "updateConfiguration": {
                    "operatingSystem": "[parameters('operatingSystem')]",
                    "windows": {
                        "includedUpdateClassifications": "[parameters('Classification')]",
                        "excludedKbNumbers": [
                            "[if(empty(parameters('excludedKbNumbers')), json('null'), parameters('excludedKbNumbers'))]"
                        ],
                        "includedKbNumbers": [
                            "[if(empty(parameters('includedKbNumbers')), json('null'), parameters('includedKbNumbers'))]"
                        ],
                        "rebootSetting": "IfRequired"
                    },
                    "targets": {
                        "azureQueries": [
                            {
                                "scope": [
                                    "[concat('/subscriptions', '/', parameters('subscriptionID'))]"
                                ],
                                "tagSettings": {
                                    "tags": {
                                        "[parameters('tagKey')]": [
                                            "[parameters('tagValue')]"
                                        ]
                                    },
                                    "filterOperator": "All"
                                },
                                "locations": []
                            }
                        ]
                    },
                    "duration": "PT2H"
                },
                "tasks": {},
                "scheduleInfo": {
                    "isEnabled": false,
                    "startTime": "2050-03-03T13:10:00+01:00",
                    "expiryTime": "2050-03-03T13:10:00+01:00",
                    "frequency": "OneTime",
                    "timeZone": "Europe/Warsaw"
                }
            }
        }
    ],

尝试这样做:

"excludedKbNumbers": "[if(empty(parameters('excludedKbNumbers')), json('null'), array(parameters('excludedKbNumbers')))]",
"includedKbNumbers": "[if(empty(parameters('includedKbNumbers')), json('null'), array(parameters('includedKbNumbers')))]"