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@2021-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@2019-06-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@2019-06-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@2019-06-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@2019-06-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@2020-09-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@2020-06-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@2019-06-01' = {
  name: 'examplestorage'
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
    tier: 'Standard'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Sonraki adımlar