Obsługa wielu wdrożeń platformy Azure przy użyciu tagów szablonu i plików parametrów usługi Azure Resource Manager

Ukończone

Istnieją dwie funkcje szablonów usługi Azure Resource Manager (ARM), których chcesz użyć podczas wdrażania w więcej niż jednym środowisku platformy Azure. Te funkcje to tagi zasobów i pliki parametrów szablonu usługi ARM.

W miarę dodawania kolejnych zasobów do środowisk szybko okaże się, że potrzebujesz sposobu identyfikowania przeznaczenia tych zasobów. W tym celu zasoby mają atrybut tags:. Podczas wdrażania w kolejnych środowiskach potrzebny jest wydajny sposób śledzenia parametrów wejściowych. Szablony usługi ARM mogą używać plików parametrów do zarządzania parametrami dla poszczególnych środowisk wdrażania.

Co to jest tag zasobu platformy Azure?

Możesz tagować zasoby, aby dodać wartości określające ich przeznaczenie. Możesz na przykład dodać tagi, które wyświetlają listę środowiska i projektu, do którego należy zasób. Możesz też dodać tagi identyfikujące centrum kosztów lub zespół, który jest właścicielem zasobu. Dodaj dowolne wartości, które mają sens w przypadku organizacji.

Wartość tagu jest wyświetlana na stronie przeglądu zasobu platformy Azure i w raportach kosztów.

Jak utworzyć tag zasobu platformy Azure?

Każdy zasób ma atrybut tags:. Do tej pory używaliśmy domyślnego elementu displayName dla tagu konta magazynu:

"tags": {
          "displayName": "[parameters('storageName')]"
        },

Aby ten atrybut był bardziej przydatny, można zdefiniować parametr, który zawiera więcej informacji, a następnie użyć go w atrybucie tags:. Możesz na przykład utworzyć parametr do przechowywania obiektu o nazwie resourceTags:

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

W tym miejscu utworzono obiekt do przechowywania wartości nazwy środowiska i nazwy projektu, ale można zdefiniować dowolne elementy.

Następnie możesz użyć tego parametru dla dowolnego zasobu, który jest przeznaczony dla środowiska deweloperskiego i projektu Inventory; na przykład konto magazynu.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

Co to jest plik parametrów szablonu usługi ARM?

Plik parametrów szablonu usługi ARM zawiera wartości przekazywane do szablonu usługi ARM podczas wykonywania szablonu. Korzystając z pliku parametrów dla każdego środowiska, w którym wdrożono szablon usługi ARM, upewnij się, że poprawne parametry są ustawione dla tego konkretnego środowiska. Umożliwia także obsługę wartości tych parametrów i śledzenie ich historii w kontroli źródła.

Jak używać plików parametrów szablonu usługi ARM?

Pliki parametrów szablonu usługi ARM to pliki JSON, które przechowują wartości parametrów. Na przykład w przypadku parametrów używanych do tej pory w szablonie usługi ARM można utworzyć plik parametrów szablonu w następujący sposób:

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

Następnie można utworzyć plik podobny do tego dla każdego środowiska. Na przykład te pliki mogą być wywoływane azuredeploy.parameters.dev.json i azuredeploy.parameters.prod.json oraz przechowywać różne wartości parametrów.

Aby wdrożyć szablon usługi ARM przy użyciu pliku parametrów, określ ścieżkę do pliku parametrów w poleceniu wdrożenia. W interfejsie wiersza polecenia platformy Azure użyj polecenia --parameters {path to parameter file}. W programie PowerShell użyj polecenia -TemplateParameterFile {path to parameter file}.

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile