Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs den syntax som du använder för att lägga till en resurs i Bicep-filen. Du är begränsad till 800 resurser i en Bicep-fil. Mer information finns i Mallgränser.
Definiera resurser
Lägg till en resursdeklaration med hjälp av nyckelordet resource . Ange ett symboliskt namn för resursen. Det symboliska namnet är inte samma som resursnamnet. Använd det symboliska namnet för att referera till resursen i andra delar av Bicep-filen.
@<decorator>(<argument>)
resource <symbolic-name> '<full-type-name>@<api-version>' = {
<resource-properties>
}
En deklaration för ett lagringskonto kan börja med:
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
...
}
Symboliska namn är skiftlägeskänsliga. De kan innehålla bokstäver, siffror och understreck (_). De kan inte börja med ett tal. En resurs kan inte ha samma namn som en parameter, variabel eller modul.
Information om de tillgängliga resurstyperna och versionerna finns i Bicep-resursreferensen. Bicep har inte stöd för apiProfile, som är tillgängligt i JSON för Azure Resource Manager-mallar (ARM-mallar). Du kan också definiera utökningsproviderresurser för Bicep. Mer information finns i Kubernetes-providern för Biceps utökningsbarhet.
Om du vill distribuera en resurs villkorligt använder du syntaxen if . Mer information finns i Villkorsstyrd distribution i Bicep.
resource <symbolic-name> '<full-type-name>@<api-version>' = if (condition) {
<resource-properties>
}
Om du vill distribuera mer än en instans av en resurs använder du syntaxen for . Du kan använda dekoratören batchSize för att ange om instanserna ska distribueras seriellt eller parallellt. Mer information finns i Iterativa loopar i Bicep.
@batchSize(int) // optional decorator for serial deployment
resource <symbolic-name> '<full-type-name>@<api-version>' = [for <item> in <collection>: {
<properties-to-repeat>
}]
Du kan också använda syntaxen for för resursegenskaperna för att skapa en matris.
resource <symbolic-name> '<full-type-name>@<api-version>' = {
properties: {
<array-property>: [for <item> in <collection>: <value-to-repeat>]
}
}
Använd dekoratörer
Skriv dekoratörer med formatet @expression och placera dem ovanför resursdeklarationerna. I följande tabell visas tillgängliga dekoratörer för resurser.
| Dekoratör | Argumentation | beskrivning |
|---|---|---|
| batchSize | inget | Konfigurera instanser för att distribuera sekventiellt. |
| beskrivning | sträng | Ange beskrivningar för resursen. |
| nullIfNotFound | inget | Om resursen inte finns utvärderas resurssymbolen till null i stället för att distributionen misslyckas. |
| onlyIfNotExists | inget | Distribuera resursen endast om den inte redan finns i målomfånget. |
Dekoratörer finns i sys-namnområdet. Om du behöver skilja en dekoratör från ett annat objekt med samma namn, inled dekoratören med sys. Om din Bicep-fil till exempel innehåller en parameter med namnet descriptionmåste du lägga till sys-namnområdet när du använder beskrivningsdekoratören.
Batchstorlek
Du kan bara använda @batchSize() på en resurs- eller moduldefinition som använder ett for-uttryck.
Som standard distribueras resurser parallellt. När du lägger till dekoratören batchSize(int) distribuerar du instanser seriellt.
@batchSize(3)
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2025-06-01' = [for storageName in storageAccounts: {
...
}]
Mer information finns i Distribuera i batchar.
beskrivning
Lägg till en förklaring genom att lägga till en beskrivning i resursdeklarationer. Till exempel:
@description('Create a number of storage accounts')
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2025-06-01' = [for storageName in storageAccounts: {
...
}]
Du kan använda Markdown-formaterad text för beskrivningstexten.
nullIfNotFound
Använd @nullIfNotFound()-dekoratören på befintliga resursdeklarationer. När du refererar till en befintlig resurs i Bicep (med det befintliga nyckelordet) misslyckas ARM-distributionen om resursen inte hittas vid distributionen. Genom att tillämpa @nullIfNotFound() utvärderas resurssymbolen till null om resursen inte finns, i stället för att orsaka ett distributionsfel.
@nullIfNotFound()
resource centralWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = {
name: 'central-log-analytics'
}
// Safe access
output workspaceId string = centralWorkspace.?id ?? ''
output workspaceExists bool = centralWorkspace != null
endastsomintefinns
När en Bicep-distribution körs skapar Azure Resource Manager (ARM) som standard resursen om den inte finns eller uppdaterar den om den gör det. Om en befintlig resurs har egenskaper som skiljer sig från mallen kan ARM försöka uppdatera den – eller misslyckas om uppdateringar inte tillåts.
Från och med Bicep version v0.38.3 instruerar dekoratören @onlyIfNotExists() ARM att endast skapa resursen om den inte redan finns. Om ARM hittar en resurs med resurs-ID:t hoppar den över skapandet och lämnar den befintliga resursen oförändrad.
@onlyIfNotExists()
resource example 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'mystorageacct'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
Resursnamn
Varje resurs har ett namn. När du anger resursnamnet bör du vara uppmärksam på reglerna och begränsningarna för resursnamn.
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
...
}
Ange vanligtvis namnet till en parameter så att du kan skicka in olika värden under distributionen.
@minLength(3)
@maxLength(24)
param storageAccountName string
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: storageAccountName
...
}
Resursplats
Många resurser kräver en plats. Du kan avgöra om resursen behöver en plats antingen via IntelliSense eller mallreferensen. I följande exempel läggs en platsparameter som används för lagringskontot.
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: 'eastus'
...
}
Ange vanligtvis platsen till en parameter så att du kan distribuera till olika platser.
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: location
...
}
Olika resurstyper stöds på olika platser. Information om hur du hämtar de platser som stöds för en Azure-tjänst finns i Produkter tillgängliga per region. Om du vill hämta de platser som stöds för en resurstyp använder du Azure PowerShell eller Azure CLI.
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
| Where-Object ResourceTypeName -eq batchAccounts).Locations
Resursetiketter
Du kan använda taggar för en resurs under distributionen. Taggar hjälper dig att logiskt organisera dina distribuerade resurser. Exempel på olika sätt att ange taggar finns i ARM-malltaggar.
Hanterade identiteter för resurser
Vissa resurser stöder hanterade identiteter för Azure-resurser. Dessa resurser har ett identitetsobjekt på rotnivån för resursdeklarationen.
Du kan använda antingen systemtilldelade eller användartilldelade identiteter.
I följande exempel visas hur du konfigurerar en systemtilldelad identitet för ett Azure Kubernetes Service-kluster.
resource aks 'Microsoft.ContainerService/managedClusters@2025-08-02-preview' = {
name: clusterName
location: location
tags: tags
identity: {
type: 'SystemAssigned'
}
I nästa exempel visas hur du konfigurerar en användartilldelad identitet för en virtuell dator.
param userAssignedIdentity string
resource vm 'Microsoft.Compute/virtualMachines@2025-04-01' = {
name: vmName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentity}': {}
}
}
Resursspecifika egenskaper
Ovanstående egenskaper är generiska för de flesta resurstyper. När du har angett dessa värden anger du de egenskaper som är specifika för den resurstyp som du distribuerar.
Använd IntelliSense eller Bicep resursreferens för att avgöra vilka egenskaper som är tillgängliga och vilka som krävs. I följande exempel anges de återstående egenskaperna för ett lagringskonto.
resource stg 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: 'eastus'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Nästa steg
- Om du vill distribuera en resurs villkorligt, se Villkorlig distribution i Bicep.
- Information om hur du refererar till en befintlig resurs finns i Befintliga resurser i Bicep.
- Information om hur distributionsordningen bestäms finns i Resursberoenden i Bicep.