Sdílet prostřednictvím


Nasazení prostředí DevTest Labs pomocí vnořených šablon

Vnořené nasazení spouští sekundární šablony Azure Resource Manageru (ARM) z hlavní šablony. Tento článek ukazuje příklad vnoření šablon pro nasazení prostředí Azure DevTest Labs. Prostředí DevTest Labs obsahují několik virtuálních počítačů IaaS (infrastruktura jako služba) s nainstalovanými prostředky paaS (platforma jako služba). Prostředky a virtuální počítače PaaS můžete zřídit pomocí šablon ARM.

Rozdělení nasazení do sady cílených šablon pro konkrétní účel poskytuje výhody testování, opakovaného použití a čitelnosti. Obecné informace o vnořených šablonách, včetně ukázek kódu, najdete v tématu Použití propojených a vnořených šablon při nasazování prostředků Azure.

Poznámka:

Prostředí nasazení Azure (ADE) se důrazně doporučuje pro vytváření prostředí. ADE umožňuje vývojářům rychle nasadit infrastrukturu aplikací pomocí šablon založených na projektu a zajistit konzistentní a zabezpečená prostředí pro vývojové týmy.

Další informace o prostředích nasazení Azure najdete v dokumentaci k prostředím nasazení Azure.

Nasazení vnořených šablon pomocí sady Visual Studio

Šablona projektu skupiny prostředků Azure v sadě Visual Studio usnadňuje vývoj a ladění šablon ARM. Když do hlavního souboru šablony azuredeploy.json přidáte vnořenou šablonu, Visual Studio přidá následující položky, aby byla šablona flexibilnější:

  • Podsložka se sekundární šablonou a soubory parametrů
  • Názvy proměnných v hlavním souboru šablony
  • Dva klíčové parametry _artifactsLocation a _artifactsLocationSasToken

V DevTest Labs ukládáte šablony ARM do úložiště Git, které propojit s testovacím prostředím. Když k vytvoření nového prostředí použijete některou z propojených šablon úložiště, nasazení zkopíruje soubory šablony do kontejneru Azure Storage v testovacím prostředí. Když přidáte prostředek vnořené šablony do úložiště a hlavního souboru šablony, Visual Studio identifikuje _artifactsLocation a _artifactsLocationSasToken hodnoty, zkopíruje podsložky do kontejneru úložiště a vloží token umístění a sdíleného přístupového podpisu (SaS) do souborů parametrů.

Struktura složek vnořených šablon

V následujícím příkladu šablony má složka úložiště Git podsložku, vnořené šablony s vnořenými soubory šablon NestOne.json a NestOne.parameters.json. Hlavní soubor šablony azuredeploy.json sestaví identifikátor URI pro sekundární šablony pomocí umístění artefaktů, vnořené složky šablony a vnořeného názvu souboru šablony. Identifikátor URI pro soubor parametrů je umístění artefaktů, vnořená složka šablony a soubor parametrů vnořené šablony. Do primární složky můžete přidat další podsložky vnořené šablony, ale pouze na jedné úrovni vnoření.

Následující snímek obrazovky ukazuje strukturu projektu v sadě Visual Studio:

Snímek obrazovky znázorňující strukturu projektu vnořené šablony v sadě Visual Studio

Příklad vnořeného nasazení

Následující příklad ukazuje hlavní azuredeploy.json soubor šablony ARM pro vnořené nasazení:


"$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": {}

Další kroky