Bicep'te kaynak bildirimi
Bu makalede, Bicep dosyanıza kaynak eklemek için kullandığınız söz dizimi açıklanmaktadır. Bicep dosyasında 800 kaynakla sınırlısınız. Daha fazla bilgi için bkz . Şablon sınırları.
Kaynakları tanımlama
anahtar sözcüğünü resource
kullanarak kaynak bildirimi ekleyin. Kaynak için sembolik bir ad ayarlarsınız. Sembolik ad, kaynak adıyla aynı değildir. Bicep dosyanızın diğer bölümlerindeki kaynağa başvurmak için sembolik adı kullanırsınız.
@<decorator>(<argument>)
resource <symbolic-name> '<full-type-name>@<api-version>' = {
<resource-properties>
}
Bu nedenle, depolama hesabı bildirimi şu şekilde başlayabilir:
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
...
}
Sembolik adlar büyük/küçük harfe duyarlıdır. Harf, sayı ve alt çizgi (_
) içerebilir. Bir sayıyla başlayamazlar. Bir kaynak parametre, değişken veya modülle aynı ada sahip olamaz.
Kullanılabilir kaynak türleri ve sürümü için bkz . Bicep kaynak başvurusu. Bicep, Azure Resource Manager şablonları (ARM şablonları) JSON'da kullanılabilen öğesini desteklemezapiProfile
. Bicep genişletilebilirlik sağlayıcısı kaynaklarını da tanımlayabilirsiniz. Daha fazla bilgi için bkz . Bicep genişletilebilirlik Kubernetes sağlayıcısı.
Bir kaynağı koşullu olarak dağıtmak için söz dizimini if
kullanın. Daha fazla bilgi için bkz . Bicep'te koşullu dağıtım.
resource <symbolic-name> '<full-type-name>@<api-version>' = if (condition) {
<resource-properties>
}
Bir kaynağın birden fazla örneğini dağıtmak için söz dizimini for
kullanın. Örneklerin batchSize
seri olarak mı yoksa paralel olarak mı dağıtılacağını belirtmek için dekoratör kullanabilirsiniz. Daha fazla bilgi için bkz . Bicep'te yinelemeli döngüler.
@batchSize(int) // optional decorator for serial deployment
resource <symbolic-name> '<full-type-name>@<api-version>' = [for <item> in <collection>: {
<properties-to-repeat>
}]
Dizi oluşturmak için kaynak özelliklerinde söz dizimini de kullanabilirsiniz for
.
resource <symbolic-name> '<full-type-name>@<api-version>' = {
properties: {
<array-property>: [for <item> in <collection>: <value-to-repeat>]
}
}
Dekoratörleri kullanma
Dekoratörler biçiminde @expression
yazılır ve kaynak bildirimlerinin üzerine yerleştirilir. Aşağıdaki tabloda kaynaklar için kullanılabilir dekoratörler gösterilmektedir.
Dekoratör | Bağımsız değişken | Açıklama |
---|---|---|
batchSize | yok | Örnekleri sıralı olarak dağıtılacak şekilde ayarlayın. |
Açıklama | Dize | Kaynak için açıklamalar sağlayın. |
Dekoratörler sys ad alanındadır. Dekoratörü aynı ada sahip başka bir öğeden ayırt etmeniz gerekiyorsa, dekoratörün önüne ile yazın sys
. Örneğin, Bicep dosyanız adlı description
bir parametre içeriyorsa, açıklama dekoratörü kullanılırken sys ad alanını eklemeniz gerekir.
BatchSize
Yalnızca ifade kullanan for
bir kaynak veya modül tanımına uygulayabilirsiniz@batchSize()
.
Varsayılan olarak, kaynaklar paralel olarak dağıtılır. Dekoratör eklediğinizde batchSize(int)
örnekleri seri olarak dağıtırsınız.
@batchSize(3)
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storageName in storageAccounts: {
...
}]
Daha fazla bilgi için bkz . Toplu olarak dağıtma.
Açıklama
Açıklama eklemek için kaynak bildirimlerine bir açıklama ekleyin. Örneğin:
@description('Create a number of storage accounts')
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storageName in storageAccounts: {
...
}]
Açıklama metni için Markdown biçimli metin kullanılabilir.
Kaynak adı
Her kaynağın bir adı vardır. Kaynak adını ayarlarken, kaynak adlarının kurallarına ve kısıtlamalarına dikkat edin.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
...
}
Genellikle, dağıtım sırasında farklı değerler geçirebilmeniz için adı bir parametre olarak ayarlarsınız.
@minLength(3)
@maxLength(24)
param storageAccountName string
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
...
}
Kaynak konumu
Birçok kaynak bir konum gerektirir. IntelliSense veya şablon başvurusu aracılığıyla kaynağın bir konuma ihtiyacı olup olmadığını belirleyebilirsiniz. Aşağıdaki örnek, depolama hesabı için kullanılan bir konum parametresi ekler.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
...
}
Genellikle farklı konumlara dağıtım yapmak için konumu bir parametreye ayarlarsınız.
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: location
...
}
Farklı konumlarda farklı kaynak türleri desteklenir. Azure hizmetinin desteklenen konumlarını almak için bkz . Bölgeye göre kullanılabilir ürünler. Bir kaynak türü için desteklenen konumları almak için Azure PowerShell veya Azure CLI kullanın.
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
| Where-Object ResourceTypeName -eq batchAccounts).Locations
Kaynak etiketleri
Dağıtım sırasında bir kaynağa etiket uygulayabilirsiniz. Etiketler, dağıtılan kaynaklarınızı mantıksal olarak düzenlemenize yardımcı olur. Etiketleri belirtebileceğiniz farklı yöntemlere ilişkin örnekler için bkz . ARM şablonu etiketleri.
Kaynaklar için yönetilen kimlikler
Bazı kaynaklar Azure kaynakları için yönetilen kimlikleri destekler. Bu kaynaklar, kaynak bildiriminin kök düzeyinde bir kimlik nesnesine sahiptir.
Sistem tarafından atanan veya kullanıcı tarafından atanan kimlikleri kullanabilirsiniz.
Aşağıdaki örnekte, Azure Kubernetes Service kümesi için sistem tarafından atanan bir kimliğin nasıl yapılandırılır gösterilmektedir.
resource aks 'Microsoft.ContainerService/managedClusters@2024-02-01' = {
name: clusterName
location: location
tags: tags
identity: {
type: 'SystemAssigned'
}
Sonraki örnekte, bir sanal makine için kullanıcı tarafından atanan kimliğin nasıl yapılandırılır gösterilmektedir.
param userAssignedIdentity string
resource vm 'Microsoft.Compute/virtualMachines@2024-03-01' = {
name: vmName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentity}': {}
}
}
Kaynağa özgü özellikler
Yukarıdaki özellikler çoğu kaynak türü için geneldir. Bu değerleri ayarladıktan sonra, dağıttığınız kaynak türüne özgü özellikleri ayarlamanız gerekir.
Hangi özelliklerin kullanılabilir olduğunu ve hangilerinin gerekli olduğunu belirlemek için intellisense veya Bicep kaynak başvurularını kullanın. Aşağıdaki örnek, depolama hesabının kalan özelliklerini ayarlar.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Sonraki adımlar
- Bir kaynağı koşullu olarak dağıtmak için bkz . Bicep'te koşullu dağıtım.
- Var olan bir kaynağa başvurmak için bkz . Bicep'te mevcut kaynaklar.
- Dağıtım sırasının nasıl belirlendiği hakkında bilgi edinmek için bkz . Bicep'te kaynak bağımlılıkları.