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 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:
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
.