Aracılığıyla paylaş


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ı descriptionbir 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ı.