Erőforráscsoport-üzemelő példányok Bicep-fájlokkal

Ez a cikk azt ismerteti, hogyan állíthatja be a hatókört a Bicep használatával egy erőforráscsoportban való üzembe helyezéskor.

Támogatott erőforrások

A legtöbb erőforrás üzembe helyezhető egy erőforráscsoportban. Az elérhető erőforrások listáját lásd: ARM-sablon referenciája.

Hatókör beállítása

Alapértelmezés szerint egy Bicep-fájl hatóköre az erőforráscsoportra terjed ki. Ha explicit módon szeretné beállítani a hatókört, használja a következőt:

targetScope = 'resourceGroup'

A cél hatókörének erőforráscsoportra való beállítása azonban szükségtelen, mert alapértelmezés szerint ezt a hatókört használja a rendszer.

Üzembehelyezési parancsok

Az erőforráscsoportban való üzembe helyezéshez használja az erőforráscsoport üzembehelyezési parancsát.

Az Azure CLI-hez használja az az deployment group create (Üzembe helyezési csoport létrehozása) lehetőséget. Az alábbi példa egy sablont helyez üzembe egy erőforráscsoport létrehozásához. A paraméterben --resource-group megadott erőforráscsoport a célerőforrás-csoport.

az deployment group create \
  --name demoRGDeployment \
  --resource-group ExampleGroup \
  --template-file main.bicep \
  --parameters storageAccountType=Standard_GRS

Az ARM-sablonok üzembe helyezési parancsaival és beállításaival kapcsolatos részletesebb információkért lásd:

Üzembehelyezési hatókörök

Erőforráscsoportban való üzembe helyezéskor az erőforrásokat a következőre helyezheti üzembe:

  • az üzembe helyezési művelet célerőforráscsoportja
  • más erőforráscsoportok ugyanabban az előfizetésben vagy más előfizetésekben
  • bármely előfizetés a bérlőben
  • az erőforráscsoport bérlője

A bővítményerőforrás hatóköre az üzembehelyezési céltól eltérő célra terjedhet ki.

A sablont üzembe helyező felhasználónak hozzáféréssel kell rendelkeznie a megadott hatókörhöz.

Ez a szakasz bemutatja, hogyan adhat meg különböző hatóköröket. Ezeket a különböző hatóköröket egyetlen sablonban kombinálhatja.

Hatókör a cél erőforráscsoporthoz

Ha erőforrásokat szeretne üzembe helyezni a cél erőforráscsoportban, adja hozzá ezeket az erőforrásokat a Bicep-fájlhoz.

// resource deployed to target resource group
resource exampleResource 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  ...
}

Példasablon: Üzembe helyezés célerőforrás-csoportra.

Hatókör különböző erőforráscsoportra

Ha olyan erőforráscsoportba szeretne erőforrásokat telepíteni, amely nem a célerőforrás-csoport, adjon hozzá egy modult. A resourceGroup függvénnyel állítsa be a scope modul tulajdonságát.

Ha az erőforráscsoport egy másik előfizetésben található, adja meg az előfizetés azonosítóját és az erőforráscsoport nevét. Ha az erőforráscsoport ugyanabban az előfizetésben található, mint az aktuális üzemelő példány, csak az erőforráscsoport nevét adja meg. Ha nem ad meg előfizetést a resourceGroup függvényben, a rendszer az aktuális előfizetést használja.

Az alábbi példa egy olyan modult mutat be, amely egy másik előfizetésben lévő erőforráscsoportot céloz meg.

param otherResourceGroup string
param otherSubscriptionID string

// module deployed to different subscription and resource group
module exampleModule 'module.bicep' = {
  name: 'otherSubAndRG'
  scope: resourceGroup(otherSubscriptionID, otherResourceGroup)
}

A következő példa egy modult mutat be, amely ugyanabban az előfizetésben egy erőforráscsoportot céloz meg.

param otherResourceGroup string

// module deployed to resource group in the same subscription
module exampleModule 'module.bicep' = {
  name: 'otherRG'
  scope: resourceGroup(otherResourceGroup)
}

Példasablon: Üzembe helyezés több erőforráscsoportban.

Hatókör az előfizetéshez

Ha erőforrásokat szeretne üzembe helyezni egy előfizetésben, adjon hozzá egy modult. A tulajdonság beállításához használja az előfizetési függvénytscope.

