Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ét és kezelését, olvassa el a Mi a Bicep? című témakört.
Előfeltételek
Telepítenie kell egy Bicep-fájlt, és a fájlnak helyinek kell lennie. Az Azure PowerShellre is szüksége van, és csatlakoznia kell az Azure-hoz:
- Telepítse az Azure PowerShell-parancsmagokat a helyi számítógépre. A Bicep-fájlok telepítéséhez az Azure PowerShell 5.6.0-s vagy újabb verziójára van szükség. További információért lásd az Azure PowerShell használatának első lépéseit.
- Telepítse a Bicep parancssori felületet. A Bicep CLI-t manuálisan kell telepítenie, mivel az Azure PowerShell nem telepíti automatikusan.
-
Az Azure-hoz való csatlakozáshoz használható
Connect-AzAccount
. Ha több Azure-előfizetéssel rendelkezik, előfordulhat, hogy futtatniaSet-AzContext
is kell. További információ: Több Azure-előfizetés használata.
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 Shell használatával.
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, és a Bicep-fájlt üzembe helyező felhasználónak rendelkeznie kell a szükséges engedélyekkel ahhoz, hogy erőforrásokat hozzon létre minden hatókörhöz.
Erőforráscsoportban való üzembe helyezéshez használja a következőt
New-AzResourceGroupDeployment
:New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateFile <path-to-bicep>
Előfizetésben való üzembe helyezéshez használja
New-AzSubscriptionDeployment
aNew-AzDeployment
parancsmag aliasát:New-AzSubscriptionDeployment -Location <location> -TemplateFile <path-to-bicep>
Az előfizetési szintű központi telepítésekkel kapcsolatos további információkért lásd: Erőforrások üzembe helyezése a Bicep használatával az előfizetésben.
A felügyeleti csoportban való üzembe helyezéshez használja a következőt
New-AzManagementGroupDeployment
: .New-AzManagementGroupDeployment -ManagementGroupId <management-group-id> -Location <location> -TemplateFile <path-to-bicep>
A felügyeleti csoportszintű üzembe helyezésekkel kapcsolatos további információkért lásd: Erőforrások üzembe helyezése a Bicep használatával a felügyeleti csoportban.
A bérlőn való üzembe helyezéshez használja
New-AzTenantDeployment
a következőt: .New-AzTenantDeployment -Location <location> -TemplateFile <path-to-bicep>
A bérlőszintű üzembe helyezésekkel kapcsolatos további információkért tekintse meg a Bicep használata erőforrások bérlői környezetben való üzembe helyezését ismertető témakört.
Helyi Bicep-fájl üzembe helyezése
Ez a szakasz a helyi Bicep-fájlok üzembe helyezését ismerteti. A Bicep-fájlokat a helyi gépről vagy külsőről is üzembe helyezheti.
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, és 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 parancssori felülettellétrehozhatja a Bicep-fájlt egy JSON-sablonba, majd betöltheti a JSON-fájlt egy távoli helyre. További információ: Távoli sablon üzembe helyezése.
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 paraméterrel átadhatja a TemplateParameterObject
sablon paramétereit tartalmazó kivonatolót:
$params = @{
exampleString = "inline string"
exampleArray = "value1", "value2"
}
New-AzResourceGroupDeployment -ResourceGroupName testgroup `
-TemplateFile <path-to-bicep> `
-TemplateParameterObject $params
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 az Azure 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éterek fájljai
Ahelyett, hogy paramétereket adna át beágyazott értékekként a szkriptben, könnyebben használhat bicep paraméterfájlt vagy olyan JSON-paraméterfájlt , amely a paraméterértékeket tartalmazza. A Bicep paraméterfájlnak helyi fájlnak kell lennie, míg a JSON-sablonfájl valahol online helyen található. A paraméterfájlokról további információt a Paraméterfájlok létrehozása a Bicep üzembe helyezéséhez című témakörben talál.
Bicep-paraméterfájlokkal telepítheti a Bicep-fájlokat 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.
using
A Bicep paraméterfájlban található utasítással nem kell 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
JSON-paraméterek fájljai
A JSON paraméterfájl helyileg vagy külső fájlként is használható egy elérhető URI-val.
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
Mivel a TemplateParameterUri
paraméter csak a JSON-paraméterek fájljait támogatja, nem támogatja .bicepparam
a fájlokat.
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 biztosít Bicep-fájlokat a sablon specifikációinak létrehozásához. 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-vel, majd egy JSON-sablonnal is létrehozhatja a JSON-ra a sablon specifikációjának létrehozásához.
Ü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 neve a Bicep-fájl neve lesz. Ha például egy main.bicep nevű Bicep-fájlt helyez üzembe, és nem ad meg üzembe helyezési nevet, 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 elnevezett storage1
tárfiókot helyez üzembe, és futtat egy másik, egyidejűleg elnevezett storage2
tárfiókot üzembe helyező üzembe helyezéstnewStorage
, 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 elnevezett storage1
tárfiókot helyez üzembe, és azonnal futtat egy másik, az első üzembe helyezés befejezése után elnevezett storage2
tárfiókot üzembe helyező üzembe newStorage
helyezést, 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 elnevezett storage1
tárfiókot helyez üzembe, és egy másik, egyidejűleg elnevezett storage2
tárfiókot üzembe helyező üzembe helyezést newStorage2
futtat, 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 fájl paramétereinek definiálásáról a Bicep-fájlok szerkezetének és szintaxisának ismertetése című témakörben olvashat.