Resursdeklaration i Bicep
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
. Du anger ett symboliskt namn för resursen. Det symboliska namnet är inte samma som resursnamnet. Du använder 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 därför börja med:
resource stg 'Microsoft.Storage/storageAccounts@2023-04-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 tillgängliga resurstyper och versioner finns i Bicep-resursreferens. Bicep stöder apiProfile
inte , som är tillgängligt i Azure Resource Manager-mallar (ARM-mallar) JSON. Du kan också definiera utökningsproviderresurser för Bicep. Mer information finns i Kubernetes-providern Bicep-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ända dekoratörer
Dekoratörer är skrivna i formatet @expression
och placeras ovanför resursdeklarationer. I följande tabell visas tillgängliga dekoratörer för resurser.
Dekoratör | Argument | beskrivning |
---|---|---|
batchSize | inget | Konfigurera instanser för att distribuera sekventiellt. |
beskrivning | sträng | Ange beskrivningar för resursen. |
Dekoratörer finns i sys-namnområdet. Om du behöver skilja en dekoratör från ett annat objekt med samma namn, förorda dekoratören med sys
. Om din Bicep-fil till exempel innehåller en parameter med namnet description
måste du lägga till sys-namnområdet när du använder beskrivningsdekoratören.
BatchSize
Du kan bara använda @batchSize()
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@2023-04-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@2023-04-01' = [for storageName in storageAccounts: {
...
}]
Markdown-formaterad text kan användas för beskrivningstexten.
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@2023-04-01' = {
name: 'examplestorage'
...
}
Vanligtvis anger du 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@2023-04-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@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
...
}
Vanligtvis anger du platsen till en parameter så att du kan distribuera till olika platser.
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2023-04-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
Resurstaggar
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@2024-02-01' = {
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@2024-03-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 måste du ange de egenskaper som är specifika för den resurstyp som du distribuerar.
Använd resursreferensen intellisense eller Bicep 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@2023-04-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 läser du Villkorsstyrd 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.