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ı.
Bildirim
anahtar sözcüğünü resource
kullanarak bir 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ümlerinde kaynağa başvurmak için sembolik adı kullanırsınız.
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çerebilirler. 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 sağlanan 'ı desteklemezapiProfile
. Ayrıca Bicep genişletilebilirlik sağlayıcısı kaynaklarını da tanımlayabilirsiniz. Daha fazla bilgi için bkz . Bicep genişletilebilirliği 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>]
}
}
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
...
}
Konum
Birçok kaynak bir konum gerektirir. Kaynağın intellisense veya şablon başvurusu aracılığıyla 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ölgelere 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
Etiketler
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ı yollara ilişkin örnekler için bkz. ARM şablonu etiketleri.
Azure 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, bir Azure Kubernetes Service kümesi için sistem tarafından atanan kimliğin nasıl yapılandırdığı 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ırdığı 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şvurusu kullanın. Aşağıdaki örnek bir 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ı.