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


Az ARM-sablonok struktúrája és szintaxisa

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

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 tekintse meg az első ARM-sablon létrehozását és üzembe helyezését ismertető oktatóanyagot. Az ARM-sablonokról a Learn-modulok irányított készletén keresztül az Erőforrások üzembe helyezése és kezelése az Azure-ban ARM-sablonok használatával című témakörben olvashat.

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ódbeállításként tekinti, javasoljuk, hogy tekintse meg a Bicepet.

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

Sablon formátuma

A legegyszerűbb struktúrában a sablon a következő elemeket tartalmazza:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "",
  "contentVersion": "",
  "apiProfile": "",
  "definitions": { },
  "parameters": { },
  "variables": { },
  "functions": [ ],
  "resources": [ ], /* or "resources": { } with languageVersion 2.0 */
  "outputs": { }
}
Elem neve Kötelező Leírás
$schema Igen 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áscsoport-üzemelő példányok legújabb verziójá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#
languageVersion Nem A sablon nyelvi verziója. A languageVersion 2.0 fejlesztéseinek megtekintéséhez tekintse meg a languageVersion 2.0-t.
contentVersion Igen 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 változásait. Amikor erőforrásokat helyez üzembe a sablon használatával, ez az érték a megfelelő sablon használatának biztosításához használható.
apiProfile Nem 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. Ha megad egy API-profilverziót, és nem ad meg API-verziót az erőforrástípushoz, a Resource Manager a profilban definiált 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 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.
Meghatározások Nem A tömb- és objektumértékek ellenőrzésére használt sémák. A definíciók csak a languageVersion 2.0-ban támogatottak.
paraméterek Nem Az erőforrások üzembe helyezésének testreszabásához az üzembe helyezés végrehajtásakor megadott értékek.
Változók Nem A sablonban JSON-töredékként használt értékek a sablon nyelvi kifejezéseinek egyszerűsítése érdekében.
Funkciók Nem A sablonban elérhető, felhasználó által definiált függvények.
Erőforrások Igen Erőforráscsoportban vagy előfizetésben üzembe helyezett vagy frissített erőforrástípusok.
Kimenetek Nem 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.

Definíciók

definitions A sablon szakaszában adja meg a tömb- és objektumértékek érvényesítéséhez használt sémákat. Definitionscsak a languageVersion 2.0-val használható.

"definitions": {
  "<definition-name": {
    "type": "<data-type-of-definition>",
    "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>,
    "prefixItems": <schema-for-validating-array>,
    "items": <schema-for-validating-array-or-boolean>,
    "properties": <schema-for-validating-object>,
    "additionalProperties": <schema-for-validating-object-or-boolean>,
    "discriminator": <schema-to-apply>,
    "nullable": <boolean>,
    "metadata": {
      "description": "<description-of-the-type-definition>"
    }
  }
}
Elem neve Kötelező Leírás
definíció-név Igen A típusdefiníció neve. Érvényes JavaScript-azonosítónak kell lennie.
típus Igen A típusdefiníció típusa. Az engedélyezett típusok és értékek a sztring, a securestring, az int, a bool, az objektum, a secureObject és a tömb. Tekintse meg az ARM-sablonok adattípusát.
allowedValues Nem A típusdefiníció engedélyezett értékeinek tömbje, amelyek biztosítják, hogy a megfelelő érték legyen megadva.
minValue Nem Az int típusú definíciók minimális értéke, amely magában foglalja ezt az értéket.
maxValue Nem A maximális érték a int típusdefiníciók esetében, ez az érték a befogadó.
minLength Nem Ez az érték a sztringek, a biztonságos sztringek és a tömbtípus-definíciók minimális hossza.
maxLength Nem Ez az érték a sztringek, a biztonságos sztringek és a tömbtípus-definíciók maximális hossza.
prefixItems Nem Az ugyanazon az indexen lévő tömb elemének érvényesítésére szolgáló séma.
elemek Nem A tömb minden olyan elemére alkalmazott séma, amelynek indexe nagyobb, mint a prefixItems kényszer legnagyobb indexe, vagy logikai érték annak a tömbnek az elemeinek szabályozására, amelynek indexe nagyobb, mint a prefixItems kényszer legnagyobb indexe.
tulajdonságok Nem Az objektum érvényesítésének sémája.
additionalProperties Nem A kényszerben properties nem említett összes tulajdonságra alkalmazott séma, vagy logikai érték a kényszerben properties nem definiált tulajdonságok elfogadásához.
diszkriminatív Nem A diszkriminatív tulajdonság alapján alkalmazandó séma.
Nullázható Nem Logikai érték, amely azt jelzi, hogy az érték null vagy kihagyható.
leírás Nem A portálon keresztül a felhasználók számára megjelenített típusdefiníció leírása. További információ: Megjegyzések sablonokban.

