Wdrażanie środowisk usługi DevTest Labs przy użyciu szablonów zagnieżdżonych
Wdrożenie zagnieżdżone uruchamia pomocnicze szablony usługi Azure Resource Manager (ARM) z poziomu głównego szablonu. W tym artykule przedstawiono przykład zagnieżdżania szablonów w celu wdrożenia środowiska usługi Azure DevTest Labs. Środowiska usługi DevTest Labs zawierają wiele maszyn wirtualnych typu infrastruktura jako usługa (IaaS) z zainstalowanymi zasobami typu "platforma jako usługa" (PaaS). Zasoby i maszyny wirtualne PaaS można aprowizować przy użyciu szablonów usługi ARM.
Dekompozycja wdrożenia w zestawie docelowych szablonów specyficznych dla celu zapewnia korzyści z testowania, ponownego użycia i czytelności. Aby uzyskać ogólne informacje na temat szablonów zagnieżdżonych, w tym przykładów kodu, zobacz Używanie połączonych i zagnieżdżonych szablonów podczas wdrażania zasobów platformy Azure.
Uwaga
Środowiska wdrażania platformy Azure (ADE) są zdecydowanie zalecane w przypadku tworzenia środowisk. Usługa ADE umożliwia deweloperom szybkie wdrażanie infrastruktury aplikacji przy użyciu szablonów opartych na projekcie, zapewniając spójne i bezpieczne środowiska dla zespołów programistycznych.
Aby dowiedzieć się więcej na temat środowisk wdrażania platformy Azure, zobacz dokumentację środowisk wdrażania platformy Azure.
Wdrażanie zagnieżdżonych szablonów za pomocą programu Visual Studio
Szablon projektu Grupa zasobów platformy Azure w programie Visual Studio ułatwia opracowywanie i debugowanie szablonów usługi ARM. Po dodaniu szablonu zagnieżdżonego do głównego pliku szablonu azuredeploy.json program Visual Studio dodaje następujące elementy, aby szablon był bardziej elastyczny:
- Podfolder z pomocniczym szablonem i plikami parametrów
- Nazwy zmiennych w głównym pliku szablonu
- Dwa kluczowe parametry i
_artifactsLocation
_artifactsLocationSasToken
W usłudze DevTest Labs szablony usługi ARM są przechowywane w repozytorium Git, które łączysz z laboratorium. Gdy używasz jednego z połączonych szablonów repozytorium do utworzenia nowego środowiska, wdrożenie kopiuje pliki szablonów do kontenera usługi Azure Storage w laboratorium. Po dodaniu zagnieżdżonego zasobu szablonu do repozytorium i głównego pliku szablonu program Visual Studio identyfikuje _artifactsLocation
wartości i _artifactsLocationSasToken
, kopiuje podfoldery do kontenera magazynu i wstawia do plików parametrów token lokalizacji i sygnatury dostępu współdzielonego (SaS).
Struktura folderów szablonów zagnieżdżonych
W poniższym przykładzie szablonu folder repozytorium Git ma podfolder, zagnieżdżoneplaty z zagnieżdżonych plików szablonów NestOne.json i NestOne.parameters.json. Główny plik szablonu azuredeploy.json tworzy identyfikator URI szablonów pomocniczych przy użyciu lokalizacji artefaktów, zagnieżdżonego folderu szablonu i zagnieżdżonej nazwy pliku szablonu. Identyfikator URI pliku parametrów to lokalizacja artefaktów, zagnieżdżony folder szablonu i plik parametrów szablonu zagnieżdżonego. Do folderu podstawowego można dodać więcej zagnieżdżonych podfolderów szablonów, ale tylko na jednym poziomie zagnieżdżania.
Poniższy zrzut ekranu przedstawia strukturę projektu w programie Visual Studio:
Przykład wdrożenia zagnieżdżonego
W poniższym przykładzie przedstawiono główny plik szablonu usługi ARM azuredeploy.json dla wdrożenia zagnieżdżonego:
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"_artifactsLocation": {
"type": "string"
},
"_artifactsLocationSasToken": {
"type": "securestring"
}},
"variables": {
"NestOneTemplateFolder": "nestedtemplates",
"NestOneTemplateFileName": "NestOne.json",
"NestOneTemplateParametersFileName": "NestOne.parameters.json"},
"resources": [
{
"name": "NestOne",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2016-09-01",
"dependsOn": [ ],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parametersLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateParametersFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
}
}
}],
"outputs": {}
Następne kroki
- Aby uzyskać więcej informacji o środowiskach usługi DevTest Labs, zobacz Tworzenie środowisk usługi DevTest Labs przy użyciu szablonów usługi ARM.
- Aby uzyskać więcej informacji na temat korzystania z szablonu projektu grupy zasobów platformy Azure programu Visual Studio, w tym przykładów kodu, zobacz Tworzenie i wdrażanie grup zasobów platformy Azure za pomocą programu Visual Studio.