Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Podobně jako auditIfNotExists, definice zásady deployIfNotExists spustí nasazení šablony, když je splněna podmínka. Přiřazení zásad s efektem nastaveným na DeployIfNotExists vyžadují spravovanou identitu k provedení nápravy.
Poznámka:
Vnořené šablony se podporují deployIfNotExists, ale propojené šablony nejsou v současné době podporovány.
Vyhodnocení DeployIfNotExists
deployIfNotExists spustí se po konfigurovatelné prodlevě, když poskytovatel prostředků zpracuje požadavek na vytvoření nebo aktualizaci předplatného nebo prostředku a vrátí stavový kód úspěchu. Nasazení šablony nastane, pokud neexistují žádné související prostředky nebo pokud se prostředky definované existenceCondition nehodnotí jako true. Doba trvání nasazení závisí na složitosti prostředků zahrnutých v šabloně.
Během zkušebního cyklu se definice zásad s efektem DeployIfNotExists, který odpovídá prostředkům, označí jako nevyhovující, ale u tohoto prostředku se neprojeví žádná akce. Stávající nekompatibilní prostředky je možné napravit úlohou nápravy.
DeployIfNotExists – vlastnosti
Vlastnost efektu details DeployIfNotExists má všechny podvlastnosti, které určují související prostředky, které mají odpovídat, a nasazení šablony, které se má provést.
-
type(povinné)- Určuje typ zdroje, který má být shodný.
- Pokud je
typetypem prostředku v rámci podmínkového prostředkuif, politika dotazuje na prostředky tohototypev rámci hodnoceného prostředku. V opačném případě se dotazy na zásady provádějí ve stejné skupině prostředků nebo v předplatném jako vyhodnocovaný prostředek v závislosti naexistenceScope.
-
name(volitelné)- Určuje přesný název prostředku, který se má shodovat, a způsobí, že zásada místo všech prostředků zadaného typu načte jeden konkrétní prostředek.
- Pokud jsou hodnoty podmínek pro
if.field.typeathen.details.typeshodné, pak senamestává povinným a musí být[field('name')], nebo[field('fullName')]pro podřízený prostředek.
Poznámka:
type a name segmenty lze zkombinovat za účelem univerzálního načtení vnořených prostředků.
K načtení konkrétního prostředku můžete použít "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" a "name": "parentResourceName/nestedResourceName".
Pokud chcete načíst kolekci vnořených prostředků, můžete místo posledního segmentu názvu zadat zástupný znak ?. Příklad: "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" a "name": "parentResourceName/?". To lze kombinovat s funkcemi polí pro přístup k prostředkům souvisejícím s vyhodnoceným prostředkem, například "name": "[concat(field('name'), '/?')]""
resourceGroupName(volitelné)- Umožňuje spárování souvisejícího prostředku z jiné skupiny prostředků.
- Nevztahuje se, pokud je
typeprostředkem, který by byl pod prostředkemifpodmínky. - Výchozí hodnota je skupina prostředků zdroje podmínky
if. - Pokud se spustí nasazení šablony, nasadí se ve skupině prostředků určené touto hodnotou.
existenceScope(volitelné)- Povolené hodnoty jsou Subscription a ResourceGroup.
- Nastaví rozsah, ze kterého se má načíst odpovídající související prostředek.
- Nevztahuje se, pokud je
typeprostředkem, který by byl pod prostředkemifpodmínky. - V případě skupiny prostředků by se v případě zadání omezila na skupinu
resourceGroupNameprostředků. PokudresourceGroupNamenení zadáno, omezí se naifskupinu prostředků podmínky, což je výchozí chování. - V případě předplatného se dotazuje na celé předplatné souvisejícího prostředku. Pro správné vyhodnocení by měl být obor přiřazení nastavený na předplatné nebo vyšší.
- Výchozí hodnota je ResourceGroup.
evaluationDelay(volitelné)- Určuje, kdy se má vyhodnotit existence souvisejících prostředků. Zpoždění se používá pouze pro vyhodnocení, která jsou výsledkem požadavku na vytvoření nebo aktualizaci prostředku.
- Povolené hodnoty jsou
AfterProvisioning,AfterProvisioningSuccess,AfterProvisioningFailurenebo ISO 8601 doba trvání mezi 0 a 360 minut. - Hodnoty AfterProvisioning kontrolují výsledek zřizování prostředku, který byl vyhodnocen v podmínce zásad pravidla
if.AfterProvisioningse spustí po dokončení zřizování, a to bez ohledu na výsledek. Zřizování, které trvá déle než šest hodin, se při určování zpoždění vyhodnocení po zřízení považuje za selhání. - Výchozí hodnota je
PT10M(10 minut). - Určení dlouhé prodlevy vyhodnocení může způsobit, že se zaznamenaný stav shody zdroje neaktualizuje, dokud nenastane další spouštěč vyhodnocení.
existenceCondition(volitelné)- Pokud není specifikováno, jakýkoli související prostředek
typesplňuje účinek a neaktivuje proces nasazení. - Používá stejný jazyk jako pravidlo zásad pro podmínku
if, ale vyhodnocuje se vůči jednotlivým souvisejícím prostředkům. - Pokud se některý z odpovídajících souvisejících prostředků vyhodnotí jako pravdivý, efekt se splní a neaktivuje nasazení.
- Pomocí funkce [field()] můžete zkontrolovat ekvivalenci s hodnotami v podmínce
if. - Lze například použít k ověření, že nadřazený prostředek (v
ifpodmínce) se nachází ve stejném umístění jako odpovídající související prostředek.
- Pokud není specifikováno, jakýkoli související prostředek
roleDefinitionIds(povinné)- Tato vlastnost musí obsahovat pole řetězců, které přesně odpovídají ID role přístupového řízení založeného na rolích, které jsou přístupné pro toto předplatné. Další informace najdete v tématu náprava – konfigurace definice zásady.
deploymentScope(volitelné)- Povolené hodnoty jsou Subscription a ResourceGroup.
- Nastaví typ nasazení, který se má aktivovat. Předplatné označuje nasazení na úrovni předplatného a skupina prostředků označuje nasazení do skupiny prostředků.
- Vlastnost umístění musí být zadána v nasazení při použití nasazení na úrovni předplatného.
- Výchozí hodnota je ResourceGroup.
deployment(povinné)- Tato vlastnost by měla obsahovat úplné nasazení šablony, protože by bylo předáno
Microsoft.Resources/deploymentsrozhraní PUT API. Další informace najdete v rozhraní REST API pro nasazení. - Vnořené
Microsoft.Resources/deploymentsv rámci šablony by měly používat jedinečné názvy, aby se zabránilo konfliktům mezi více vyhodnoceními zásad. Název nadřazeného nasazení lze použít jako součást názvu vnořeného nasazení pomocí[concat('NestedDeploymentName-', uniqueString(deployment().name))].
Poznámka:
Všechny funkce uvnitř
deploymentvlastnosti se vyhodnocují jako součásti šablony, ne jako zásady. Výjimkou jeparametersvlastnost, která předává hodnoty ze zásady do šablony. Tento elementvaluev této části, umístěný pod názvem parametru šablony, slouží k předání této hodnoty (viz fullDbName v příkladu DeployIfNotExists).- Tato vlastnost by měla obsahovat úplné nasazení šablony, protože by bylo předáno
Příklad DeployIfNotExists
Příklad: Vyhodnotí databáze SQL Serveru a určí, jestli transparentDataEncryption je povolená. Pokud ne, spustí se nasazení, které se povolí.
"if": {
"field": "type",
"equals": "Microsoft.Sql/servers/databases"
},
"then": {
"effect": "deployIfNotExists",
"details": {
"type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
"name": "current",
"evaluationDelay": "AfterProvisioning",
"roleDefinitionIds": [
"/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
"/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
],
"existenceCondition": {
"field": "Microsoft.Sql/transparentDataEncryption.status",
"equals": "Enabled"
},
"deployment": {
"properties": {
"mode": "incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"fullDbName": {
"type": "string"
}
},
"resources": [
{
"name": "[concat(parameters('fullDbName'), '/current')]",
"type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
"apiVersion": "2014-04-01",
"properties": {
"status": "Enabled"
}
}
]
},
"parameters": {
"fullDbName": {
"value": "[field('fullName')]"
}
}
}
}
}
}
Další kroky
- Projděte si příklady v Azure Policy samples.
- Projděte si strukturu definice Azure Policy.
- Seznamte se s programovým vytvářením zásad.
- Zjistěte, jak získat údaje o dodržování předpisů.
- Zjistěte, jak uvést do souladu nesouladné zdroje.
- Zkontrolujte skupiny pro správu Azure.