Ćwiczenie — używanie plików parametrów i tagów usługi Azure Resource Manager

Ukończone

W tym ćwiczeniu dodasz tagi, aby ułatwić organizowanie i monitorowanie zasobów platformy Microsoft Azure. Użyjesz także pliku parametrów szablonu usługi Azure Resource Manager (ARM), aby umożliwić stosowanie różnych konfiguracji parametrów w poszczególnych wdrożeniach.

W tym ćwiczeniu używane są narzędzia usługi Azure Resource Manager dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.

Tworzenie tagu w celu śledzenia projektu i środowiska wdrażania zasobów

Najpierw utworzysz parametr, który będzie używany jako tag zasobu w szablonie.

  1. W programie Visual Studio Code w pliku azuredeploy.json umieść kursor po zamykającym nawiasie klamrowym dla parametru storageSKU . Dodaj przecinek i naciśnij klawisz Enter.

  2. Wpisz par. Zostanie wyświetlona lista powiązanych fragmentów kodu.

  3. Wybierz pozycję arm-param. Pamiętaj, że ta czynność spowoduje dodanie ogólnego parametru do szablonu. Wygląda na to, że ten kod:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Zmień wartość parametru parameter1 na resourceTags, a wartość parametru "type": na object. Pamiętaj, że parametry mogą zawierać typy danych string, secureString, int, bool, object, secureObject i array. W podsumowaniu tego modułu znajduje się link do przykładowej składni dla tych typów parametrów.

  5. Dodaj atrybut o nazwie defaultValue: i ustaw wartość { "Environment": "Dev", "Project": "Tutorial"}.

    Blok parametru powinien wyglądać podobnie do następującego kodu:

    "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"
            ]
        },
        "resourceTags": {
        "type": "object",
        "defaultValue": {
            "Environment": "Dev",
            "Project": "Tutorial"
            }
        }
    },
    
  6. Użyj tego parametru do otagowania zasobu konta magazynu. Zmień atrybut tags: w definicji zasobu:

    "tags": "[parameters('resourceTags')]",
    
  7. Plik powinien wyglądać następująco:

    {
        "$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"
                ]
            },
            "resourceTags": {
            "type": "object",
            "defaultValue": {
                "Environment": "Dev",
                "Project": "Tutorial"
            }
        }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": "[parameters('resourceTags')]",
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    
  8. Zapisz plik.

Wdrażanie szablonu usługi ARM ze zaktualizowanymi tagami

  • Wdróż zaktualizowany szablon usługi ARM na platformie Azure. Pamiętaj, aby użyć tego samego parametru storagePrefix co wcześniej.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="updateTags-"$today
    
    az deployment group create \
        --name $DeploymentName \
        --template-file $templateFile \
        --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
    
  • Wdróż zaktualizowany szablon usługi ARM na platformie Azure. Pamiętaj, aby użyć tego samego parametru storagePrefix co wcześniej.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="updateTags-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your storagePrefix} `
      -storageSKU Standard_LRS
    

Sprawdzanie, czy nowe tagi znajdują się we wdrożeniu

  1. Na platformie Azure wybierz grupę zasobów [nazwa grupy zasobów piaskownicy], a następnie wybierz wdrożone konto magazynu.

  2. Zwróć uwagę na tagi Environment : Dev and Project : Tutorial :

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Używanie pliku parametrów

Obecnie przy każdym wdrażaniu tego szablonu należy wypełnić trzy parametry. Każdy użytkownik szablonu może utworzyć plik przechowujący wartości parametrów. W tej części utworzysz plik parametrów do użytku z szablonem.

  1. W programie Visual Studio Code utwórz kolejny plik. Nadaj mu nazwę azuredeploy.parameters.dev.json.

  2. W tym pliku należy dodać wartości parametrów szablonu, które mają być wprowadzane do szablonu środowiska deweloperskiego. Zmień wartość tagu, aby zobaczyć, że wdrożenie powoduje wprowadzenie zmiany. Możesz na przykład zmienić wartość projectName na Learn:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storagePrefix": {
          "value": "{unique-prefix}"
        },
        "storageSKU": {
          "value": "Standard_LRS"
        },
        "resourceTags": {
          "value": {
            "Environment": "Dev",
            "Project": "Learn"
          }
        }
      }
    }
    
  3. Pamiętaj, aby zastąpić ciąg {unique-prefix} własnym unikatowym prefiksem.

  4. Zapisz plik.

Wdrażanie szablonu za pomocą pliku parametrów

W tej sekcji wdrożysz szablon usługi ARM, określając plik parametrów, którego należy użyć.

  1. W terminalu programu Visual Studio Code uruchom następujące polecenia interfejsu wiersza poleceń platformy Azure:

    templateFile="azuredeploy.json"
    devParameterFile="azuredeploy.parameters.dev.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addParameterFile-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters $devParameterFile
    
  2. Sprawdź na platformie Azure, czy wdrożenie przebiegło pomyślnie i czy wartość tagu została zmieniona:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Jako dodatkowe wyzwanie możesz utworzyć plik parametrów dla środowiska produkcyjnego. Uruchamiając polecenie w celu wdrożenia w środowisku produkcyjnym, zmień ścieżkę pliku parametrów.

  1. W terminalu programu Visual Studio Code uruchom następujące polecenia programu Azure PowerShell:

    $templateFile = "azuredeploy.json"
    $parameterFile="azuredeploy.parameters.dev.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addParameterFile-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -TemplateParameterFile $parameterFile
    
  2. Sprawdź na platformie Azure, czy wdrożenie przebiegło pomyślnie i czy wartość tagu została zmieniona:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Jako dodatkowe wyzwanie możesz utworzyć plik parametrów dla środowiska produkcyjnego. Uruchamiając polecenie w celu wdrożenia w środowisku produkcyjnym, zmień ścieżkę pliku parametrów.