Share via


Oktatóanyag: Paraméterfájlok használata az ARM-sablon üzembe helyezéséhez

Ebből az oktatóanyagból megtudhatja, hogyan tárolhatja az üzembe helyezés során átadott értékeket paraméterfájlok használatával. Az előző oktatóanyagokban beágyazott paramétereket használt az üzembe helyezési paranccsal. Ez a módszer az Azure Resource Manager-sablon (ARM-sablon) teszteléséhez működött, de az üzembe helyezések automatizálásakor egyszerűbb lehet értékkészletet átadni a környezetnek. A paraméterfájlok megkönnyítik egy adott környezet paraméterértékeinek csomagolását. Ebben az oktatóanyagban paraméterfájlokat hoz létre fejlesztési és éles környezetekhez. Ez az utasítás 12 percet vesz igénybe.

Előfeltételek

Javasoljuk, hogy végezze el a címkékről szóló oktatóanyagot, de nincs rá szükség.

Rendelkeznie kell a Visual Studio Code-tal a Resource Manager Tools bővítménnyel, valamint Azure PowerShell vagy Azure Command-Line Interface (CLI) használatával. További információ: Sabloneszközök.

Sablon áttekintése

A sablon számos paramétert biztosít az üzembe helyezés során. Az előző oktatóanyag végén a sablon a következő JSON-fájlt tartalmazza:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    },
    "webAppName": {
      "type": "string",
      "metadata": {
        "description": "Base name of the resource such as web app name and app service plan "
      },
      "minLength": 2
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "resourceTags": {
      "type": "object",
      "defaultValue": {
        "Environment": "Dev",
        "Project": "Tutorial"
      }
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
    "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "tags": "[parameters('resourceTags')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "tags": "[parameters('resourceTags')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2021-03-01",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[parameters('appServicePlanName')]"
      ],
      "tags": "[parameters('resourceTags')]",
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Ez a sablon jól működik, de most egyszerűen szeretné kezelni a sablonhoz megadott paramétereket.

Paraméterfájlok hozzáadása

A paraméterfájlok olyan JSON-fájlok, amelyek struktúrája hasonló a sablonhoz. A fájlban adja meg az üzembe helyezés során átadni kívánt paraméterértékeket.

A paraméterfájlban megadhatja a sablon paramétereinek értékeit. A paraméterfájlban lévő paraméterek nevének meg kell egyeznie a sablonban lévő paraméter nevével. A név nem különbözteti meg a kis- és nagybetűket, de az egyező értékek egyszerű megjelenítéséhez azt javasoljuk, hogy egyezzen a sablon burkolatával.

Nem kell minden paraméterhez értéket megadnia. Ha egy meghatározatlan paraméter alapértelmezett értékkel rendelkezik, a rendszer ezt az értéket használja az üzembe helyezés során. Ha egy paraméter nem rendelkezik alapértelmezett értékkel, és nincs megadva a paraméterfájlban, a rendszer kérni fogja, hogy adjon meg egy értéket az üzembe helyezés során.

Nem adhat meg olyan paraméternevet a paraméterfájlban, amely nem egyezik meg a sablonban szereplő paraméternévvel. Ismeretlen paraméterek megadásakor hibaüzenet jelenik meg.

A Visual Studio Code-ban hozzon létre egy új fájlt az alábbi tartalommal. Mentse a fájlt azuredeploy.parameters.dev.json néven.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "devstore"
    },
    "storageSKU": {
      "value": "Standard_LRS"
    },
    "appServicePlanName": {
      "value": "devplan"
    },
    "webAppName": {
      "value": "devapp"
    },
    "resourceTags": {
      "value": {
        "Environment": "Dev",
        "Project": "Tutorial"
      }
    }
  }
}

Ez a fájl a fejlesztési környezet paraméterfájlja. Figyelje meg, hogy Standard_LRS használ a tárfiókhoz, dev előtaggal rendelkező erőforrásokat nevez el, és a Environment címkét Dev értékre állítja.

Hozzon létre ismét egy új fájlt az alábbi tartalommal. Mentse a fájlt azuredeploy.parameters.prod.json néven.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "contosodata"
    },
    "storageSKU": {
      "value": "Standard_GRS"
    },
    "appServicePlanName": {
      "value": "contosoplan"
    },
    "webAppName": {
      "value": "contosowebapp"
    },
    "resourceTags": {
      "value": {
        "Environment": "Production",
        "Project": "Tutorial"
      }
    }
  }
}

Ez a fájl az éles környezet paraméterfájlja. Figyelje meg, hogy Standard_GRS használ a tárfiókhoz, contoso előtaggal adja meg az erőforrásokat, és a Environment címkét Production (Éles) értékre állítja. Valós éles környezetben az ingyenesen ki nem használt termékváltozattal rendelkező App Service-t is érdemes használni, de ehhez az oktatóanyaghoz ezt a termékváltozatot használjuk.

Sablon üzembe helyezése

A sablon üzembe helyezéséhez használja az Azure CLI-t vagy a Azure PowerShell.

A sablon utolsó tesztjeként hozzunk létre két új erőforráscsoportot. Egyet a fejlesztői környezethez, egyet pedig az éles környezethez.

A sablon- és paraméterváltozók esetében cserélje le {path-to-the-template-file}a , {path-to-azuredeploy.parameters.dev.json}, {path-to-azuredeploy.parameters.prod.json}, és a kapcsos zárójeleket {} a sablonra és a paraméterfájl elérési útjára.

Először helyezzük üzembe a fejlesztői környezetben.

$templateFile = "{path-to-the-template-file}"
$parameterFile="{path-to-azuredeploy.parameters.dev.json}"
New-AzResourceGroup `
  -Name myResourceGroupDev `
  -Location "East US"
New-AzResourceGroupDeployment `
  -Name devenvironment `
  -ResourceGroupName myResourceGroupDev `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile

Most üzembe helyezzük az éles környezetben.

$parameterFile="{path-to-azuredeploy.parameters.prod.json}"
New-AzResourceGroup `
  -Name myResourceGroupProd `
  -Location "West US"
New-AzResourceGroupDeployment `
  -Name prodenvironment `
  -ResourceGroupName myResourceGroupProd `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile

Megjegyzés

Ha az üzembe helyezés sikertelen, a verbose kapcsolóval információkat kaphat a létrehozott erőforrásokról. A kapcsolóval debug további információt kaphat a hibakeresésről.

Az üzembe helyezés ellenőrzése

Az üzembe helyezést a Azure Portal erőforráscsoportjaival ellenőrizheti.

  1. Jelentkezzen be az Azure Portal.
  2. A bal oldali menüben válassza az Erőforráscsoportok lehetőséget.
  3. Ebben az oktatóanyagban megjelenik a két új erőforráscsoport, amit üzembe helyez.
  4. Válassza ki az erőforráscsoportot, és tekintse meg az üzembe helyezett erőforrásokat. Figyelje meg, hogy azok megegyeznek az adott környezet paraméterfájljában megadott értékekkel.

Az erőforrások eltávolítása

  1. A Azure Portal válassza az Erőforráscsoportok lehetőséget a bal oldali menüben.

  2. Jelölje be a jelölőnégyzet melletti hivatkozásra mutató erőforráscsoport-nevet. Ha befejezi ezt a sorozatot, három erőforráscsoportot kell törölnie : myResourceGroup, myResourceGroupDev és myResourceGroupProd.

  3. Válassza az Erőforráscsoport törlése ikont a felső menüben.

    Figyelemfelhívás

    Az erőforráscsoport törlése nem vonható vissza.

  4. Írja be az erőforráscsoport nevét a megjelenő előugró ablakban, és válassza a Törlés lehetőséget.

Következő lépések

Gratulálunk! Ezzel a bevezetéssel befejezte a sablonok Azure-ban való üzembe helyezését. Tudassa velünk, ha megjegyzései és javaslatai vannak a visszajelzési szakaszban.

A következő oktatóanyag-sorozat részletesebben ismerteti a sablonok üzembe helyezését.