Az ARM-sablonok struktúrájának és szintaxisának megismerése

Ez a cikk egy Azure Resource Manager-sablon (ARM-sablon) szerkezetét ismerteti. Egy sablon különböző szakaszait és az ezekben a szakaszokban elérhető tulajdonságokat mutatja be.

Ez a cikk olyan felhasználóknak szól, akik ismerik az ARM-sablonokat. Részletes információkat nyújt a sablon szerkezetéről. A sablon létrehozásának folyamatán végigvezető részletes oktatóanyagért lásd : Oktatóanyag: Az első ARM-sablon létrehozása és üzembe helyezése. Az ARM-sablonokról a Learn-modulok interaktív készletén keresztül további információt az Erőforrások üzembe helyezése és kezelése az Azure-ban ARM-sablonok használatával című témakörben talál.

Tipp

A Bicep egy új nyelv, amely ugyanazokat a képességeket kínálja, mint az ARM-sablonok, de egy könnyebben használható szintaxissal. Ha az infrastruktúrát kódlehetőségként tekinti, javasoljuk, hogy tekintse meg a Bicep-et.

A Bicep-fájlok elemeinek megismeréséhez tekintse meg a Bicep-fájlok szerkezetét és szintaxisát.

Sablon formátuma

A sablon legegyszerűbb struktúrája a következő elemekből áll:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "",
  "apiProfile": "",
  "parameters": {  },
  "variables": {  },
  "functions": [  ],
  "resources": [  ],
  "outputs": {  }
}
Elem neve Kötelező Leírás
$schema Yes A sablonnyelv verzióját leíró JavaScript Object Notation (JSON) sémafájl helye. A használt verziószám az üzemelő példány hatókörétől és a JSON-szerkesztőtől függ.

Ha a Visual Studio Code-ot az Azure Resource Manager-eszközök bővítményével használja, használja az erőforráscsoportok üzembe helyezéséhez a legújabb verziót:
https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#

Előfordulhat, hogy más szerkesztők (köztük a Visual Studio) nem tudják feldolgozni ezt a sémát. Ezekhez a szerkesztőkhöz használja a következőt:
https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#

Előfizetések üzembe helyezéséhez használja a következőt:
https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#

Felügyeleti csoportok üzembe helyezéséhez használja a következőt:
https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#

Bérlői üzemelő példányok esetén használja a következőt:
https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.json#
contentVersion Yes A sablon verziója (például 1.0.0.0). Ehhez az elemhez bármilyen értéket megadhat. Ezzel az értékkel dokumentálhatja a sablon jelentős módosításait. Amikor erőforrásokat helyez üzembe a sablon használatával, ezzel az értékkel meggyőződhet arról, hogy a megfelelő sablon van használatban.
apiProfile No Egy API-verzió, amely az erőforrástípusok API-verzióinak gyűjteményeként szolgál. Ezzel az értékkel elkerülheti, hogy API-verziókat adjon meg a sablon egyes erőforrásaihoz. Amikor megad egy API-profilverziót, és nem ad meg API-verziót az erőforrástípushoz, Resource Manager a profilban meghatározott erőforrástípus API-verzióját használja.

Az API-profil tulajdonság különösen hasznos, ha sablonokat helyez üzembe különböző környezetekben, például az Azure Stackben és a globális Azure-ban. Az API-profil verziójával győződjön meg arról, hogy a sablon automatikusan a mindkét környezetben támogatott verziókat használja. Az AKTUÁLIS API-profilverziók és a profilban definiált erőforrások API-verzióinak listáját az API-profilban találja.

További információ: Verziók nyomon követése API-profilokkal.
paraméterek No Az erőforrások üzembe helyezésének testreszabásához az üzembe helyezés végrehajtásakor megadott értékek.
Változók No A sablonban JSON-töredékként használt értékek a sablon nyelvi kifejezéseinek egyszerűsítésére.
Funkciók No A sablonban elérhető, felhasználó által definiált függvények.
Erőforrások Yes Erőforráscsoportban vagy előfizetésben üzembe helyezett vagy frissített erőforrástípusok.
Kimenetek No Az üzembe helyezés után visszaadott értékek.

Minden elem rendelkezik beállítható tulajdonságokkal. Ez a cikk részletesebben ismerteti a sablon szakaszait.

Paraméterek

parameters A sablon szakaszában megadhatja, hogy mely értékeket adhatja meg az erőforrások üzembe helyezésekor. A sablonban legfeljebb 256 paraméter szerepelhet. A paraméterek számát több tulajdonságot tartalmazó objektumok használatával csökkentheti.

A paraméterek elérhető tulajdonságai a következők:

"parameters": {
  "<parameter-name>" : {
    "type" : "<type-of-parameter-value>",
    "defaultValue": "<default-value-of-parameter>",
    "allowedValues": [ "<array-of-allowed-values>" ],
    "minValue": <minimum-value-for-int>,
    "maxValue": <maximum-value-for-int>,
    "minLength": <minimum-length-for-string-or-array>,
    "maxLength": <maximum-length-for-string-or-array-parameters>,
    "metadata": {
      "description": "<description-of-the parameter>"
    }
  }
}
Elem neve Kötelező Leírás
paraméter-név Yes A paraméter neve. Érvényes JavaScript-azonosítónak kell lennie.
típus Yes A paraméterérték típusa. Az engedélyezett típusok és értékek a következők: sztring, securestring, int, bool, object, secureObject és tömb. Adattípusok megtekintése ARM-sablonokban.
defaultValue No A paraméter alapértelmezett értéke, ha nincs megadva érték a paraméterhez.
allowedValues No A paraméter engedélyezett értékeinek tömbje, hogy biztosan a megfelelő érték legyen megadva.
minValue No Az int típusú paraméterek minimális értéke, ez az érték a befogadó.
maxValue No Az int típusú paraméterek maximális értéke, ez az érték a befogadó.
Minlength No Ez az érték a sztring, a biztonságos sztring és a tömbtípus paramétereinek minimális hossza.
Maxlength No Ez az érték a sztring, a biztonságos sztring és a tömbtípus paramétereinek maximális hossza.
leírás No A portálon keresztül a felhasználók számára megjelenített paraméter leírása. További információ: Megjegyzések sablonokban.

Példák a paraméterek használatára: Paraméterek ARM-sablonokban.

A Bicepben tekintse meg a paramétereket.

Változók

A szakaszban olyan variables értékeket hozhat létre, amelyek felhasználhatók a sablonban. Nem kell változókat definiálnia, de gyakran egyszerűsítik a sablont az összetett kifejezések csökkentésével. Az egyes változók formátuma megfelel az egyik adattípusnak. Egy sablonban legfeljebb 256 változó lehet.

Az alábbi példa a változók meghatározásához rendelkezésre álló lehetőségeket mutatja be:

"variables": {
  "<variable-name>": "<variable-value>",
  "<variable-name>": {
    <variable-complex-type-value>
  },
  "<variable-object-name>": {
    "copy": [
      {
        "name": "<name-of-array-property>",
        "count": <number-of-iterations>,
        "input": <object-or-value-to-repeat>
      }
    ]
  },
  "copy": [
    {
      "name": "<variable-array-name>",
      "count": <number-of-iterations>,
      "input": <object-or-value-to-repeat>
    }
  ]
}

További információ egy változó több értékének létrehozásáról copy : Változó iterációja.

A változók használatára példákat az ARM-sablon változói című témakörben talál.

A Bicepben lásd a változókat.

Függvények

A sablonon belül saját függvényeket is létrehozhat. Ezek a függvények a sablonban használhatók. Általában olyan bonyolult kifejezéseket definiál, amelyeket nem szeretne megismételni a sablonban. A felhasználó által definiált függvényeket a sablonokban támogatott kifejezésekből és függvényekből hozhatja létre.

Felhasználói függvény definiálásakor bizonyos korlátozások vannak érvényben:

  • A függvény nem fér hozzá a változókhoz.
  • A függvény csak a függvényben definiált paramétereket használhatja. Ha a paraméterfüggvényt egy felhasználó által definiált függvényen belül használja, az adott függvény paramétereire korlátozódik.
  • A függvény nem hívhat meg más, felhasználó által definiált függvényeket.
  • A függvény nem használhatja a referenciafüggvényt.
  • A függvény paraméterei nem rendelkezhetnek alapértelmezett értékekkel.
