【问题标题】:ARM Deployment Error- The request content was invalid and could not be deserialized: 'Cannot deserialize the current JSON arrayARM 部署错误 - 请求内容无效,无法反序列化:'无法反序列化当前 JSON 数组
【发布时间】:2020-09-30 20:34:55
【问题描述】:

我已经浏览过之前类似的帖子,但无法找到适合我的情况的任何解决方案。于是又问。请考虑。

我正在尝试使用 ARM 模板部署 Azure Policy。所以,我创建了

1- 策略定义文件

2- 策略参数文件

3- Power Shell 脚本 - 使用策略和参数文件作为输入运行。

但是当我尝试部署时,我收到了附加错误。 “policyParameters”作为对象类型传递。似乎问题就在那里。如果您可以查看随附的屏幕截图和建议,那就太好了。

Powershell 脚本输出也显示了我认为的预期值,但“ProvisioningState : Failed”。

谢谢,

PolicyFile

Error Output

Parameter File

JSON-part1 JSON-Part2

【问题讨论】:

  • 您能否提供您的 ARM JSON。我猜部署部分有问题:例如:“location”:“[[parameters('location')]”,开头必须是2'[':请在此处查找示例:markusmeyer.hashnode.dev/…
  • 请看附件,我已经上传了全部3个文件。
  • 完整的 JSON 会很好。问题可能出在“部署部分”
  • 您是否需要更多输入来确定此问题?一段时间以来一直在解决这个问题。 :)
  • 是的,我需要更多输入。完整的 JSON 会很好

标签: azure azure-resource-manager arm-template


【解决方案1】:

您必须为 policyParametars 创建一个变量:

"variables": {
    "policyParameters": {
        "policyDefinitionId": {
            "defaultValue": "[parameters('policyDefinitionId')]",
            "type": "String"
         },
...  

这个变量必须传递给你的参数:

 "parameters": "[variables('policyParameters')]",

您可以在此处找到示例: Configure Azure Diagnostic Settings with Azure Policies

【讨论】:

  • 感谢您的回复。但我的理解是我们必须将“policyParameters”作为对象传递。我对么?我会试试这个,让你知道输出。
  • 您能否让我理解为什么我应该为 policyParameters 创建另一个变量。以及为什么对象没有按预期工作。
  • 我是用一个变量来做的,因为所有的参数都必须传递给'parameters'。
  • 我必须指定如下的对象值并且它有效。 "policyParameters": { "value": { "listOfAllowedLocations":{"value":["West US","East US"]} } }
猜你喜欢
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多