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. Definitions
csak 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 true az erőforrás az üzembe helyezés során jön létre. Amikor false a 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 true az érték szerepel az üzembe helyezés kimenetében. Amikor false a 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.
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 parameters
adjon 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.
Ehhez resources
adjon 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 outputs
adjon 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ékouter
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:
- felhasználó által definiált típusok
- felhasználó által definiált függvények
- fordítási idő importálása
- kísérleti funkciók
Következő lépések
- A különböző megoldástípusokhoz használható teljes sablonok megtekintéséhez lásd: Azure gyorsindítási sablonok.
- A sablonon belül használható függvényekkel kapcsolatos részletekért tekintse meg az ARM-sablonfüggvényeket.
- Ha több sablont szeretne kombinálni az üzembe helyezés során, olvassa el a Csatolt és beágyazott sablonok használata Azure-erőforrások üzembe helyezésekor című témakört.
- A sablonok létrehozásával kapcsolatos javaslatokért tekintse meg az ARM-sablonok ajánlott eljárásait.
- A gyakori kérdésekre adott válaszokért tekintse meg az ARM-sablonokkal kapcsolatos gyakori kérdéseket.