"functions": [
  {
    "namespace": "<namespace-for-functions>",
    "members": {
      "<function-name>": {
        "parameters": [
          {
            "name": "<parameter-name>",
            "type": "<type-of-parameter-value>"
          }
        ],
        "output": {
          "type": "<type-of-output-value>",
          "value": "<function-return-value>"
        }
      }
    }
  }
],
Elem neve Kötelező Leírás
névtér Yes Az egyéni függvények névtere. A sablonfüggvényekkel való elnevezési ütközések elkerülése érdekében használható.
függvény-név Yes Az egyéni függvény neve. A függvény meghívásakor kombinálja a függvény nevét a névtérrel. Ha például a contoso névtérben lévő uniqueName függvényt szeretne meghívni, használja a következőt "[contoso.uniqueName()]": .
paraméter-név No Az egyéni függvényben használandó paraméter neve.
paraméter-érték No A paraméterérték típusa. Az engedélyezett típusok és értékek a következők: sztring, securestring, int, bool, object, secureObject és tömb.
kimeneti típus Yes A kimeneti érték típusa. A kimeneti értékek ugyanazokat a típusokat támogatják, mint a függvénybemeneti paraméterek.
kimeneti érték Yes A függvény által kiértékelt és visszaadott sablonnyelvi kifejezés.

Az egyéni függvények használatára vonatkozó példákért tekintse meg a felhasználó által definiált függvényeket az ARM-sablonban.

A Bicepben a felhasználó által definiált függvények nem támogatottak. A Bicep számos függvényt és operátort támogat.

Források

resources A szakaszban meghatározhatja az üzembe helyezett vagy frissített erőforrásokat. Egy sablonban legfeljebb 800 erőforrást használhat.

Az erőforrásokat a következő struktúrával határozhatja meg:

