Auswirkung „append“ von Azure Policy-Definitionen

Die Auswirkung append wird verwendet, um der angeforderten Ressource während der Erstellung oder Aktualisierung weitere Felder hinzuzufügen. Ein häufiges Beispiel ist die Angabe der zulässigen IP-Adressen für eine Speicherressource.

Wichtig

append ist für die Verwendung mit Nicht-Tag-Eigenschaften vorgesehen. Obwohl append einer Ressource während einer Erstellungs- oder Aktualisierungsanforderung Tags hinzufügen kann, wird empfohlen, stattdessen die Auswirkung modify für Tags zu verwenden.

Auswertung von „append“

Die Auswertung der Auswirkung append erfolgt vor der Anforderungsverarbeitung durch einen Ressourcenanbieter während der Erstellung oder Aktualisierung einer Ressource. „append“ fügt der Ressource Felder hinzu, wenn die if-Bedingung der Richtlinienregel erfüllt ist. Wenn die Auswirkung „append“ einen Wert in der ursprünglichen Anforderung mit einem anderen Wert überschreiben würde, fungiert sie als Auswirkung „deny“ und lehnt die Anforderung ab. Um einen neuen Wert an ein vorhandenes Array anzufügen, verwenden Sie die [*] -Version des Alias.

Wenn eine Richtliniendefinition mit Auswirkung „append“ im Rahmen eines Auswertungszyklus ausgeführt wird, werden keine Änderungen an bereits vorhandenen Ressourcen durchgeführt. Stattdessen werden alle Ressourcen, die die if-Bedingung erfüllen, als nicht konform markiert.

Eigenschaften von „append“

Die Auswirkung „append“ weist nur ein details-Array auf, das erforderlich ist. Da details ein Array ist, kann es sich dabei um ein einzelnes oder um mehrere field/value-Paare handeln. Eine Liste der gültigen Felder finden Sie unter Struktur von Azure Policy-Definitionen.

Beispiele für „append“

Beispiel 1: Einzelnes field/value-Paar, das einen Nicht-[*]-Alias mit einem Array-value verwendet, um IP-Regeln für ein Speicherkonto festzulegen. Wenn der Nicht-[*]-Alias ein Array ist, fügt die Auswirkung den value als gesamtes Array an. Ist das Array bereits vorhanden, wird durch den Konflikt ein deny-Ereignis ausgelöst.

"then": {
  "effect": "append",
  "details": [
    {
      "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules",
      "value": [
        {
          "action": "Allow",
          "value": "134.5.0.0/21"
        }
      ]
    }
  ]
}

Beispiel 2: Einzelnes field/value-Paar, das einen [*]-Alias mit einem Array-value verwendet, um IP-Regeln für ein Speicherkonto festzulegen. Wenn Sie den [*]-Alias verwenden, fügt die Auswirkung den value an ein Array an, das möglicherweise bereits vorhanden ist. Arrays, die nicht vorhanden sind, werden erstellt.

"then": {
  "effect": "append",
  "details": [
    {
      "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules[*]",
      "value": {
        "value": "40.40.40.40",
        "action": "Allow"
      }
    }
  ]
}

Nächste Schritte