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 polecenia cmdlet New-AzResourceGroupDeployment, 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żawca New-AzTenantDeployment

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

Aby wdrożyć specyfikację szablonu w grupie zasobów, należy użyć tego samego polecenia az deployment group create, 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żenie w tym zakresie było możliwe: Uruchom następujące polecenie Azure CLI:
Grupa zasobów az deployment group create
Subskrypcja az deployment sub create
Grupa zarządzania az deployment mg create
Najemca az deployment tenant create

Każde z tych poleceń akceptuje argument --template-spec, aby zainicjować wdrożenie 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 określonym zewnętrznie szablonem wdrożenia.

Na platformie Azure wdrożenie to zasób, który ma typ zasobu Microsoft.Resources/deployments. 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 przekazania podczas wdrażania specyfikacji szablonu, należy użyć właściwości parameters:

{
  "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 przedstawiający składniki ścieżki specyfikacji szablonu.

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

  • Scheme: Bicep obsługuje kilka typów modułów, które są nazywane schematami . W przypadku używania 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żywasz kresek ukośnych (/), 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.

Notatka

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, należy użyć właściwości params:

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 ARM w formacie JSON podczas budowania 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 polecenie bicep build.