"resources": [
  {
      "condition": "<true-to-deploy-this-resource>",
      "type": "<resource-provider-namespace/resource-type-name>",
      "apiVersion": "<api-version-of-resource>",
      "name": "<name-of-the-resource>",
      "comments": "<your-reference-notes>",
      "location": "<location-of-resource>",
      "dependsOn": [
          "<array-of-related-resource-names>"
      ],
      "tags": {
          "<tag-name1>": "<tag-value1>",
          "<tag-name2>": "<tag-value2>"
      },
      "identity": {
        "type": "<system-assigned-or-user-assigned-identity>",
        "userAssignedIdentities": {
          "<resource-id-of-identity>": {}
        }
      },
      "sku": {
          "name": "<sku-name>",
          "tier": "<sku-tier>",
          "size": "<sku-size>",
          "family": "<sku-family>",
          "capacity": <sku-capacity>
      },
      "kind": "<type-of-resource>",
      "scope": "<target-scope-for-extension-resources>",
      "copy": {
          "name": "<name-of-copy-loop>",
          "count": <number-of-iterations>,
          "mode": "<serial-or-parallel>",
          "batchSize": <number-to-deploy-serially>
      },
      "plan": {
          "name": "<plan-name>",
          "promotionCode": "<plan-promotion-code>",
          "publisher": "<plan-publisher>",
          "product": "<plan-product>",
          "version": "<plan-version>"
      },
      "properties": {
          "<settings-for-the-resource>",
          "copy": [
              {
                  "name": ,
                  "count": ,
                  "input": {}
              }
          ]
      },
      "resources": [
          "<array-of-child-resources>"
      ]
  }
]
Elem neve Kötelező Leírás
Feltétel No Logikai érték, amely azt jelzi, hogy az erőforrás ki lesz-e építve az üzembe helyezés során. Amikor trueaz erőforrás létrejön az üzembe helyezés során. Amikor falsea rendszer kihagyja az erőforrást ehhez az üzembe helyezéshez. Lásd a feltételt.
típus Yes Az erőforrás típusa. Ez az érték az erőforrás-szolgáltató névterének és az erőforrástípusnak (például Microsoft.Storage/storageAccounts) a kombinációja. A rendelkezésre álló értékek meghatározásához tekintse meg a sablonreferenciát. Gyermekerőforrás esetén a típus formátuma attól függ, hogy a szülőerőforrásba van-e beágyazva, vagy a szülőerőforráson kívül van definiálva. Lásd: A gyermekerőforrások nevének és típusának beállítása.
apiVersion Yes Az erőforrás létrehozásához használandó REST API verziója. Új sablon létrehozásakor állítsa ezt az értéket az üzembe helyezni kívánt erőforrás legújabb verziójára. Ha a sablon szükség szerint működik, használja továbbra is ugyanazt az API-verziót. Ha továbbra is ugyanazt az API-verziót használja, minimalizálhatja annak kockázatát, hogy egy új API-verzió módosítja a sablon működését. Érdemes csak akkor frissíteni az API-verziót, ha egy újabb verzióban bevezetett új funkciót szeretne használni. A rendelkezésre álló értékek meghatározásához tekintse meg a sablonreferenciát.
name Yes Az erőforrás neve. A névnek követnie kell az RFC3986-ban meghatározott URI-összetevőkre vonatkozó korlátozásokat. Az erőforrásnevet külső felek számára közzétevő Azure-szolgáltatások ellenőrzik, hogy a név nem egy másik identitás hamisítására tett kísérlet-e. Gyermekerőforrás esetén a név formátuma attól függ, hogy a szülőerőforrásba van-e beágyazva, vagy a szülőerőforráson kívül van definiálva. Lásd: A gyermekerőforrások nevének és típusának beállítása.
megjegyzések No A sablon erőforrásainak dokumentálására vonatkozó jegyzetei. További információ: Megjegyzések a sablonokban.
location Változó A megadott erőforrás támogatott földrajzi helyei. Bármelyik elérhető helyet kiválaszthatja, de általában érdemes olyan helyet választani, amely közel van a felhasználókhoz. Általában érdemes az egymással kommunikáló erőforrásokat ugyanabban a régióban elhelyezni. A legtöbb erőforrástípushoz hely szükséges, de egyes típusok (például szerepkör-hozzárendelések) nem igényelnek helyet. Lásd: Erőforrás helyének beállítása.
dependsOn No Azokat az erőforrásokat, amelyeket az erőforrás üzembe helyezése előtt kell üzembe helyezni. Resource Manager kiértékeli az erőforrások közötti függőségeket, és a megfelelő sorrendben helyezi üzembe őket. Ha az erőforrások nem függnek egymástól, párhuzamosan lesznek üzembe helyezve. Az érték lehet erőforrásnevek vesszővel tagolt listája vagy egyedi erőforrás-azonosítók. Csak az ebben a sablonban üzembe helyezett erőforrások listázása. A sablonban nem definiált erőforrásoknak már létezniük kell. Kerülje a szükségtelen függőségek hozzáadását, mivel lelassíthatják az üzembe helyezést, és körkörös függőségeket hozhatnak létre. A függőségek beállításával kapcsolatos útmutatásért tekintse meg az erőforrások ARM-sablonokban való üzembe helyezésének sorrendjét ismertető témakört.
tags No Az erőforráshoz társított címkék. Címkék alkalmazásával logikailag rendszerezheti az erőforrásokat az előfizetésben.
identity No Egyes erőforrások támogatják az Azure-erőforrások felügyelt identitását. Ezek az erőforrások rendelkeznek egy identitásobjektummal az erőforrás-deklaráció gyökérszintjén. Beállíthatja, hogy az identitás felhasználóhoz vagy rendszerhez legyen-e hozzárendelve. Felhasználó által hozzárendelt identitások esetén adja meg az identitások erőforrás-azonosítóinak listáját. Állítsa a kulcsot az erőforrás-azonosítóra, az értéket pedig egy üres objektumra. További információ: Felügyelt identitások konfigurálása Azure-erőforrásokhoz azure-beli virtuális gépen sablonok használatával.
Sku No Egyes erőforrások lehetővé teszik az SKU üzembe helyezését meghatározó értékeket. Megadhatja például a tárfiók redundanciának típusát.
Fajta No Egyes erőforrások olyan értéket biztosítanak, amely meghatározza az üzembe helyezhető erőforrás típusát. Megadhatja például a létrehozandó Cosmos DB típusát.
scope No A hatókör tulajdonság csak bővítmény-erőforrástípusokhoz érhető el. Akkor használja, ha olyan hatókört ad meg, amely eltér az üzembehelyezési hatókörétől. Lásd: A bővítményerőforrások hatókörének beállítása ARM-sablonokban.
másolás No Ha több példányra van szükség, a létrehozandó erőforrások száma. Az alapértelmezett mód párhuzamos. Akkor adja meg a soros módot, ha nem szeretné, hogy az összes vagy az erőforrás egyszerre legyen üzembe helyezve. További információ: Több erőforráspéldány létrehozása az Azure Resource Manager.
Terv No Egyes erőforrások lehetővé teszik az üzembe helyezési tervet meghatározó értékeket. Megadhatja például egy virtuális gép piactéri rendszerképét.
properties No Erőforrás-specifikus konfigurációs beállítások. A tulajdonságok értékei megegyeznek az erőforrás létrehozásához szükséges REST API-művelet (PUT metódus) kérelemtörzsében megadott értékekkel. Egy másolási tömböt is megadhat egy tulajdonság több példányának létrehozásához. A rendelkezésre álló értékek meghatározásához tekintse meg a sablonreferenciát.
resources No A definiált erőforrástól függő gyermekerőforrások. Csak a szülőerőforrás sémája által engedélyezett erőforrástípusokat adja meg. A szülőerőforrástól való függőség nem utal rá. Ezt a függőséget explicit módon kell meghatároznia. Lásd: Gyermekerőforrások nevének és típusának beállítása.

