Sdílet prostřednictvím


Deklarace prostředku v Bicep

Tento článek popisuje syntaxi, kterou používáte k přidání prostředku do souboru Bicep. V souboru Bicep jste omezeni na 800 prostředků. Další informace najdete v tématu Omezení šablon.

Definování prostředků

Přidejte deklaraci prostředku pomocí klíčového resource slova. Nastavíte symbolický název prostředku. Symbolický název není stejný jako název prostředku. Symbolický název slouží k odkazování na prostředek v jiných částech souboru Bicep.

@<decorator>(<argument>)
resource <symbolic-name> '<full-type-name>@<api-version>' = {
  <resource-properties>
}

Deklarace účtu úložiště tedy může začínat na:

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  ...
}

V symbolických názvech se rozlišují malá a velká písmena. Můžou obsahovat písmena, číslice a podtržítka (_). Nemůžou začínat číslem. Prostředek nemůže mít stejný název jako parametr, proměnná nebo modul.

Dostupné typy prostředků a verze najdete v referenčních informacích k prostředkům Bicep. Bicep nepodporuje apiProfile, což je k dispozici ve formátu JSON šablon Azure Resource Manageru (šablony ARM). Můžete také definovat prostředky zprostředkovatele rozšiřitelnosti Bicep. Další informace najdete v tématu o rozšiřitelnosti poskytovatele Kubernetes Bicep.

K podmíněnému nasazení prostředku použijte if syntaxi. Další informace najdete v tématu Podmíněné nasazení v Bicep.

resource <symbolic-name> '<full-type-name>@<api-version>' = if (condition) {
  <resource-properties>
}

Pokud chcete nasadit více než jednu instanci prostředku, použijte for syntaxi. Dekorátor můžete použít batchSize k určení, zda jsou instance nasazeny sériově nebo paralelně. Další informace naleznete v tématu Iterativní smyčky v Bicep.

@batchSize(int) // optional decorator for serial deployment
resource <symbolic-name> '<full-type-name>@<api-version>' = [for <item> in <collection>: {
  <properties-to-repeat>
}]

Syntaxi vlastností prostředku můžete také použít for k vytvoření pole.

resource <symbolic-name> '<full-type-name>@<api-version>' = {
  properties: {
    <array-property>: [for <item> in <collection>: <value-to-repeat>]
  }
}

Použití dekorátorů

Dekorátory jsou zapsány ve formátu @expression a jsou umístěny nad deklaracemi prostředků. V následující tabulce jsou uvedeny dostupné dekorátory prostředků.

Dekoratér Argument Popis
batchSize Žádná Nastavte instance pro postupné nasazení.
popis string Zadejte popis prostředku.

Dekorátory jsou v oboru názvů sys. Pokud potřebujete odlišit dekorátor od jiné položky se stejným názvem, předkožte dekorátorem .sys Pokud například váš soubor Bicep obsahuje parametr s názvem description, musíte přidat obor názvů sys při použití dekorátoru popisu .

BatchSize

Můžete použít @batchSize() pouze pro definici prostředku nebo modulu, která používá for výraz.

Ve výchozím nastavení se prostředky nasazují paralelně. Když přidáte batchSize(int) dekorátor, nasadíte instance serialně.

@batchSize(3)
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storageName in storageAccounts: {
  ...
}]

Další informace najdete v tématu Nasazení v dávkách.

Popis

Pokud chcete přidat vysvětlení, přidejte popis k deklaracím prostředků. Příklad:

@description('Create a number of storage accounts')
resource storageAccountResources 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storageName in storageAccounts: {
  ...
}]

Text ve formátu Markdown lze použít pro text popisu.

Název prostředku

Každý prostředek má název. Při nastavování názvu prostředku věnujte pozornost pravidlům a omezením názvů prostředků.

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'examplestorage'
  ...
}

Obvykle byste název nastavili na parametr, abyste mohli během nasazování předávat různé hodnoty.

@minLength(3)
@maxLength(24)
param storageAccountName string

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: storageAccountName
  ...
}

Umístění prostředku

Mnoho prostředků vyžaduje umístění. Můžete určit, jestli prostředek potřebuje umístění buď prostřednictvím technologie IntelliSense, nebo odkazu na šablonu. Následující příklad přidá parametr umístění, který se používá pro účet úložiště.

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'examplestorage'
  location: 'eastus'
  ...
}

Umístění byste obvykle nastavili na parametr, abyste je mohli nasadit do různých umístění.

param location string = resourceGroup().location

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'examplestorage'
  location: location
  ...
}

Různé typy prostředků jsou podporovány v různých umístěních. Pokud chcete získat podporovaná umístění pro službu Azure, přečtěte si informace o produktech dostupných v jednotlivých oblastech. Pokud chcete získat podporovaná umístění pro typ prostředku, použijte Azure PowerShell nebo Azure CLI.

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
  | Where-Object ResourceTypeName -eq batchAccounts).Locations

Značky prostředků

Značky můžete použít u prostředku během nasazení. Značky pomáhají logicky uspořádat nasazené prostředky. Příklady různých způsobů, jak můžete určit značky, najdete v tématu Značky šablony ARM.

Spravované identity pro prostředky

Některé prostředky podporují spravované identity pro prostředky Azure. Tyto prostředky mají objekt identity na kořenové úrovni deklarace prostředku.

Můžete použít identity přiřazené systémem nebo uživatelem.

Následující příklad ukazuje, jak nakonfigurovat identitu přiřazenou systémem pro cluster Azure Kubernetes Service.

resource aks 'Microsoft.ContainerService/managedClusters@2024-02-01' = {
  name: clusterName
  location: location
  tags: tags
  identity: {
    type: 'SystemAssigned'
  }

Následující příklad ukazuje, jak nakonfigurovat identitu přiřazenou uživatelem pro virtuální počítač.

param userAssignedIdentity string

resource vm 'Microsoft.Compute/virtualMachines@2024-03-01' = {
  name: vmName
  location: location
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${userAssignedIdentity}': {}
    }
  }

Vlastnosti specifické pro prostředky

Předchozí vlastnosti jsou obecné pro většinu typů prostředků. Po nastavení těchto hodnot musíte nastavit vlastnosti specifické pro typ prostředku, který nasazujete.

K určení dostupných vlastností a požadovaných vlastností použijte odkaz na prostředky IntelliSense nebo Bicep. Následující příklad nastaví zbývající vlastnosti účtu úložiště.

resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'examplestorage'
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
    tier: 'Standard'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Další kroky