Где вы можете использовать функции шаблона ARM в определениях политик?

#azure-policy

#azure-политика

Вопрос:

Я пытаюсь использовать функции шаблона ARM в effect части политики, но, похоже, это не позволяет делать что-то, что поддерживает шаблон ARM utcnow('YYYY') . За статью (https://docs.microsoft.com/en-us/azure/governance/policy/concepts/definition-structure#policy-functions) Я смогу использовать эту функцию, по крайней мере, в параметрах, а затем передать ее, но она передается как строка. Пример политики приведен ниже. Я пытаюсь преобразовать utcnow() по умолчанию в короткую строку даты и не могу сделать это с помощью политики

 "policyRule": {
    "if": {
      "anyOf": [
        {
          "field": "tags['datemodified']",
          "exists": "false"
        },
        {
          "field": "tags['datemodified']",
          "exists": "true"
        }
      ]
    },
    "then": {
      "effect": "modify",
      "details": {
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f"
        ],
        "operations": [
          {
            "operation": "addOrReplace",
            "field": "tags['datemodified']",
            "value": "[parameters('timeOfExecution')]"
          }
        ]
      }
    }
  },
  "parameters": {
    "timeOfExecution": {
      "type": "String",
      "metadata": {
        "displayName": "timeOfExecution",
        "description": null
      },
      "defaultValue": "[utcnow('yyyy-MM-dd')]"
    }
  }
 

Ответ №1:

Согласно поддержке Microsoft, следующие функции шаблона ARM не поддерживаются в политике Azure:

 dateTimeAdd
utcNow(format)
deployment
environment
variables
extensionResourceId
listAccountSas
listKeys
listSecrets
list*
pickZones
providers (deprecated)
reference
resourceId
subscriptionResourceId
tenantResourceId
managementGroup
tenant
newGuid