A Bicepben tekintse meg az erőforrásokat.

Kimenetek

A szakaszban az outputs üzembe helyezésből visszaadott értékeket adja meg. Általában az üzembe helyezett erőforrások értékeit adja vissza. A sablonban legfeljebb 64 kimenet szerepelhet.

Az alábbi példa egy kimeneti definíció szerkezetét mutatja be:

"outputs": {
  "<output-name>": {
    "condition": "<boolean-value-whether-to-output-value>",
    "type": "<type-of-output-value>",
    "value": "<output-value-expression>",
    "copy": {
      "count": <number-of-iterations>,
      "input": <values-for-the-variable>
    }
  }
}
Elem neve Kötelező Leírás
kimeneti név Yes A kimeneti érték neve. Érvényes JavaScript-azonosítónak kell lennie.
Feltétel No Logikai érték, amely azt jelzi, hogy ez a kimeneti érték lesz-e visszaadva. Amikor trueaz érték szerepel az üzembe helyezés kimenetében. Amikor falsea rendszer kihagyja a kimeneti értéket ehhez az üzembe helyezéshez. Ha nincs megadva, az alapértelmezett érték a következő true: .
típus Yes A kimeneti érték típusa. A kimeneti értékek ugyanazokat a típusokat támogatják, mint a sablonbemeneti paraméterek. Ha a kimeneti típushoz securestring értéket ad meg, az érték nem jelenik meg az üzembe helyezési előzményekben, és nem kérhető le egy másik sablonból. Ha egynél több sablonban szeretne titkos értéket használni, tárolja a titkos kódot egy Key Vault, és hivatkozzon a titkos kódra a paraméterfájlban. További információ: Az Azure Key Vault használata biztonságos paraméterértékek átadásához az üzembe helyezés során.
érték No A kiértékelt és kimeneti értékként visszaadott sablonnyelvi kifejezés. Adja meg az értéket vagy a másolást.
másolás No Egy kimenet egynél több értékének visszaadására szolgál. Adja meg az értéket vagy a másolást. További információ: Kimeneti iteráció ARM-sablonokban.

Példák a kimenetek használatára: Kimenetek ARM-sablonban.

A Bicepben lásd a kimeneteket.

Megjegyzések és metaadatok

Megjegyzéseket és metaadatokat adhat hozzá a sablonhoz.