Példák a típusdefiníciók használatára: Típusdefiníciók ARM-sablonokban.

A Bicepben lásd a felhasználó által definiált adattípusokat.

Paraméterek

parameters A sablon szakaszában megadhatja, hogy mely értékek adhatók meg az erőforrások üzembe helyezésekor. Egy sablonban legfeljebb 256 paraméter szerepelhet. A paraméterek számát több tulajdonságot tartalmazó objektumokkal 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>,
    "prefixItems": <schema-for-validating-array>,
    "items": <schema-for-validating-array-or-boolean>,
    "properties": <schema-for-validating-object>,
    "additionalProperties": <schema-for-validating-object-or-boolean>,
    "discriminator": <schema-to-apply>,
    "nullable": <boolean>,
    "metadata": {
      "description": "<description-of-the parameter>"
    }
  }
}
Elem neve Kötelező Leírás
paraméter neve Igen A paraméter neve. Érvényes JavaScript-azonosítónak kell lennie.
típus Igen A paraméterérték típusa. Az engedélyezett típusok és értékek a sztring, a securestring, az int, a bool, az objektum, a secureObject és a tömb. Tekintse meg az ARM-sablonok adattípusát.
defaultValue Nem A paraméter alapértelmezett értéke, ha nincs megadva érték a paraméterhez.
allowedValues Nem A paraméter engedélyezett értékeinek tömbje, hogy a megfelelő érték legyen megadva.
minValue Nem Az int típusú paraméterek minimális értéke, amely magában foglalja ezt az értéket.
maxValue Nem Az int típusú paraméterek maximális értéke, ez az érték a befogadó.
minLength Nem Ez az érték a sztring, a biztonságos sztring és a tömbtípus paramétereinek minimális hossza.
maxLength Nem Ez az érték a sztring, a biztonságos sztring és a tömbtípus paramétereinek maximális hossza.
prefixItems Nem A tömb elemének egyazon indexen való érvényesítéséhez használt típusdefiníció. prefixItems csak a languageVersion 2.0 támogatja.
elemek Nem A tömb minden olyan elemére alkalmazott séma, amelynek indexe nagyobb, mint a prefixItems kényszer legnagyobb indexe, vagy logikai érték annak a tömbnek az elemeinek szabályozására, amelynek indexe nagyobb, mint a prefixItems kényszer legnagyobb indexe. items csak a languageVersion 2.0 támogatja.
tulajdonságok Nem Az objektum érvényesítésének sémája. properties csak a languageVersion 2.0 támogatja.
additionalProperties Nem A kényszerben properties nem említett összes tulajdonságra alkalmazott séma, vagy logikai érték a kényszerben properties nem definiált tulajdonságok elfogadásához. additionalProperties csak a languageVersion 2.0 támogatja.
diszkriminatív Nem A diszkriminatív tulajdonság alapján alkalmazandó séma. discriminator csak a languageVersion 2.0 támogatja.
Nullázható Nem Logikai érték, amely azt jelzi, hogy az érték null vagy kihagyható. nullable csak a languageVersion 2.0 támogatja.
leírás Nem 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.

A paraméterek használatára vonatkozó példákért tekintse meg az ARM-sablonok paramétereit.

A Bicepben tekintse meg a paramétereket.

Változók

A szakaszban olyan variables értékeket hozhat létre, amelyek a sablonban használhatók. 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 megegyezik az adattípusok egyikével. Egy sablonban legfeljebb 256 változó lehet.

Az alábbi példa egy változó definiálása során elérhető 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ó a változók több értékének létrehozásáról copy : Változók iterációja.

A változók használatára vonatkozó példákért tekintse meg az ARM-sablon változóit.

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

Függvények

A sablonon belül létrehozhatja saját függvényeit. Ezek a függvények a sablonban használhatók. Általában olyan bonyolult kifejezéseket határoz meg, 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 lesz korlátozva.
  • A függvény nem tud más felhasználó által definiált függvényeket meghívni.
  • A függvény nem használhatja a referenciafüggvényt.
  • A függvény paraméterei nem tartalmazhatnak alapértelmezett értékeket.
