Azure Policy-definíciók deployIfNotExists effektus
auditIfNotExists
Ehhez hasonlóan egy deployIfNotExists
szabályzatdefiníció végrehajt egy sablontelepítést a feltétel teljesülésekor. A DeployIfNotExists effektuskészlettel rendelkező szabályzat-hozzárendelésekhez felügyelt identitás szükséges a szervizeléshez.
Feljegyzés
A beágyazott sablonok támogatottak deployIfNotExists
, de a csatolt sablonok jelenleg nem támogatottak.
DeployIfNotExists kiértékelése
deployIfNotExists
Konfigurálható késés után fut, amikor egy erőforrás-szolgáltató egy létrehozási vagy frissítési előfizetést vagy erőforrás-kérést kezel, és sikeres állapotkódot ad vissza. A sablon üzembe helyezése akkor történik, ha nincsenek kapcsolódó erőforrások, vagy ha az általuk definiált existenceCondition
erőforrások nem teljesülnek. Az üzembe helyezés időtartama a sablonban található erőforrások összetettségétől függ.
A kiértékelési ciklus során az erőforrásoknak megfelelő DeployIfNotExists effektussal rendelkező szabályzatdefiníciók nem megfelelőként vannak megjelölve, de nem történik művelet az adott erőforráson. A meglévő nem megfelelő erőforrások szervizelhetők szervizelési feladattal.
DeployIfNotExists tulajdonságok
A details
DeployIfNotExists effektus tulajdonsága tartalmazza az összes olyan altulajdonságot, amely meghatározza az egyező kapcsolódó erőforrásokat és a végrehajtandó sablontelepítést.
type
(kötelező)- Megadja az egyező kapcsolódó erőforrás típusát.
- Ha
type
egy erőforrástípus aif
feltételerőforrás alatt található, a szabályzat lekérdezi ennektype
erőforrásait a kiértékelt erőforrás hatókörén belül. Ellenkező esetben a szabályzat lekérdezései ugyanabban az erőforráscsoportban vagy előfizetésben találhatók, mint a kiértékelt erőforrás azexistenceScope
adott erőforrástól függően.
name
(nem kötelező)- Megadja annak az erőforrásnak a pontos nevét, amelynek egyeznie kell, és a szabályzat egy adott erőforrást hív le a megadott típusú erőforrások helyett.
- Ha a feltétel értéke
if.field.type
then.details.type
és az egyezés, akkorname
kötelezővé válik, és a gyermekerőforrásnak vagy[field('fullName')]
a gyermekerőforrásnak kell lennie[field('name')]
.
Feljegyzés
type
és name
a szegmensek kombinálhatók a beágyazott erőforrások általános lekéréséhez.
Egy adott erőforrás lekéréséhez használhatja és "name": "parentResourceName/nestedResourceName"
használhatja "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
a .
Beágyazott erőforrások gyűjteményének lekéréséhez helyettesítő karakter ?
adható meg a vezetéknév-szegmens helyett. Például: "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
és "name": "parentResourceName/?"
. Ez kombinálható mezőfüggvényekkel a kiértékelt erőforráshoz kapcsolódó erőforrások eléréséhez, például "name": "[concat(field('name'), '/?')]"
."
resourceGroupName
(nem kötelező)- Lehetővé teszi a kapcsolódó erőforrás egyezését egy másik erőforráscsoportból.
- Nem alkalmazható, ha
type
olyan erőforrásról van szó, amely aif
feltételerőforrás alatt lenne. - Az alapértelmezett érték a
if
feltételerőforrás erőforráscsoportja. - Ha egy sablontelepítés végrehajtása történik, az az érték erőforráscsoportjában lesz üzembe helyezve.
existenceScope
(nem kötelező)- Az engedélyezett értékek az Előfizetés és a ResourceGroup.
- Beállítja, hogy a kapcsolódó erőforrás honnan kérje le az egyező erőforrás hatókörét.
- Nem alkalmazható, ha
type
olyan erőforrásról van szó, amely aif
feltételerőforrás alatt lenne. - A ResourceGroup esetében a megadott erőforráscsoportra
resourceGroupName
lenne korlátozva. HaresourceGroupName
nincs megadva, akkor aif
feltételerőforrás erőforráscsoportjára korlátozható, ami az alapértelmezett viselkedés. - Előfizetés esetén lekérdezi a teljes előfizetést a kapcsolódó erőforráshoz. A hozzárendelés hatókörét előfizetésben vagy annál magasabb szinten kell beállítani a megfelelő értékeléshez.
- Az alapértelmezett érték a ResourceGroup.
evaluationDelay
(nem kötelező)- Meghatározza, hogy mikor kell kiértékelni a kapcsolódó erőforrások meglétét. A késést csak a létrehozási vagy frissítési erőforrás-kérés eredményeként kapott értékelésekhez használja a rendszer.
- Az engedélyezett értékek
AfterProvisioning
AfterProvisioningSuccess
AfterProvisioningFailure
0 és 360 perc közötti ISO 8601-es időtartamok. - Az AfterProvisioning értékek a szabályzatszabály
if
feltételében kiértékelt erőforrás kiépítési eredményét vizsgálják.AfterProvisioning
a kiépítés befejezése után fut, függetlenül az eredménytől. A hat óránál hosszabb ideig tartó üzembe helyezést hibaként kezeli a rendszer az afterProvisioning kiértékelési késéseinek meghatározásakor. - Az alapértelmezett érték
PT10M
(10 perc). - Ha hosszú kiértékelési késleltetést ad meg, előfordulhat, hogy az erőforrás rögzített megfelelőségi állapota nem frissül a következő kiértékelési eseményindítóig.
existenceCondition
(nem kötelező)- Ha nincs megadva, a kapcsolódó erőforrás
type
megfelel az effektusnak, és nem indítja el az üzembe helyezést. - Ugyanazt a nyelvet használja, mint a feltétel házirendszabálya
if
, de a rendszer egyenként értékeli ki az egyes kapcsolódó erőforrásokat. - Ha az egyező kapcsolódó erőforrások értéke igaz, az eredmény teljesül, és nem indítja el az üzembe helyezést.
- A [field()] használatával ellenőrizheti a feltételben szereplő
if
értékekkel való egyenértékűséget. - Használható például annak ellenőrzésére, hogy a szülőerőforrás (a
if
feltételben) ugyanabban az erőforráshelyen található-e, mint az egyező kapcsolódó erőforrás.
- Ha nincs megadva, a kapcsolódó erőforrás
roleDefinitionIds
(kötelező)- Ennek a tulajdonságnak tartalmaznia kell egy sztringtömböt, amely megfelel az előfizetés által elérhető szerepköralapú hozzáférés-vezérlési szerepkör-azonosítónak. További információkért lásd a szervizelést – konfigurálja a szabályzatdefiníciót.
deploymentScope
(nem kötelező)- Az engedélyezett értékek az Előfizetés és a ResourceGroup.
- Beállítja az aktiválandó üzembe helyezés típusát. Az előfizetés előfizetési szintű üzembe helyezést, a ResourceGroup pedig egy erőforráscsoportba való üzembe helyezést jelez.
- Az előfizetési szintű központi telepítések használatakor meg kell adni egy helytulajdonságot az üzembe helyezésben .
- Az alapértelmezett érték a ResourceGroup.
deployment
(kötelező)- Ennek a tulajdonságnak tartalmaznia kell a sablon teljes üzembe helyezését, mivel az át lesz adva a
Microsoft.Resources/deployments
PUT API-nak. További információ: Deployments REST API. - A sablonba ágyazva
Microsoft.Resources/deployments
egyedi neveket kell használnia, hogy elkerülje a több szabályzatértékelés közötti versengést. A szülőtelepítés neve a beágyazott üzembehelyezési név részeként használható a következővel:[concat('NestedDeploymentName-', uniqueString(deployment().name))]
.
Feljegyzés
A tulajdonságon belüli összes függvényt a
deployment
rendszer a sablon összetevőiként értékeli ki, nem pedig a szabályzatot. Kivételt képez az aparameters
tulajdonság, amely a szabályzatból a sablonba továbbítja az értékeket. Avalue
sablonparaméter neve alatti szakasz ezt az értéket adja át (lásd : fullDbName a DeployIfNotExists példában).- Ennek a tulajdonságnak tartalmaznia kell a sablon teljes üzembe helyezését, mivel az át lesz adva a
DeployIfNotExists példa
Példa: Kiértékeli az SQL Server-adatbázisokat annak megállapításához, hogy engedélyezve van-e transparentDataEncryption
. Ha nem, akkor a rendszer végrehajt egy üzembe helyezést az engedélyezéshez.
"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')]"
}
}
}
}
}
}
Következő lépések
- Tekintse át az Azure Policy-minták példáit.
- Tekintse meg az Azure szabályzatdefiníciók struktúrája szakaszt.
- Megtudhatja, hogyan hozhat létre programozott módon szabályzatokat.
- Megtudhatja, hogyan kérhet le megfelelőségi adatokat.
- Megtudhatja, hogyan orvosolhatja a nem megfelelő erőforrásokat.
- Tekintse át az Azure felügyeleti csoportjait.