Erőforrások üzembe helyezése a Bicep és az Azure PowerShell használatával

Ez a cikk azt ismerteti, hogyan használhatja az Azure PowerShellt Bicep-fájlokkal az erőforrások Azure-ban való üzembe helyezéséhez. Ha nem ismeri az Azure-megoldások üzembe helyezésének és kezelésének alapelveit, tekintse meg a Bicep áttekintését.

Előfeltételek

Az üzembe helyezéshez Bicep-fájlra van szükség. A fájlnak helyinek kell lennie.

Szüksége van az Azure PowerShellre, és csatlakoznia kell az Azure-hoz:

Ha nincs telepítve a PowerShell, használhatja az Azure Cloud Shellt. További információ: Bicep-fájlok üzembe helyezése az Azure Cloud Shellből.

Szükséges engedélyek

Bicep-fájl vagy ARM-sablon üzembe helyezéséhez írási joggal kell rendelkeznie az üzembe helyezett erőforrásokhoz, és hozzá kell férnie a Microsoft.Resources/deployments erőforrástípus összes műveletéhez. Egy virtuális gép üzembe helyezéséhez például szükség van rá és Microsoft.Resources/deployments/* engedélyekreMicrosoft.Compute/virtualMachines/write. A what-if műveletnek ugyanazok az engedélykövetelményei vannak.

A szerepkörök és engedélyek listáját megtalálja a Beépített Azure-szerepkörök című cikkben.

Üzembe helyezési hatókör

Az üzembe helyezést egy erőforráscsoportra, előfizetésre, felügyeleti csoportra vagy bérlőre célozhatja. Az üzembe helyezés hatókörétől függően különböző parancsokat használ.

A sablont üzembe helyező felhasználónak minden hatókörhöz rendelkeznie kell az erőforrások létrehozásához szükséges engedélyekkel.

Helyi Bicep-fájl üzembe helyezése

A Bicep-fájlokat a helyi gépről vagy külsőleg tárolt fájlból is üzembe helyezheti. Ez a szakasz egy helyi Bicep-fájl üzembe helyezését ismerteti.

Ha nem létező erőforráscsoportban helyezi üzembe az üzembe helyezést, hozza létre az erőforráscsoportot. Az erőforráscsoport neve csak alfanumerikus karaktereket, pontokat, aláhúzásjeleket, kötőjeleket és zárójeleket tartalmazhat. Legfeljebb 90 karakter hosszúságú lehet. A név nem végződhet pontban.

New-AzResourceGroup -Name ExampleGroup -Location "Central US"

Helyi Bicep-fájl üzembe helyezéséhez használja a kapcsolót -TemplateFile az üzembe helyezési parancsban.

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateFile <path-to-bicep>

Az üzembe helyezés végrehajtása több percet is igénybe vehet.

Távoli Bicep-fájl üzembe helyezése

Az Azure PowerShell jelenleg nem támogatja a távoli Bicep-fájlok üzembe helyezését. A Bicep CLIhasználatával hozza létre a Bicep-fájlt egy JSON-sablonba, majd töltse be a JSON-fájlt a távoli helyre.

Paraméterek

Paraméterértékek átadásához használhat beágyazott paramétereket vagy paraméterfájlokat. A paraméterfájl lehet Bicep-paraméterfájl vagy JSON-paraméterfájl.

Beágyazott paraméterek

Beágyazott paraméterek átadásához adja meg a paraméter nevét a New-AzResourceGroupDeployment paranccsal. Ha például egy sztringet és tömböt egy Bicep-fájlnak szeretne átadni, használja a következőt:

$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -exampleString "inline string" `
  -exampleArray $arrayParam

A fájl tartalmát is lekérheti, és beágyazott paraméterként is megadható.

$arrayParam = "value1", "value2"
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -exampleString $(Get-Content -Path c:\MyTemplates\stringcontent.txt -Raw) `
  -exampleArray $arrayParam

A paraméterértékek fájlból való lekérése akkor hasznos, ha konfigurációs értékeket kell megadnia. Megadhat például cloud-init értékeket egy Linux rendszerű virtuális géphez.

Ha objektumtömböt kell átadnia, hozzon létre kivonattáblákat a PowerShellben, és adja hozzá őket egy tömbhöz. Adja át a tömböt paraméterként az üzembe helyezés során.

$hash1 = @{ Name = "firstSubnet"; AddressPrefix = "10.0.0.0/24"}
$hash2 = @{ Name = "secondSubnet"; AddressPrefix = "10.0.1.0/24"}
$subnetArray = $hash1, $hash2
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
  -TemplateFile <path-to-bicep> `
  -exampleArray $subnetArray

Bicep-paraméterfájlok

Ahelyett, hogy beágyazott értékekként adna át paramétereket a szkriptben, könnyebben használhat paraméterfájlt, akár egy fájlt, akár egy .bicepparam JSON paraméterfájlt, amely tartalmazza a paraméterértékeket. A Bicep paraméterfájlnak helyi fájlnak kell lennie.

Az Azure PowerShell 10.4.0-s vagy újabb verziójával és a Bicep CLI 0.22.X-es vagy újabb verziójával Bicep-fájlokat helyezhet üzembe Egy Bicep-paraméterfájl használatával. using A Bicep paraméterfájlban lévő utasítással nem szükséges megadni a -TemplateFile kapcsolót a kapcsolóHoz tartozó Bicep paraméterfájl -TemplateParameterFile megadásakor.

Az alábbi példa egy storage.bicepparam nevű paraméterfájlt mutat be. A fájl ugyanabban a könyvtárban található, ahol a parancs fut.

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateParameterFile storage.bicepparam

A paraméterfájlról további információt a Resource Manager paraméterfájljának létrehozása című témakörben talál.

JSON-paraméterek fájljai

A JSON paraméterfájl lehet egy helyi vagy egy külső fájl, amely elérhető URI-val rendelkezik. A paraméterfájlról további információt a Resource Manager paraméterfájljának létrehozása című témakörben talál.

Helyi paraméterfájl átadásához használja a TemplateParameterFile kapcsolót egy JSON-paraméterfájllal:

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\BicepFiles\storage.bicep `
  -TemplateParameterFile c:\BicepFiles\storage.parameters.json

Külső paraméterfájl átadásához használja a következő paramétert TemplateParameterUri :

New-AzResourceGroupDeployment `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\BicepFiles\storage.bicep `
  -TemplateParameterUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.parameters.json

A TemplateParameterUri paraméter nem támogatja .bicepparam a fájlokat, csak a JSON paraméterfájlokat támogatja.

Ugyanabban az üzembehelyezési műveletben beágyazott paramétereket és helyparaméter-fájlokat is használhat. További információ: Paraméter elsőbbsége.

Módosítások előnézete

A Bicep-fájl üzembe helyezése előtt megtekintheti a Bicep-fájl környezetében végzett módosításait. A lehetőségelemzési művelettel ellenőrizze, hogy a Bicep-fájl végrehajtja-e a várt módosításokat. A What-if a Bicep-fájlt is ellenőrzi a hibák esetén.

Sablon specifikációinak üzembe helyezése

Az Azure PowerShell jelenleg nem támogatja a sablon-specifikációk létrehozását Bicep-fájlok biztosításával. Létrehozhat azonban egy Bicep-fájlt a Microsoft.Resources/templateSpecs erőforrással a sablon specifikációjának üzembe helyezéséhez. A Sablon specifikációjának létrehozása minta bemutatja, hogyan hozhat létre sablonspektratívot egy Bicep-fájlban. A Bicep-fájlt a Bicep CLI használatával JSON-ra is létrehozhatja, majd létrehozhat egy sablon-specifikációt a JSON-sablonnal.

Üzemelő példány neve

Bicep-fájlok telepítésekor nevet adhat az üzembe helyezésnek. Ez a név segíthet az üzembe helyezés lekérésében az üzembe helyezési előzményekből. Ha nem adja meg az üzembe helyezés nevét, a Rendszer a Bicep-fájl nevét használja. Ha például üzembe helyez egy Bicep nevű main.bicep , és nem adja meg az üzembe helyezés nevét, az üzembe helyezés neve main.

Minden alkalommal, amikor futtat egy üzemelő példányt, a rendszer hozzáad egy bejegyzést az erőforráscsoport üzembehelyezési előzményeihez az üzembe helyezés nevével. Ha egy másik üzembe helyezést futtat, és ugyanazt a nevet adja neki, a korábbi bejegyzést a rendszer lecseréli az aktuális üzembe helyezésre. Ha egyedi bejegyzéseket szeretne fenntartani az üzembe helyezési előzményekben, adjon egyedi nevet az egyes üzemelő példányoknak.

Egyedi név létrehozásához véletlenszerű számot rendelhet hozzá.

$suffix = Get-Random -Maximum 1000
$deploymentName = "ExampleDeployment" + $suffix

Vagy adjon hozzá egy dátumértéket.

$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="ExampleDeployment"+"$today"

Ha ugyanabban az erőforráscsoportban futtat egyidejű központi telepítéseket ugyanazzal az üzembe helyezési névvel, csak az utolsó üzembe helyezés fejeződik be. A még nem befejezett névvel rendelkező központi telepítéseket az utolsó üzembe helyezés váltja fel. Ha például egy olyan üzembe helyezést newStorage futtat, amely egy névvel ellátott storage1tárfiókot helyez üzembe, és ugyanakkor futtat egy másik, egy elnevezett storage2tárfiókot üzembe helyező üzembe newStorage helyezést, akkor csak egy tárfiókot helyez üzembe. Az eredményként kapott tárfiók neve storage2.

Ha azonban egy olyan üzembe helyezést newStorage futtat, amely egy nevű storage1tárfiókot helyez üzembe, és közvetlenül a befejezése után futtat egy másik üzembe helyezést newStorage , amely egy nevű storage2tárfiókot helyez üzembe, akkor két tárfiókja van. Az egyik neve storage1, a másik neve pedig .storage2 Az üzembe helyezési előzményekben azonban csak egy bejegyzés szerepel.

Ha egyedi nevet ad meg az egyes üzemelő példányoknak, egyidejűleg, ütközés nélkül futtathatja őket. Ha egy olyan üzembe helyezést newStorage1 futtat, amely egy névvel ellátott storage1tárfiókot helyez üzembe, és ugyanakkor futtat egy másik üzembe helyezést newStorage2 , amely egy elnevezett storage2tárfiókot helyez üzembe, akkor két tárfiókja és két bejegyzése van az üzembe helyezési előzményekben.

Az egyidejű üzembe helyezésekkel való ütközések elkerülése és az üzembe helyezési előzmények egyedi bejegyzéseinek biztosítása érdekében adjon egyedi nevet minden üzembe helyezésnek.

Következő lépések

  • A paraméterek fájlban való definiálásának megismeréséhez olvassa el a Bicep-fájlok szerkezetének és szintaxisának megértését.