Megjegyzések

Beágyazott megjegyzésekhez használhatja a ///* ... */vagy a . A Visual Studio Code-ban mentse a megjegyzéseket tartalmazó paraméterfájlokat JSON-fájltípusként megjegyzésekkel (JSONC), ellenkező esetben a következő hibaüzenet jelenik meg: "Megjegyzések nem engedélyezettek a JSON-ban".

Megjegyzés

Ha az Azure CLI-vel sablonokat helyez üzembe megjegyzésekkel, használja a 2.3.0-s vagy újabb verziót, és adja meg a kapcsolót --handle-extended-json-format .

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2018-10-01",
  "name": "[variables('vmName')]", // to customize name, change it in variables
  "location": "[parameters('location')]", //defaults to resource group location
  "dependsOn": [ /* storage account and network interface must be deployed first */
    "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
    "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
  ],

A Visual Studio Code-ban az Azure Resource Manager Tools bővítmény képes automatikusan észlelni egy ARM-sablont, és módosítani a nyelvi módot. Ha a Visual Studio Code jobb alsó sarkában megjelenik az Azure Resource Manager-sablon, használhatja a beágyazott megjegyzéseket. A beágyazott megjegyzések már nem lesznek érvénytelenként megjelölve.

Visual Studio Code Azure Resource Manager sablon mód

A Bicepben lásd a megjegyzéseket.

Metaadatok

Az objektumokat metadata szinte bárhol hozzáadhatja a sablonban. Resource Manager figyelmen kívül hagyja az objektumot, de a JSON-szerkesztő figyelmeztetheti, hogy a tulajdonság érvénytelen. Az objektumban adja meg a szükséges tulajdonságokat.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "comments": "This template was developed for demonstration purposes.",
    "author": "Example Name"
  },

Ehhez parametersadjon hozzá egy metadata tulajdonsággal rendelkező objektumot description .

"parameters": {
  "adminUsername": {
    "type": "string",
    "metadata": {
      "description": "User name for the Virtual Machine."
    }
  },

Amikor a sablont a portálon helyezi üzembe, a leírásban megadott szöveg automatikusan a paraméter tippjeként lesz használva.

Paramétertipp megjelenítése

Ehhez resourcesadjon hozzá egy comments elemet vagy objektumot metadata . Az alábbi példa egy comments elemet és egy objektumot metadata is bemutat.

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2018-07-01",
    "name": "[concat('storage', uniqueString(resourceGroup().id))]",
    "comments": "Storage account used to store VM disks",
    "location": "[parameters('location')]",
    "metadata": {
      "comments": "These tags are needed for policy compliance."
    },
    "tags": {
      "Dept": "[parameters('deptName')]",
      "Environment": "[parameters('environment')]"
    },
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {}
  }
]

Ehhez outputsadjon hozzá egy metadata objektumot a kimeneti értékhez.

"outputs": {
  "hostname": {
    "type": "string",
    "value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]",
    "metadata": {
      "comments": "Return the fully qualified domain name"
    }
  },

Nem adhat hozzá objektumot metadata a felhasználó által definiált függvényekhez.

Többsoros sztringek

A sztringeket több sorra bonthatja. Lásd például a tulajdonságot location és az alábbi JSON-példában szereplő megjegyzések egyikét.

Megjegyzés

Többsoros sztringekkel rendelkező sablonok üzembe helyezéséhez használja a Azure PowerShell vagy az Azure CLI-t. Parancssori felület esetén használja a 2.3.0-s vagy újabb verziót, és adja meg a kapcsolót --handle-extended-json-format .

A többsoros sztringek nem támogatottak, ha a sablont a Azure Portal, egy DevOps-folyamaton vagy a REST API-on keresztül helyezi üzembe.

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2018-10-01",
  "name": "[variables('vmName')]", // to customize name, change it in variables
  "location": "[
    parameters('location')
    ]", //defaults to resource group location
  /*
    storage account and network interface
    must be deployed first
  */
  "dependsOn": [
    "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
    "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
  ],

A Bicepben lásd a többsoros sztringeket.

Következő lépések