Bicep-fájlok üzembe helyezése az Azure CLI-vel

Ez a cikk azt ismerteti, hogyan használhatja az Azure CLI-t 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?

Előfeltételek

Telepítenie kell egy Bicep-fájlt, és a fájlnak helyinek kell lennie. Szüksége van az Azure CLI-re is, és csatlakoznia kell az Azure-hoz:

  • Telepítse az Azure CLI-parancsokat a helyi számítógépre. A Bicep-fájlok telepítéséhez az Azure CLI 2.20.0-s vagy újabb verziójára van szükség.
  • Az Azure-hoz való csatlakozáshoz használható az login . Ha több Azure-előfizetéssel rendelkezik, előfordulhat, hogy futtatnia az account setis kell.

Az Azure CLI-minták a bash shellhez vannak megírva. A minta Windows PowerShellben vagy parancssorban (cmd) való futtatásához előfordulhat, hogy módosítania kell a szkript elemeit.

Ha nincs telepítve az Azure CLI, 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 Azure Resource Manager-sablon üzembe helyezéséhez írási hozzáférésre van szüksége az üzembe helyezendő erőforrásokhoz, és hozzá kell férnie az Microsoft.Resources/deployments erőforrástípus összes műveletéhez. Például, egy virtuális gép üzembe helyezéséhez szükség van a Microsoft.Compute/virtualMachines/write és Microsoft.Resources/deployments/* engedélyekre. A what-if műveletnek ugyanazok az engedélykövetelményei vannak.

Az Azure CLI 2.76.0-s vagy újabb verziója, valamint az Azure PowerShell 13.4.0-s vagy újabb verziója bevezeti az ValidationLevel kapcsolót annak megállapításához, hogy az ARM milyen alaposan ellenőrzi a Bicep-sablont a folyamat során. További információ: What-if parancsok

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.

Helyi Bicep fájl üzembe helyezése

A Bicep-fájlokat a helyi gépről vagy külsőről is üzembe helyezheti. Ez a szakasz a helyi Bicep-fájlok üzembe helyezését ismerteti.

Ha olyan erőforráscsoportba kíván telepíteni, amely nem létezik, 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.

az group create --name ExampleGroup --location "Central US"

Helyi Bicep-fájl üzembe helyezéséhez használja a kapcsolót --template-file az üzembe helyezési parancsban. Az alábbi példa azt is bemutatja, hogyan állíthat be paraméterértéket:

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file <path-to-bicep> \
  --parameters storageAccountType=Standard_GRS

Az üzembe helyezés eltarthat néhány percig. Amikor befejeződik, megjelenik egy üzenet, amely a következő eredményt tartalmazza:

"provisioningState": "Succeeded",

Távoli Bicep-fájl telepítése

Az Azure CLI 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 az értékeket a parameters-ben. Például, ha egy karakterláncot és tömböt szeretne átadni egy Bash shellben lévő Bicep-fájlnak, használja a következőt:

az deployment group create \
  --resource-group testgroup \
  --template-file <path-to-bicep> \
  --parameters exampleString='inline string' exampleArray='["value1", "value2"]'

Ha az Azure CLI-t a parancsmaggal vagy a PowerShell-lel használja, adja át a tömböt a következő formátumban: exampleArray="['value1','value2']".

A fájl tartalmát is lekérheti, hogy beágyazott paraméterként adja meg a tartalmat. A fájlnevet ezzel kell kezdeni: @

az deployment group create \
  --resource-group testgroup \
  --template-file <path-to-bicep> \
  --parameters exampleString=@stringContent.txt exampleArray=@arrayContent.json

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.

A arrayContent.json formátuma a következő:

[
  "value1",
  "value2"
]

Ha át szeretne adni egy objektumot, használja a JSON-t (például címkék beállításakor). A Bicep-fájl tartalmazhatja az alábbihoz hasonló paramétert:

"resourceTags": {
  "type": "object",
  "defaultValue": {
    "Cost Center": "IT Department"
  }
}

Ahogy az a következő Bash-szkriptben is látható, egy JSON-sztringet is megadhat a paraméter beállításához. Használjon dupla idézőjeleket az objektumba továbbítani kívánt JSON körül:

tags='{"Owner":"Contoso","Cost Center":"2345-324"}'
az deployment group create --name addstorage  --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags="$tags"

Ha az Azure CLI-t parancsmaggal vagy PowerShell-lel használja, adja át az objektumot a következő formátumban:

$tags="{'Owner':'Contoso','Cost Center':'2345-324'}"
az deployment group create --name addstorage  --resource-group myResourceGroup \
--template-file $bicepFile \
--parameters resourceName=abcdef4556 resourceTags=$tags

A paraméterértékek tárolásához változót használhat. Állítsa be a változót a Bash-szkript összes paraméterértékére, és adja hozzá az üzembehelyezési parancshoz:

params="prefix=start suffix=end"

az deployment group create \
  --resource-group testgroup \
  --template-file <path-to-bicep> \
  --parameters $params

Ha azonban az Azure CLI-t parancsmaggal vagy PowerShell-lel használja, állítsa a változót egy JSON-sztringre. Az idézőjelek feloldása: $params = '{ \"prefix\": {\"value\":\"start\"}, \"suffix\": {\"value\":\"end\"} }'.

A paraméterek kiértékelése szekvenciális sorrendet követ, ami azt jelenti, hogy ha egy érték többször van hozzárendelve, akkor csak az utolsó hozzárendelt értéket használja a rendszer. A paraméterek megfelelő hozzárendeléséhez javasoljuk, hogy először adja meg a paraméterfájlt, majd használja a KEY=VALUE szintaxist az adott paraméterek szelektív felülbírálásához. Ha paraméterfájlt .bicepparam ad meg, ezt az argumentumot csak egyszer használhatja.

Bicep paraméterfá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 paraméterfájlnak helyi fájlnak kell lennie, mivel az Azure CLI nem támogatja a külső paraméterfájlokat. További információ a paraméterfájlokról: Paraméterfájl létrehozása a Bicep üzembe helyezéséhez.

Bicep-paraméterfájlokkal telepítheti a Bicep-fájlokat az Azure CLI 2.53.0-s vagy újabb verziójával és a Bicep CLI 0.22.X-es vagy újabb verziójával. A Bicep paraméterfájlban szereplő using utasítással nincs szükség a --template-file kapcsoló megadására, amikor egy Bicep-paraméterfájlhoz tartozó --parameters kapcsolót adunk meg. A kapcsolóval --template-file együtt a következő hibaüzenet jelenik meg: "Csak .bicep fájl engedélyezett .bicepparam fájllal".

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:

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --parameters storage.bicepparam

JSON-paraméterek fájljai

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

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file storage.bicep \
  --parameters '@storage.parameters.json'

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, hogy a Bicep-fájl milyen módosításokat hajt végre a környezetében. 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 CLI 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 JSON formátumba is fordíthatja a Bicep CLI használatával, majd a JSON-sablont egy sablonspecifikáció létrehozására.

Telepítés neve

Egy Bicep-fájl telepítésekor nevet adhat a telepítésnek. Ez a név segíthet visszakeresni a telepítést a telepítési előzményekből. Ha nem adja meg a telepítés nevét, annak 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 telepítést, a rendszer hozzáad egy bejegyzést az erőforráscsoport telepítési előzményeihez a telepíté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á:

deploymentName='ExampleDeployment'$RANDOM

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

deploymentName='ExampleDeployment'$(date +"%d-%b-%Y")

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. Az azonos névvel rendelkező, még nem befejezett üzembe helyezéseket az utolsó telepíté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 newStorage tárfiókot üzembe helyező üzembe helyezéststorage2, 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 newStorage tárfiókot üzembe helyező üzembe storage2 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 newStorage2 tárfiókot üzembe helyező üzembe helyezést storage2 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ához tekintse meg a Bicep fájlstruktúráját és szintaxisát.