Wdrażanie specyfikacji szablonu

Ukończone

Po utworzeniu i opublikowaniu specyfikacji szablonu można go wdrożyć. W tej lekcji poznasz sposoby wdrażania specyfikacji szablonu.

Tworzenie wdrożenia przy użyciu specyfikacji szablonu

Aby wdrożyć specyfikację szablonu w grupie zasobów, należy użyć tego samego New-AzResourceGroupDeployment polecenia cmdlet, które znasz. Zamiast określać plik szablonu, należy określić identyfikator zasobu specyfikacji szablonu, jak pokazano w tym przykładzie:

New-AzResourceGroupDeployment `
  -TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'

Mimo że specyfikacje szablonu muszą być tworzone w grupie zasobów, można je wdrożyć w subskrypcjach, grupach zarządzania, a nawet dzierżawach przy użyciu następujących poleceń cmdlet:

Aby wdrożyć w tym zakresie: Użyj tego polecenia cmdlet programu PowerShell:
Grupa zasobów New-AzResourceGroupDeployment
Subskrypcja New-AzSubscriptionDeployment
Grupa zarządzania New-AzManagementGroupDeployment
Dzierżawa New-AzTenantDeployment

Każde z tych poleceń cmdlet akceptuje -TemplateSpecId parametr w celu zainicjowania wdrożenia specyfikacji szablonu w jednym z tych zakresów.

Aby wdrożyć specyfikację szablonu w grupie zasobów, użyj tego samego az deployment group create polecenia, które znasz. Zamiast określać plik szablonu, należy określić identyfikator zasobu specyfikacji szablonu, jak pokazano w tym przykładzie:

az deployment group create \
  --template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"

Mimo że specyfikacje szablonu muszą być tworzone w grupie zasobów, można je wdrożyć w subskrypcjach, grupach zarządzania, a nawet dzierżawach przy użyciu następujących poleceń:

Aby wdrożyć w tym zakresie: Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure:
Grupa zasobów az deployment group create
Subskrypcja az deployment sub create
Grupa zarządzania az deployment mg create
Dzierżawa az deployment tenant create

Każde z tych poleceń akceptuje --template-spec argument inicjowania wdrożenia specyfikacji szablonu w jednym z tych zakresów.

Używanie specyfikacji szablonu jako połączonego wdrożenia

Aby użyć specyfikacji szablonu z poziomu innego szablonu usługi Azure Resource Manager (szablon usługi ARM), należy utworzyć wdrożenie, które używa tej specyfikacji szablonu. Ten typ wdrożenia jest nazywany połączonym wdrożeniem, ponieważ łączysz się z szablonem wdrożenia określonym zewnętrznie.

Na platformie Azure wdrożenie to zasób, który ma typ Microsoft.Resources/deploymentszasobu . Podczas wdrażania szablonu usługi ARM tworzysz zasób wdrożenia. Ta sama koncepcja ma zastosowanie podczas wdrażania specyfikacji szablonu, w następujący sposób:

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "createStorage",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
    }
  }
}

Jeśli masz parametry do udostępnienia wdrożenia specyfikacji szablonu, użyj parameters właściwości :

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "createStorage",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
    },
    "parameters": {
      "storageAccountName": {
        "value": "[parameters('storageAccountName')]"
      }
    }
  }
}

Używanie specyfikacji szablonu jako modułu Bicep

Specyfikację szablonu można użyć jako modułu w pliku Bicep:

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
}

Zwróć uwagę, że ścieżka modułu używa specjalnego formatu:

Diagram showing the components of the template spec path.

Istnieją trzy składniki ścieżki modułu oddzielone dwukropkiem (:) znakiem:

  • Schemat: Bicep obsługuje kilka typów modułów, które są nazywane schematami. W przypadku użycia specyfikacji szablonu jako modułu należy użyć ts jako schematu.
  • Identyfikator subskrypcji, nazwa grupy zasobów i nazwa specyfikacji szablonu: te wartości powinny określać lokalizację wcześniej opublikowanego zasobu specyfikacji szablonu. Użyj ukośników (/), aby oddzielić identyfikator subskrypcji, nazwę grupy zasobów i nazwę specyfikacji szablonu. Ta sekcja ścieżki modułu nie jest pełnym identyfikatorem zasobu specyfikacji szablonu — jest to tylko kilka składników identyfikatora zasobu.
  • Wersja: należy uwzględnić wersję specyfikacji szablonu.

Uwaga

Nie można używać zmiennych, parametrów ani interpolacji ciągów podczas określania ścieżki do modułu. Pełna ścieżka specyfikacji szablonu musi zostać zapisana w pliku Bicep.

Jeśli masz parametry do podania specyfikacji szablonu, użyj params właściwości :

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
  params: {
    storageAccountName: storageAccountName
  }
}

Plik specyfikacji szablonu jest pobierany i kopiowany (transpilowany) do szablonu usługi ARM w formacie JSON podczas tworzenia pliku Bicep. Zwykle ta operacja odbywa się podczas wdrażania pliku Bicep, ale można również użyć narzędzia Bicep do jawnego transpilowania, uruchamiając bicep build polecenie .