"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 Igen Az egyéni függvények névtere. Az elnevezési ütközések elkerülése sablonfüggvényekkel.
függvény neve Igen 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 egy névtér contoso névterében elnevezett uniqueName függvényt szeretne meghívni, használja a következőt "[contoso.uniqueName()]": .
paraméter neve Nem Az egyéni függvényben használandó paraméter neve.
paraméter-érték Nem A paraméterérték típusa. Az engedélyezett típusok és értékek a sztring, a securestring, az int, a bool, az objektum, a secureObject és a tömb.
kimeneti típus Igen 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 Igen A függvényből 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 támogatja a különböző függvényeket és operátorokat.

Források

A szakaszban definiálja az resources ü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 Nem Logikai érték, amely azt jelzi, hogy az erőforrás ki van-e építve az üzembe helyezés során. Amikor trueaz erőforrás az üzembe helyezés során jön létre. Amikor falsea rendszer kihagyja az erőforrást ehhez az üzembe helyezéshez. Lásd a feltételt.
típus Igen 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ásban 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 Igen 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 helyezendő erőforrás legújabb verziójára. Amíg a sablon szükség szerint működik, használja 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. Az API-verziót csak akkor érdemes frissíteni, ha egy későbbi verzióban bevezetett új funkciót szeretne használni. A rendelkezésre álló értékek meghatározásához tekintse meg a sablonreferenciát.
név Igen Az erőforrás neve. A névnek a RFC3986 meghatározott URI-összetevőkre vonatkozó korlátozásokat kell követnie. Az erőforrásnevet külső felek számára közzétevő Azure-szolgáltatások ellenőrzik a nevet, hogy ne kíséreljenek meg más identitást hamissá tenni. Gyermekerőforrás esetén a név formátuma attól függ, hogy a szülőerőforrásban 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 Nem A sablon erőforrásainak dokumentálására vonatkozó jegyzetei. További információ: Megjegyzések sablonokban.
hely Eltérő 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és) nem igényelnek helyet. Lásd: Erőforrás helyének beállítása.
dependsOn Nem Azokat az erőforrásokat, amelyeket az erőforrás üzembe helyezése előtt kell üzembe helyezni. A 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 vagy egyedi erőforrás-azonosítók vesszővel tagolt listája. Csak a sablonban üzembe helyezett erőforrások felsorolá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 lassí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.
címkét Nem 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.
identitás Nem Egyes erőforrások támogatják az Azure-erőforrások felügyelt identitását. Ezek az erőforrások az erőforrás-deklaráció legfelső szintjén rendelkeznek identitásobjektummal. Beállíthatja, hogy az identitás felhasználóhoz vagy rendszerhez van-e hozzárendelve. A felhasználó által hozzárendelt identitások esetében adja meg az identitások erőforrásazonosí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 Nem 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.
kind Nem Egyes erőforrások lehetővé teszik az üzembe helyezhető erőforrás típusát meghatározó értéket. Megadhatja például a létrehozandó Azure Cosmos DB-példány típusát.
hatálya Nem A hatókör tulajdonság csak bővítményerőforrás-típusok esetén érhető el. Használja az üzembehelyezési hatókörétől eltérő hatókör megadásakor. Lásd: Bővítményerőforrások hatókörének beállítása ARM-sablonokban.
másolás Nem 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 Managerben.
csomag Nem 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.
tulajdonságok Nem Erőforrás-specifikus konfigurációs beállítások. A tulajdonságok értékei megegyeznek a REST API-művelet (PUT metódus) kérelemtörzsében az erőforrás létrehozásához 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.
erőforrások Nem A definiált erőforrástól függő gyermekerőforrások. Csak olyan erőforrástípusokat adjon meg, amelyeket a szülőerőforrás sémája engedélyez. A szülőerőforrás függősége nem utal rá. Ezt a függőséget explicit módon kell meghatároznia. Lásd: A gyermekerőforrások nevének és típusának beállítása.

Ha támogatni szeretné a Bicep szimbolikus nevét az ARM JSON-sablonokban, adja hozzá languageVersion a verziót 2.0 vagy az újabbat, és módosítsa az erőforrásdefiníciót tömbről objektumra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "resources": {
    "<name-of-the-resource>": {
      ...
    }
  }
}

További információ: Erőforrások.

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. Egy sablonban legfeljebb 64 kimenet lehet.

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 Igen A kimeneti érték neve. Érvényes JavaScript-azonosítónak kell lennie.
feltétel Nem Logikai érték, amely azt jelzi, hogy ez a kimeneti érték vissza lesz-e adva. 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 Igen A kimeneti érték típusa. A kimeneti értékek ugyanazokat a típusokat támogatják, mint a sablon bemeneti paraméterei. Ha a kimeneti típushoz biztonsági vonásokat 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 több sablonban szeretne titkos értéket használni, tárolja a titkos kulcsot egy Key Vaultban, é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 Nem 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 Nem Több értéket ad vissza egy kimenethez. 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 következőt: // /* ... */vagy . A Visual Studio Code-ban mentse a megjegyzésekkel ellátott paraméterfájlokat JSON-fájltípusú JSON-fájltípusként, ellenkező esetben hibaüzenet jelenik meg: "Megjegyzések nem engedélyezettek a JSON-ban".

Feljegyzés

Ha az Azure CLI használatával 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": "2023-03-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.

Képernyőkép a Visual Studio Code-ról azure Resource Manager-sablon módban.

A Bicepben lásd a megjegyzéseket.

Metaadatok

Az objektumokat metadata szinte bárhol hozzáadhatja a sablonban. A 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 keresztül telepíti, a leírásban megadott szöveg automatikusan a paraméter tippjeként lesz használva.

Képernyőkép a paramétertippről az Azure Portalon.

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

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2022-09-01",
    "name": "[format('{0}{1}', '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 objektumot metadata 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 location tulajdonságot és az alábbi JSON-példában szereplő megjegyzések egyikét.

Feljegyzés

Többsoros sztringekkel rendelkező sablonok üzembe helyezéséhez használja az Azure PowerShellt 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 az Azure Portalon, egy DevOps-folyamaton vagy a REST API-on keresztül telepíti.

{
  "type": "Microsoft.Compute/virtualMachines",
  "apiVersion": "2023-03-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.

languageVersion 2.0

Feljegyzés

Az éles környezetekben nem ajánlott bármilyen languageVersion -experimental végpontot használni, mert a kísérleti funkciók bármikor módosíthatók.

Feljegyzés

A Visual Studio Code-hoz készült Azure Resource Manager Tools bővítmény jelenlegi kiadása nem ismeri fel a languageVersion 2.0-ban végrehajtott fejlesztéseket.

A languageVersion 2.0 használatához adja hozzá "languageVersion": "2.0" a sablont:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "resources": {
    "<name-of-the-resource>": {
      ...
    }
  }
}

A languageVersion 2.0-val kapcsolatos fejlesztések és módosítások:

  • Használjon szimbolikus nevet az ARM JSON-sablonban. További információ: Szimbolikus név használata.
  • Használjon szimbolikus nevet az erőforrás-másolási hurkokban. Lásd: Szimbolikus név használata.
  • Használjon szimbolikus nevet a tömbökben dependsOn . Lásd: DependsOn és Depend on resources in a loop.
  • Használjon szimbolikus nevet az erőforrás neve helyett a reference függvényben. Lásd: referencia.
  • Hivatkozási() függvény, amely egy erőforráscsoport futtatókörnyezeti állapotát képviselő objektumtömböt ad vissza. Lásd a hivatkozásokat.
  • A "meglévő" erőforrástulajdonság használatával deklarálhatja a meglévő erőforrásokat az ARM számára az erőforrás üzembe helyezése helyett olvasásra. Lásd: Meglévő erőforrások deklarálása.
  • Felhasználó által definiált típusok létrehozása. Lásd: Típusdefiníció.
  • További aggregátumtípus-érvényesítési korlátozások, amelyeket paraméterekben és kimenetekben kell használni.
  • A tulajdonság alapértelmezett értéke a expressionEvaluationOptions következő inner: . Az érték outer le van tiltva. Lásd: Kifejezésértékelési hatókör beágyazott sablonokban.
  • A deployment függvény a tulajdonságok egy korlátozott részhalmazát adja vissza. Lásd az üzembe helyezést.
  • Ha az üzembehelyezési erőforrást szimbolikus névvel rendelkező üzembe helyezésben használják, használja az apiVersion 2020-09-01 vagy újabb verziót.
  • Az erőforrásdefinícióban a kifejezésen belüli értékekre már nincs szükség. Lásd: Escape karakterek.

Az alábbi Bicep-funkciók bármelyikének használata automatikusan engedélyezi a 2.0-s verziójú kódgenerálást:

Következő lépések