Wdrażanie specyfikacji szablonu
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/deployments
zasobu . 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:
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 .