Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
auditIfNotExists
'ya benzer şekilde, bir deployIfNotExists
ilke tanımı koşul karşılandığında bir şablon dağıtımı gerçekleştirir. DeployIfNotExists olarak ayarlanmış olan ilke atamaları, düzeltme yapmak için yönetilen bir kimlik gerektirir.
Uyarı
İç içe şablonlar ile deployIfNotExists
desteklenir, ancak bağlantılı şablonlar şu anda desteklenmez.
DeployIfNotExists değerlendirmesi
deployIfNotExists
, Kaynak Sağlayıcısı bir oluşturma veya güncelleme abonelik ya da kaynak isteğini işleyip bir başarı durum kodu döndürdüğünde, yapılandırılabilir bir gecikmeden sonra çalışır. şablon dağıtımı, ilişkili kaynak yoksa veya tarafından existenceCondition
tanımlanan kaynaklar doğru olarak değerlendirilmediyse gerçekleşir. Dağıtımın süresi, şablona dahil olan kaynakların karmaşıklığına bağlıdır.
Değerlendirme döngüsü sırasında, kaynaklarla eşleşen DeployIfNotExists etkisine sahip ilke tanımları uyumsuz olarak işaretlenir, ancak bu kaynak üzerinde hiçbir işlem yapılmaz. Mevcut uyumlu olmayan kaynaklar bir düzeltme göreviyle düzeltilebilir.
DeployIfNotExists özellikleri
details
DeployIfNotExists efektinin özelliği, eşleşecek ilgili kaynakları ve yürütülecek şablon dağıtımını tanımlayan tüm alt özelliklere sahiptir.
-
type
(gerekli)- Eşleşecek ilgili kaynağın türünü belirtir.
- Koşul kaynağının
type
altında bir kaynak türü varsaif
, ilke, değerlendirilen kaynak kapsamında bununtype
kaynaklarını sorgular. Aksi takdirde,existenceScope
öğesine bağlı olarak değerlendirilen kaynakla aynı kaynak grubu veya abonelik içindeki ilke sorguları çalışır.
-
name
(isteğe bağlı)- Eşleşecek kaynağın tam adını belirtir ve ilkenin belirtilen türdeki tüm kaynaklar yerine belirli bir kaynağı getirmesine neden olur.
- Koşul değerleri
if.field.type
vethen.details.type
eşleştiğinde,name
gerekli hale gelir ve bir alt kaynak için[field('name')]
veya[field('fullName')]
olmalıdır.
Uyarı
type
ve name
kesimler iç içe geçmiş kaynaklara genel olarak erişmek için birleştirilebilir.
Belirli bir kaynağı almak için "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
ve "name": "parentResourceName/nestedResourceName"
kullanabilirsiniz.
İç içe geçmiş kaynaklar koleksiyonunu elde etmek için, son ad segmenti yerine bir joker karakter ?
sağlanabilir. Örneğin, "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
ve "name": "parentResourceName/?"
. Bu, değerlendirilen kaynakla ilgili kaynaklara erişmek için alan işlevleriyle birleştirilebilir, örneğin "name": "[concat(field('name'), '/?')]"
."
resourceGroupName
(isteğe bağlı)- İlgili kaynağın eşleşmesinin farklı bir kaynak grubundan gelmesini sağlar.
- Koşul kaynağının altında
type
yer alan bir kaynaksaif
geçerli değildir. - Varsayılan, koşul kaynağının
if
kaynak grubudur. - Bir şablon dağıtımı yürütülürse, bu değerin kaynak grubunda dağıtılır.
existenceScope
(isteğe bağlı)- İzin verilen değerler Subscription ve ResourceGroup değerleridir.
- Eşleşmesi gereken ilgili kaynağın getirileceği yerin kapsamını ayarlar.
- Koşul kaynağının altında
type
yer alan bir kaynaksaif
geçerli değildir. -
ResourceGroup için, belirtilirse içindeki
resourceGroupName
kaynak grubuyla sınırlayabilir. BelirtilmezseresourceGroupName
, koşul kaynağınınif
kaynak grubuyla sınırlanır ve bu varsayılan davranıştır. - Abonelik için ilgili kaynak için aboneliğin tamamını sorgular. Uygun değerlendirme için atama kapsamı abonelikte veya daha yüksek bir değerde ayarlanmalıdır.
- Varsayılan değer ResourceGroup'tır.
evaluationDelay
(isteğe bağlı)- İlgili kaynakların varlığının ne zaman değerlendirilmesi gerektiğini belirtir. Gecikme yalnızca kaynak oluşturma veya güncelleştirme isteğinin sonucu olan değerlendirmeler için kullanılır.
- İzin verilen değerler, ,
AfterProvisioning
,AfterProvisioningSuccess
veya 0 ile 360 dakika arasında bir ISO 8601 süresidirAfterProvisioningFailure
. -
AfterProvisioning değerleri, ilke kuralının
if
koşulunda değerlendirilen kaynağın sağlama sonucunu inceler. Sonuç ne olursa olsun,AfterProvisioning
sağlama tamamlandıktan sonra devreye girer. Altı saatten uzun süren sağlama işlemi, AfterProvisioning değerlendirme gecikmelerini belirlerken başarısızlık olarak kabul edilir. - Varsayılan değer (
PT10M
10 dakika). - Uzun bir değerlendirme gecikmesi belirtilmesi, kaynağın kayıtlı uyumluluk durumunun bir sonraki değerlendirme tetikleyicisine kadar güncelleştirilmemesiyle sonuçlanabilir.
existenceCondition
(isteğe bağlı)- Belirtilmediği takdirde,
type
'in herhangi bir ilgili kaynağı etkiyi sağlar ve dağıtımı tetiklemez. - Koşul için
if
ilke kuralıyla aynı dili kullanır, ancak ilgili her kaynak için ayrı ayrı değerlendirilir. - Eşleşen ilgili herhangi bir kaynak true olarak değerlendirilirse, etki sağlanmış olur ve dağıtım başlatmaz.
- Koşuldaki
if
değerlerle eşdeğerliği denetlemek için [field()] kullanabilir. - Örneğin, üst kaynağın (koşulda
if
) eşleşen ilgili kaynakla aynı kaynak konumunda olduğunu doğrulamak için kullanılabilir.
- Belirtilmediği takdirde,
roleDefinitionIds
(gerekli)- Bu özellik, abonelik tarafından erişilebilen rol tabanlı erişim denetimi rol kimliğiyle eşleşen bir dizi dize içermelidir. Daha fazla bilgi için bkz. ilke tanımını yapılandırma - düzeltme.
deploymentScope
(isteğe bağlı)- İzin verilen değerler Subscription ve ResourceGroup değerleridir.
- Tetiklenecek dağıtım türünü ayarlar. Abonelik, abonelik düzeyinde bir dağıtımı, ResourceGroup ise bir kaynak grubuna yapılan dağıtımı gösterir.
- Abonelik düzeyi dağıtımları kullanılırken Dağıtım'dabir konum özelliği belirtilmelidir.
- Varsayılan değer ResourceGroup'tır.
deployment
(gerekli)- Tam şablon dağıtımı,
Microsoft.Resources/deployments
PUT API'ye geçirileceği şekilde bu özellikte yer almalıdır. Daha fazla bilgi için bkz . Dağıtımlar REST API'si. - Şablon içinde iç içe yerleştirilmiş
Microsoft.Resources/deployments
, birden çok ilke değerlendirmesi arasında çekişme olmaması için benzersiz adlar kullanmalıdır. Üst dağıtımın adı aracılığıyla[concat('NestedDeploymentName-', uniqueString(deployment().name))]
iç içe dağıtım adının bir parçası olarak kullanılabilir.
Uyarı
özelliğindeki
deployment
tüm işlevler, ilkenin değil, şablonun bileşenleri olarak değerlendirilir. Özel durum,parameters
ilkedeki değerleri şablona geçiren özelliktir.value
Bu bölümdeki şablon parametresi adı altında, bu değer geçirme işlemini gerçekleştirmek için kullanılır (DeployIfNotExists örneğinde fullDbName bölümüne bakın).- Tam şablon dağıtımı,
DeployIfNotExists örneği
Örnek: Etkinleştirilip etkinleştirilmediğini transparentDataEncryption
belirlemek için SQL Server veritabanlarını değerlendirir. Aksi takdirde, etkinleştirme için bir dağıtım yürütülür.
"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')]"
}
}
}
}
}
}
Sonraki adımlar
- Azure Policy örneklerini gözden geçirin.
- Azure İlkesi tanımı yapısını gözden geçirin.
- Program aracılığıyla ilkelerin nasıl oluşturulacağını anlama.
- Uyumluluk verilerini almayı öğrenin.
- Uyumlu olmayan kaynakları düzeltmeyi öğrenin.
- Azure yönetim gruplarını gözden geçirin.