使用 Azure 策略值覆盖 Azure 资源值

Overwrite Azure resource values with Azure policy values

是否可以使用 Azure 策略值覆盖 Azure 资源值?我正在尝试修复 VM size/sku。我创建了以下具有 append 效果的策略,它无法创建 VM,因为它无法覆盖 default/given VM size/sku.

{
    "if": {
        "field": "type",
        "equals": "Microsoft.Compute/virtualMachines"
    },
    "then": {
        "effect": "append",
        "details": [{
                "field": "Microsoft.Compute/virtualMachines/sku.name",
                "value": "Standard_D4_v3"
            }
        ]
    }
}

不,无法使用 ARM 策略 append 效果 覆盖 资源值。您遇到的行为是设计使然,如 here 所述。

由于 VM 的 SKU 是单个值而不是 collection/array 个值,因此您希望采取的唯一操作是覆盖原始值。但是,如您所见,在这种情况下,ARM 策略将恢复为 deny 效果。