Megosztás a következőn keresztül:


Rövid útmutató: Több erőforráspéldány létrehozása a Bicepben

Megtudhatja, hogyan hozhat létre több erőforráspéldányt a Bicepben különböző for szintaxisokkal. Bár ez a cikk csak több erőforráspéldány létrehozását mutatja be, ugyanezekkel a módszerekkel definiálhatók a modul, a változó, a tulajdonság vagy a kimenet másolatai. További információ: Bicep-hurkok.

Ez a cikk a következő témaköröket tartalmazza:

Előfeltételek

Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot a feladatok megkezdése előtt.

A környezet Bicep-fejlesztéshez való beállításához lásd: A Bicep-eszközök telepítése. A lépések elvégzése után a Visual Studio Code és a Bicep bővítmény is elérhető lesz. A legújabb Azure CLI-vel vagy a legújabb Azure PowerShell modullal is rendelkezik.

Egyetlen példány létrehozása

Ebben a szakaszban definiál egy Bicep-fájlt egy tárfiók létrehozásához, majd üzembe helyezi a Bicep-fájlt. A következő szakaszok különböző szintaxisokhoz for biztosítják a Bicep-mintákat. Ugyanezzel az üzembe helyezési módszerrel telepítheti és kísérletezheti ezeket a mintákat. Ha az üzembe helyezés meghiúsul, az valószínűleg a két ok egyike:

  • A tárfiók neve túl hosszú. A tárfiókok neve 3–24 karakter hosszúságú lehet, és csak számokból és kisbetűkből állhat.
  • A tárfiók neve nem egyedi. A tárfiók nevének egyedinek kell lennie az Azure rendszerben.

A következő Bicep-fájl egy tárfiókot határoz meg:

param rgLocation string = resourceGroup().location

resource createStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'storage${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Mentse a Bicep-fájlt helyileg, majd az Azure CLI vagy Azure PowerShell használatával telepítse a Bicep-fájlt:

resourceGroupName = "{provide-a-resource-group-name}"
templateFile="{provide-the-path-to-the-bicep-file}"

az group create --name $resourceGroupName --location eastus

az deployment group create --resource-group $resourceGroupName --template-file $templateFile

Egész index használata

Az indexet tartalmazó hurok a következő példában két tárfiók létrehozásához használható:

param rgLocation string = resourceGroup().location
param storageCount int = 2

resource createStorages 'Microsoft.Storage/storageAccounts@2023-04-01' = [for i in range(0, storageCount): {
  name: '${i}storage${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}]

output names array = [for i in range(0,storageCount) : {
  name: createStorages[i].name
} ]

Az indexszámot a tárfiók nevének részeként használja a rendszer. A Bicep-fájl üzembe helyezése után két, a következőhöz hasonló tárfiókot kap:

Egész szám index használata kezdő számként 0-val

A tartományon() belül az első szám a kezdő szám, a második pedig a ciklus futási idejének száma. Ha tehát tartományra (3,2) módosítja, két tárfiókot is kap:

Egész szám index használata kezdő számként a 3-as számmal

Az előző minta kimenete bemutatja, hogyan hivatkozhat a hurokban létrehozott erőforrásokra. Az eredmény az alábbihoz hasonlóan fog kinézni:

"outputs": {
  "names": {
    "type": "Array",
    "value": [
      {
        "name": "0storage52iyjssggmvue"
      },
      {
        "name": "1storage52iyjssggmvue"
      }
    ]
  }
},

Tömbelemek használata

A tömbön végighaladhat. Az alábbi minta egy sztringtömböt mutat be.

param rgLocation string = resourceGroup().location
param storageNames array = [
  'contoso'
  'fabrikam'
]

resource createStorages 'Microsoft.Storage/storageAccounts@2023-04-01' = [for name in storageNames: {
  name: '${name}str${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}]

A hurok a tömb összes sztringét használja a tárfióknevek részeként. Ebben az esetben két tárfiókot hoz létre:

Sztringek tömbjének használata

Az objektumok tömbje is átcsúszhat. A hurok nem csak testre szabja a tárfiókok nevét, hanem konfigurálja a termékváltozatokat is.

param rgLocation string = resourceGroup().location
param storages array = [
  {
    name: 'contoso'
    skuName: 'Standard_LRS'
  }
  {
    name: 'fabrikam'
    skuName: 'Premium_LRS'
  }
]

resource createStorages 'Microsoft.Storage/storageAccounts@2023-04-01' = [for storage in storages: {
  name: '${storage.name}obj${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: storage.skuName
  }
  kind: 'StorageV2'
}]

A hurok két tárfiókot hoz létre. A fabrikam névvel kezdődő tárfiók termékváltozata Premium_LRS.

Sztringek tömbjének használata

Tömb és index használata

Ugyanezekben az esetekben érdemes lehet egy tömbhurkot indexhurokkal kombinálni. Az alábbi minta bemutatja, hogyan használható a tömb és az indexszám az elnevezési konvencióhoz.

param rgLocation string = resourceGroup().location
param storageNames array = [
  'contoso'
  'fabrikam'
]

resource createStorages 'Microsoft.Storage/storageAccounts@2023-04-01' = [for (name, i) in storageNames: {
  name: '${i}${name}${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}]

Az előző minta üzembe helyezése után két olyan tárfiókot hoz létre, amelyek a következőkhöz hasonlóak:

Sztringek és indexszámok tömbjének használata

Szótárobjektum használata

A szótárobjektum elemeinek iterálásához használja az Items függvényt, amely tömbté alakítja az objektumot. value A tulajdonság használatával lekérheti az objektumok tulajdonságait.

param rgLocation string = resourceGroup().location

param storageConfig object = {
  storage1: {
    name: 'contoso'
    skuName: 'Standard_LRS'
  }
  storage2: {
    name: 'fabrikam'
    skuName: 'Premium_LRS'
  }
}

resource createStorages 'Microsoft.Storage/storageAccounts@2023-04-01' = [for config in items(storageConfig): {
  name: '${config.value.name}${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: config.value.skuName
  }
  kind: 'StorageV2'
}]

A hurok két tárfiókot hoz létre. A fabrikam névvel kezdődő tárfiók termékváltozata Premium_LRS.

Szótárobjektum használata

Ciklus feltétellel

Erőforrások és modulok esetében hozzáadhat egy if kifejezést a hurokszintaxissal a gyűjtemény feltételes üzembe helyezéséhez.

param rgLocation string = resourceGroup().location
param storageCount int = 2
param createNewStorage bool = true

resource createStorages 'Microsoft.Storage/storageAccounts@2023-04-01' = [for i in range(0, storageCount): if(createNewStorage) {
  name: '${i}storage${uniqueString(resourceGroup().id)}'
  location: rgLocation
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}]

További információ: Feltételes üzembe helyezés a Bicepben.

Az erőforrások eltávolítása

Ha az Azure-erőforrásokra már nincs szükség, az Azure CLI vagy Azure PowerShell modul használatával törölje a rövid útmutató erőforráscsoportot.

resourceGroupName = "{provide-the-resource-group-name}"

az group delete --name $resourceGroupName

További lépések