Geneste Azure Resource Manager sjablonen implementeren voor test omgevingenDeploy nested Azure Resource Manager templates for testing environments

Met een geneste implementatie kunt u andere Azure Resource Manager sjablonen uitvoeren vanuit een belang rijke Resource Manager-sjabloon.A nested deployment allows you to execute other Azure Resource Manager templates from within a main Resource Manager template. Hiermee kunt u uw implementatie afbreken in een set doel gerichte en specifieke sjablonen.It enables you to decompose your deployment into a set of targeted and purpose-specific templates. Dit biedt voor delen op het gebied van testen, hergebruik en lees baarheid.It provides benefits in terms of testing, reuse, and readability. Het artikel met gekoppelde sjablonen bij het implementeren van Azure-resources biedt een goed overzicht van deze oplossing met verschillende code voorbeelden.The article Using linked templates when deploying Azure resources provides a good overview of this solution with several code samples. In dit artikel vindt u een voor beeld dat specifiek is voor Azure DevTest Labs.This article provides an example that's specific to Azure DevTest Labs.

Sleutel parametersKey parameters

Hoewel u uw eigen Resource Manager-sjabloon helemaal zelf kunt maken, is het raadzaam om het Azure-resource groep-project in Visual Studio te gebruiken, waarmee u eenvoudig sjablonen voor het ontwikkelen en opsporen van fouten opstelt.While you can create your own Resource Manager template from scratch, we recommend that you use the Azure Resource Group project in Visual Studio, which makes it easy to develop and debug templates. Wanneer u een geneste implementatie resource toevoegt aan azuredeploy.js, voegt Visual Studio verschillende items toe om de sjabloon flexibeler te maken.When you add a nested deployment resource to azuredeploy.json, Visual Studio adds several items to make the template more flexible. Deze items omvatten de submap met de secundaire sjabloon en het parameter bestand, namen van variabelen binnen het hoofd sjabloon bestand en twee para meters voor de opslag locatie voor de nieuwe bestanden.These items include the subfolder with the secondary template and parameters file, variable names within the main template file, and two parameters for the storage location for the new files. De _artifactsLocation en _artifactsLocationSasToken zijn de belangrijkste para meters die door de DevTest Labs worden gebruikt.The _artifactsLocation and _artifactsLocationSasToken are the key parameters that the DevTest Labs uses.

Zie multi-VM-omgevingen en Paas-resources maken met Azure Resource Manager sjablonenals u niet bekend bent met de manier waarop de DevTest Labs met omgevingen werkt.If you aren't familiar with how the DevTest Labs works with environments, see Create multi-VM environments and PaaS resources with Azure Resource Manager templates. Uw sjablonen worden opgeslagen in de opslag plaats die is gekoppeld aan het lab in DevTest Labs.Your templates are stored in the repository linked to the lab in DevTest Labs. Wanneer u een nieuwe omgeving met deze sjablonen maakt, worden de bestanden verplaatst naar een Azure Storage container in het lab.When you create a new environment with those templates, the files are moved into an Azure Storage container in the lab. Om de geneste bestanden te kunnen identificeren en kopiëren, worden in DevTest Labs de _artifactsLocation-en _artifactsLocationSasToken-para meters geïdentificeerd en worden de submappen gekopieerd naar de opslag container.To be able to identify and copy the nested files, DevTest Labs identifies the _artifactsLocation and _artifactsLocationSasToken parameters and copies the subfolders up to the storage container. Vervolgens wordt de locatie en het Shared Access Signature SaS-token automatisch ingevoegd in para meters.Then, it automatically inserts the location and Shared Access Signature (SaS) token into parameters.

Voor beeld van geneste implementatieNested deployment example

Hier volgt een eenvoudig voor beeld van een geneste implementatie:Here is a simple example of a nested deployment:


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

De map in de opslag plaats met deze sjabloon bevat een submap nestedtemplates met de bestanden NestOne.jsop en NestOne.parameters.jsop.The folder in the repository containing this template has a subfolder nestedtemplates with the files NestOne.json and NestOne.parameters.json. In de azuredeploy.jsop wordt URI voor de sjabloon gebouwd op basis van de locatie van de artefacten, de geneste sjabloon, de geneste sjabloon bestands naam.In the azuredeploy.json, URI for the template is built using the artifacts location, nested template folder, nested template file name. Op dezelfde manier wordt URI voor de para meters gebouwd met behulp van de artefacten locatie, geneste sjabloon en het parameter bestand voor de geneste sjabloon.Similarly, URI for the parameters is built using the artifacts location, nested template folder, and parameter file for the nested template.

Dit is de afbeelding van dezelfde project structuur in Visual Studio:Here is the image of the same project structure in Visual Studio:

Project structuur in Visual Studio

U kunt extra mappen toevoegen aan de primaire map, maar niet op één niveau dieper.You can add additional folders in the primary folder but not any deeper than a single level.

Volgende stappenNext steps

Raadpleeg de volgende artikelen voor meer informatie over omgevingen:See the following articles for details about environments: