Sablonösszetevők felfedezése
Az Azure Resource Manager-sablonok JSON-ban vannak megírva, amely lehetővé teszi az objektumként (például virtuális gépként) tárolt adatok szöveges kifejezését.
A JSON-dokumentumok lényegében kulcs-érték párok gyűjteményei. Minden kulcs egy sztring, amely értékek lehetnek:
- Egy sztring.
- Egy szám.
- Logikai kifejezés.
- Értékek listája.
- Objektum (amely más kulcs-érték párok gyűjteménye).
A Resource Manager-sablonok tartalmazhatnak olyan szakaszokat, amelyek JSON-jelöléssel vannak kifejezve, de nem kapcsolódnak magához a JSON-nyelvhez:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "",
"parameters": { },
"variables": { },
"functions": [ ],
"resources": [ ],
"outputs": { }
}
Tekintsük át ezeket a szakaszokat egy kicsit részletesebben.
Parameters
Ebben a szakaszban adhatja meg, hogy mely értékek konfigurálhatók a sablon futtatásakor.
Engedélyezheti például, hogy a sablonfelhasználók felhasználónevet, jelszót vagy tartománynevet állítsanak be.
Íme egy példa, amely két paramétert mutat be: egyet egy virtuális gép (VM) felhasználónevéhez, egyet pedig a jelszavához:
"parameters": {
"adminUsername": {
"type": "string",
"metadata": {
"description": "Username for the Virtual Machine."
}
},
"adminPassword": {
"type": "securestring",
"metadata": {
"description": "Password for the Virtual Machine."
}
}
}
Változók
Ebben a szakaszban definiálhatja a sablonban használt értékeket.
A változókkal könnyebben fenntarthatók a sablonok.
Megadhat például egy tárfióknevet egyszer változóként, majd használhatja a változót a sablonban.
Ha a tárfiók neve megváltozik, csak egyszer kell frissítenie a változót.
Íme egy példa, amely néhány változót mutat be, amelyek egy virtuális gép hálózati funkcióit írják le:
"variables": {
"nicName": "myVMNic",
"addressPrefix": "10.0.0.0/16",
"subnetName": "Subnet",
"subnetPrefix": "10.0.0.0/24",
"publicIPAddressName": "myPublicIP",
"virtualNetworkName": "MyVNET"
}
Funkciók
Ebben a szakaszban határozhatja meg azokat az eljárásokat, amelyeket nem szeretne megismételni a sablonban.
A változókhoz hasonlóan a függvényekkel is könnyebben fenntarthatók a sablonok.
Íme egy példa, amely létrehoz egy függvényt egy egyedi név létrehozásához, amelyet a globálisan egyedi elnevezési követelményekkel rendelkező erőforrások létrehozásakor használhat:
"functions": [
{
"namespace": "contoso",
"members": {
"uniqueName": {
"parameters": [
{
"name": "namePrefix",
"type": "string"
}
],
"output": {
"type": "string",
"value": "[concat(toLower(parameters('namePrefix')), uniqueString(resourceGroup().id))]"
}
}
}
}
],
Források
Ebben a szakaszban meghatározhatja az üzembe helyezés Azure-erőforrásait.
Íme egy példa, amely létrehoz egy nyilvános IP-címerőforrást:
{
"type": "Microsoft.Network/publicIPAddresses",
"name": "[variables('publicIPAddressName')]",
"location": "[parameters('location')]",
"apiVersion": "2018-08-01",
"properties": {
"publicIPAllocationMethod": "Dynamic",
"dnsSettings": {
"domainNameLabel": "[parameters('dnsLabelPrefix')]"
}
}
}
Az erőforrás típusa Microsoft.Network/publicIPAddresses
.
A név a változók szakaszból lesz beolvasva, a hely vagy az Azure-régió pedig a paraméterek szakaszból olvasható be.
Mivel az erőforrástípusok idővel változhatnak, az apiVersion
a használni kívánt erőforrástípus verziójára vonatkozik.
Az erőforrástípusok fejlődésével módosíthatja a sablonokat, hogy a legújabb funkciókkal működjön.
Kimenetek
Ebben a szakaszban definiálhat minden olyan információt, amelyet a sablon futtatásakor kapni szeretne.
Előfordulhat például, hogy meg szeretné kapni a virtuális gép IP-címét vagy teljes tartománynevét (FQDN), azokat az információkat, amelyeket az üzembe helyezés lefutásáig nem fog tudni.
Az alábbi példa egy gazdagépnév nevű kimenetet szemléltet.
A teljes tartománynév értékét a rendszer a virtuális gép nyilvános IP-címbeállításaiból olvassa be:
"outputs": {
"hostname": {
"type": "string",
"value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]"
}
}