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 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.
Rozdzielenie wdrożenia na zestaw docelowych szablonów specyficznych dla celu zapewnia korzyści z testowania, ponownego użycia i czytelności. Ogólne informacje na temat szablonów zagnieżdżonych, w tym przykładów kodu, można znaleźć w temacie Using linked and nested templates when deploying Azure resources (Używanie połączonych i zagnieżdżonych szablonów podczas wdrażania zasobów platformy Azure).
Wdrażanie zagnieżdżonych szablonów za pomocą programu Visual Studio
Szablon projektu grupy 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
_artifactsLocation
i_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 pliku głównego szablonu program Visual Studio identyfikuje _artifactsLocation
wartości i _artifactsLocationSasToken
, kopiuje podfoldery do kontenera magazynu i wstawia token lokalizacji i sygnatury dostępu współdzielonego (SaS) do plików parametrów.
Struktura folderów szablonu zagnieżdżonego
W poniższym przykładzie szablonu folder repozytorium Git zawiera podfolder, zagnieżdżone elementy z zagnieżdżonymi plikami 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 na temat środowisk 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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla