Oktatóanyag: Az ARM-sablon üzembe helyezése paraméterfájlokkal

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 megközelítés az Azure Resource Manager-sablon (ARM-sablon) teszteléséhez működött, de az üzembe helyezés automatizálása során 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 ez nem kötelező.

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

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ájllal rendelkezett:

{
  "$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 megkülönbözteti a kis- és nagybetűket, de az egyező értékek egyszerű megjelenítéséhez azt javasoljuk, hogy a sablonból válassza ki a burkolatot.

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 az üzembe helyezés során kérni fogja, hogy adjon meg egy értéket.

A paraméterfájlban nem adhat meg olyan paraméternevet, 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 meg, és a Environment címkét Dev értékre állítja.

Hozzon létre ismét egy új fájlt a következő 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 nevezi el az erőforrásokat, és a Environment címkét Production (Éles) értékre állítja. Valós éles környezetben egy app service-t is használna az ingyenes termékváltozattól eltérő termékváltozattal, de ebben az oktatóanyagban ezt az SKU-t 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 az éles környezetben helyezzük üzembe az üzembe helyezést.

$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 kérhet le 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és ellenőrzéséhez vizsgálja meg az erőforráscsoportokat a Azure Portal.

  1. Jelentkezzen be az Azure Portalra.
  2. A bal oldali menüben válassza az Erőforráscsoportok lehetőséget.
  3. Ebben az oktatóanyagban láthatja a két új erőforráscsoportot, amit üzembe helyez.
  4. Válasszon ki egy erőforráscsoportot, és tekintse meg az üzembe helyezett erőforrásokat. Figyelje meg, hogy ezek 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 bármilyen megjegyzése és javaslata van a visszajelzési szakaszban.

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