Gyakorlat – paraméterek és kimenetek hozzáadása az Azure Resource Manager-sablonhoz

Befejeződött

Ebben a gyakorlatban egy paramétert fog hozzáadni az Azure Storage-fiók nevének meghatározásához az üzembe helyezés során. Ezután hozzáad egy paramétert, amely meghatározza, hogy milyen tárfiók-termékváltozatok engedélyezettek, és meghatározza, hogy melyiket használja az üzemelő példányhoz. Hasznosságot is adhat az Azure Resource Manager-sablonhoz (ARM-sablonhoz), ha hozzáad egy kimenetet, amelyet később használhat az üzembe helyezési folyamat során.

Az ARM-sablon paramétereinek létrehozása

Itt rugalmasabbá teheti az ARM-sablont, ha olyan paramétereket ad hozzá, amelyek futásidőben állíthatók be. Hozzon létre egy paramétert a storageName értékhez.

  1. A Visual Studio Code azuredeploy.json fájljában helyezze a kurzort a kapcsos zárójelekbe a parameters attribútumban. A következőképpen néz ki: "parameters":{},

  2. Nyomja le az Enter gombot, majd írja be a par szöveget. Ekkor megjelenik a kapcsolódó kódrészletek listája. Válassza az új paramétert, amely egy általános paramétert ad hozzá a sablonhoz. Így néz ki:

     "parameters": {
        "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
      }
    },
    
  3. Módosítsa a paramétert az 1. paraméterről a StorageName paraméterre, és hagyja sztringként a típust. A minLength értéke 3, a maxLength értéke pedig 24 legyen. A leírás értékeként adja meg az Az Azure-tárerőforrás neve értéket.

  4. A paraméterblokknak így kell kinéznie:

    "parameters": {
      "storageName": {
        "type": "string",
        "minLength": 3,
        "maxLength": 24,
        "metadata": {
          "description": "The name of the Azure storage resource"
        }
      }
    },
    
  5. Használja az új paramétert a resources blokkban mind a name, mind a displayName értékéhez. A teljes fájl a következőképpen fog kinézni:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageName": {
          "type": "string",
          "minLength": 3,
          "maxLength": 24,
          "metadata": {
            "description": "The name of the Azure storage resource"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[parameters('storageName')]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "[parameters('storageName')]"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Standard_LRS",
            "tier": "Standard"
          }
        }
      ],
      "outputs": {}
    }
    
  6. Mentse a fájlt.

A paraméteres ARM-sablon üzembe helyezése

Itt módosíthatja az üzembe helyezés nevét, hogy jobban tükrözze az üzemelő példányt, és adja meg az új paraméter értékét.

Futtassa az alábbi Azure CLI-parancsokat a terminálban. Ez a kódrészlet ugyanaz a kód, amelyet korábban használt, de az üzemelő példány neve módosult. Adjon meg egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi leckében létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addnameparameter-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile \
  --parameters storageName={your-unique-name}

Futtassa a következő Azure PowerShell-parancsokat a terminálban. Ez a kódrészlet ugyanaz a kód, amelyet korábban használt, de az üzemelő példány neve módosult. Adjon meg egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi leckében létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addnameparameter-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile `
  -storageName {your-unique-name}

Az üzemelő példány ellenőrzése

  1. Amikor az üzembe helyezés befejeződik, térjen vissza az Azure Portalra a böngészőben. Nyissa meg az erőforráscsoportot, és nézze meg, hogy 3 sikeres üzembe helyezés történt. Válassza ezt a hivatkozást.

    Láthatja, hogy mindhárom üzemelő példány szerepel a listában.

  2. Böngéssze az addnameparameter üzemelő példányt, ahogy korábban is tette.

Egy másik paraméter hozzáadása az engedélyezett értékek korlátozásához

Itt paraméterekkel korlátozza a paraméterek számára engedélyezett értékeket.

  1. Mutasson a kurzorral a storageName paraméter záró kapcsos zárójele mögé. Adjon hozzá egy vesszőt, majd nyomja le az Enter billentyűt.

  2. Adja meg ismét a par értéket, és válassza ki az új paramétert.

  3. Módosítsa az új általános paramétert a következőre:

    "storageSKU": {
       "type": "string",
       "defaultValue": "Standard_LRS",
       "allowedValues": [
         "Standard_LRS",
         "Standard_GRS",
         "Standard_RAGRS",
         "Standard_ZRS",
         "Premium_LRS",
         "Premium_ZRS",
         "Standard_GZRS",
         "Standard_RAGZRS"
       ]
     }
    

    Itt azokat az értékeket listázza, amelyek ennél a paraméternél engedélyezettek lesznek. Ha a sablont nem engedélyezett értékkel futtatják, akkor az üzembe helyezés sikertelen lesz.

  4. Adjon hozzá egy megjegyzést ehhez a paraméterhez.

    Screenshot of the azuredeploy.json file showing the comment This is the allowed values for an Azure storage account in the line preceding the storageSKU parameter.

    Az ARM-sablonok támogatják a // és /* */ formátumú megjegyzéseket.

  5. Frissítse a resources paramétert a storageSKU paraméter használatához. A Visual Studio Code-ban az IntelliSense előnyeit kihasználva ezt könnyebben megteheti.

    "sku": {
         "name": "[parameters('storageSKU')]"
       }
    

    A teljes fájl a következőképpen fog kinézni:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageName": {
          "type": "string",
          "minLength": 3,
          "maxLength": 24,
          "metadata": {
            "description": "The name of the Azure storage resource"
          }
        },
        "storageSKU": {
          "type": "string",
          "defaultValue": "Standard_LRS",
          "allowedValues": [
            "Standard_LRS",
            "Standard_GRS",
            "Standard_RAGRS",
            "Standard_ZRS",
            "Premium_LRS",
            "Premium_ZRS",
            "Standard_GZRS",
            "Standard_RAGZRS"
          ]
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[parameters('storageName')]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "[parameters('storageName')]"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "[parameters('storageSKU')]",
            "tier": "Standard"
          }
        }
      ],
      "outputs": {}
    }
    
  6. Mentse a fájlt.

Az ARM-sablon üzembe helyezése

Itt egy, az engedélyezett listában szereplő paraméterrel storageSKU fogja sikeresen üzembe helyezni a telepítést. Ezután megpróbálhatja üzembe helyezni a sablont egy storageSKU olyan paraméterrel, amely nem szerepel az engedélyezett listában. A második üzembe helyezés a várt módon sikertelen lesz.

  1. A sablon üzembe helyezéséhez futtassa az alábbi parancsot. Adjon meg egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addSkuParameter-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storageSKU=Standard_GRS storageName={your-unique-name}
    

    Várja meg az üzembe helyezés befejezését. Ez az üzembe helyezés a várt módon sikeres lesz. Az engedélyezett értékek megakadályozzák, hogy a sablon felhasználói olyan paraméterértékeket adjanak át, amelyek nem működnek az erőforráshoz. Lássuk, mi történik, ha érvénytelen termékváltozatot ad meg.

  2. A következő parancsok futtatásával üzembe helyezheti a sablont egy olyan paraméterrel, amely nem engedélyezett. Itt a storageSKU paramétert a Basic értékre módosította. Adjon meg egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addSkuParameter-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storageSKU=Basic storageName={your-unique-name}
    

    Az üzembe helyezés sikertelen lesz. Figyelje meg a hibaüzenetet.

    Screenshot of the Terminal window showing the deployment validation error.

  1. A sablon üzembe helyezéséhez futtassa az alábbi parancsot. Adjon meg egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addSkuParameter-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storageName {your-unique-name} `
      -storageSKU Standard_GRS
    

    Várja meg az üzembe helyezés befejezését. Ez az üzembe helyezés a várt módon sikeres lesz. Az engedélyezett értékek megakadályozzák, hogy a sablon felhasználói olyan paraméterértékeket adjanak át, amelyek nem működnek az erőforráshoz. Lássuk, mi történik, ha érvénytelen termékváltozatot ad meg.

  2. A következő parancsok futtatásával üzembe helyezheti a sablont egy olyan paraméterrel, amely nem engedélyezett. Itt a storageSKU paramétert a Basic értékre módosította. Adjon meg egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addSkuParameter-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storageName {your-unique-name} `
      -storageSKU Basic
    

    Az üzembe helyezés sikertelen lesz. Figyelje meg a hibaüzenetet.

    Screenshot of the Terminal window showing the deployment validation error.

Kimenet hozzáadása az ARM-sablonhoz

Itt hozzáadja az outputs ARM-sablon szakaszához a tárfiók-erőforrás végpontjainak kimenetét.

  1. A Visual Studio Code azuredeploy.json fájljában helyezze a kurzort a kapcsos zárójelekbe a kimeneti attribútumban"outputs":{},.

  2. Nyomja le az Enter billentyűt, majd lépjen ki. Megjelenik a kapcsolódó kódrészletek listája. Válassza ki az új kimenetet. Ezzel egy általános kimenetet ad hozzá a sablonhoz. Ez így néz ki:

    "outputs": {
      "output1": {
        "type": "string",
        "value": "value"
      }
    
  3. Módosítsa a "output1" értékét "storageEndpoint" értékre, majd módosítsa az értéket "object" értékre type. Módosítsa a következő értékre value : "[reference(parameters('storageName')).primaryEndpoints]". Ez a kifejezés az előző leckében leírt kifejezés, amely lekéri a végpontadatokat. Mivel az objektum típusként van megadva, az JSON formátumban adja vissza az objektumot.

    "outputs": {
      "storageEndpoint": {
        "type": "object",
        "value": "[reference(parameters('storageName')).primaryEndpoints]"
      }
    
  4. Mentse a fájlt.

Az ARM-sablon üzembe helyezése kimenettel

Itt üzembe helyezi a sablont, és JSON-ként látja a végpontok kimenetét. Meg kell adnia egy egyedi nevet a storageName paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.

  1. A sablon üzembe helyezéséhez futtassa az alábbi parancsot. A {your-unique-name} sztringet egy egyedi, Ön által ismert sztringre cserélje le.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addoutputs-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storageSKU=Standard_LRS storageName={your-unique-name}
    

    Figyelje meg a kimenetet.

    Screenshot of the Terminal window showing the primary endpoints output as JSON.

  1. A sablon üzembe helyezéséhez futtassa az alábbi parancsot. A {your-unique-name} sztringet egy egyedi, Ön által ismert sztringre cserélje le.

    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addOutputs-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storageName {your-unique-name} `
      -storageSKU Standard_LRS
    

    Figyelje meg a kimenetet.

    Screenshot of the Terminal window showing the primary endpoints output as JSON.

A kimenettel rendelkező üzemelő példány ellenőrzése

Az Azure Portalon lépjen az addOutputs üzembe helyezéséhez. Itt megtalálhatja a kimenetet is.

Screenshot of the Azure portal showing the output selection in the left menu.