Az aktuális előfizetésben való üzembe helyezéshez használja az előfizetési függvényt paraméter nélkül.


// module deployed at subscription level
module exampleModule 'module.bicep' = {
  name: 'deployToSub'
  scope: subscription()
}

Ha egy másik előfizetésben szeretne üzembe helyezni, adja meg ezt az előfizetés-azonosítót paraméterként az előfizetési függvényben.

param otherSubscriptionID string

// module deployed at subscription level but in a different subscription
module exampleModule 'module.bicep' = {
  name: 'deployToSub'
  scope: subscription(otherSubscriptionID)
}

Példasablon: Erőforráscsoport létrehozása a Bicep használatával.

Hatókör a bérlőre

Ha erőforrásokat szeretne létrehozni a bérlőben, adjon hozzá egy modult. A bérlői függvény használatával állítsa be a tulajdonságát scope .

A sablont üzembe helyező felhasználónak rendelkeznie kell a bérlőn való üzembe helyezéshez szükséges hozzáféréssel.

Az alábbi példa egy, a bérlőn üzembe helyezett modult tartalmaz.

// module deployed at tenant level
module exampleModule 'module.bicep' = {
  name: 'deployToTenant'
  scope: tenant()
}

A modul használata helyett a hatókört tenant() egyes erőforrástípusokra is beállíthatja. Az alábbi példa egy felügyeleti csoportot helyez üzembe a bérlőben.

param mgName string = 'mg-${uniqueString(newGuid())}'

// ManagementGroup deployed at tenant
resource managementGroup 'Microsoft.Management/managementGroups@2020-05-01' = {
  scope: tenant()
  name: mgName
  properties: {}
}

output output string = mgName

További információ: Felügyeleti csoport.

Üzembe helyezés a cél erőforráscsoportban

Ha erőforrásokat szeretne üzembe helyezni a célerőforráscsoportban, definiálja ezeket az erőforrásokat a resources sablon szakaszában. Az alábbi sablon létrehoz egy tárfiókot az üzembe helyezési műveletben megadott erőforráscsoportban.

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'

param location string = resourceGroup().location

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

Üzembe helyezés több erőforráscsoportban

Egyetlen Bicep-fájlban több erőforráscsoportban is üzembe helyezheti azokat.

Megjegyzés

Egyetlen üzemelő példányban 800 erőforráscsoportot helyezhet üzembe. Ez a korlátozás általában azt jelenti, hogy a fölérendelt sablonhoz megadott egyetlen erőforráscsoportban, illetve legfeljebb 799 erőforráscsoportban helyezhet üzembe beágyazott vagy csatolt üzemelő példányokban. Ha azonban a szülősablon csak beágyazott vagy csatolt sablonokat tartalmaz, és önmagában nem helyez üzembe erőforrásokat, akkor akár 800 erőforráscsoportot is belefoglalhat beágyazott vagy csatolt környezetekbe.

Az alábbi példa két tárfiókot helyez üzembe. Az első tárfiók az üzembe helyezési műveletben megadott erőforráscsoportra lesz üzembe helyezve. A második tárfiók a és secondSubscriptionID paraméterekben megadott erőforráscsoportra secondResourceGroup van üzembe helyezve:

@maxLength(11)
param storagePrefix string

param firstStorageLocation string = resourceGroup().location

param secondResourceGroup string
param secondSubscriptionID string = ''
param secondStorageLocation string

var firstStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
var secondStorageName = '${storagePrefix}${uniqueString(secondSubscriptionID, secondResourceGroup)}'

module firstStorageAcct 'storage.bicep' = {
  name: 'storageModule1'
  params: {
    storageLocation: firstStorageLocation
    storageName: firstStorageName
  }
}

module secondStorageAcct 'storage.bicep' = {
  name: 'storageModule2'
  scope: resourceGroup(secondSubscriptionID, secondResourceGroup)
  params: {
    storageLocation: secondStorageLocation
    storageName: secondStorageName
  }
}

Mindkét modul ugyanazt a Storage.bicep nevű Bicep-fájlt használja.

param storageLocation string
param storageName string

resource storageAcct 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: storageName
  location: storageLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'Storage'
  properties: {}
}

Erőforráscsoport létrehozása

További információ az erőforráscsoportok létrehozásáról: Erőforráscsoport létrehozása a Bicep használatával.

Következő lépések

A többi hatókörrel kapcsolatos további információkért lásd: