Dela via


Kapslade mallar i DevTest Labs-miljöer

En Azure DevTest Labs-miljö består av flera virtuella IaaS-datorer (infrastructure-as-a-service) med PaaS-resurser (platform-as-a-service) installerade. Du kan etablera och distribuera DevTest Labs-miljöer med hjälp av ARM-mallar (Azure Resource Manager).

Om du vill distribuera komplexa lösningar som miljöer kan du dela upp en mall i sekundära mallar och distribuera dessa mallar via en huvudmall. Den här artikeln beskriver hur du använder kapslade mallar för att distribuera en DevTest Labs-miljö. Genom att använda en uppsättning målinriktade, syftesspecifika mallar för att distribuera en miljö främjas testning, återanvändning och läsbarhet.

Allmän information om kapslade mallar, inklusive kodexempel, finns i Använda länkade och kapslade mallar när du distribuerar Azure-resurser.

Kommentar

Om du behöver hantera PaaS-resurser, principer och säkerhetsinställningar för hela företaget eller CI/CD-integrering mellan distributionsfaser och program kan du överväga att använda Azure Deployment Environments (ADE) för att skapa miljöer. Med ADE kan utvecklare snabbt distribuera appinfrastruktur med hjälp av projektbaserade mallar, vilket säkerställer konsekventa och säkra miljöer för dina utvecklingsteam. Mer information finns i dokumentationen om Azure Deployment Environments.

En kapslad mallutplacering

I DevTest Labs kan du lagra ARM-mallar på en Git-lagringsplats som är länkad till ett labb. När du använder lagringsplatsmallar för att skapa en miljö kopierar DevTest Labs alla mall- och artefaktfiler, inklusive kapslade mallfiler, till labbets Azure Storage-container.

Den huvudsakliga azuredeploy.json mallfilen för en kapslad malldistribution använder Microsoft.Resources/deployments objekt för att anropa länkade sekundära mallar. Du anger URI-värden för de länkade mallarna och genererar en SaS-token (Signatur för delad åtkomst) för distributionen.

Distributionen använder Azure PowerShell New-AzResourceGroupDeployment eller Azure CLI az deployment group createoch anger huvudmallens URI och SaS-token. Mer information finns i Självstudie: Distribuera en länkad mall.

Exempel på kapslad mall

I följande exempel azuredeploy.json huvudmallfil visas koden för en kapslad distribution. Huvudmallfilen definierar länkar till den kapslade mallen.

Länk-URI:n för den sekundära mallen sammanfogar artefakternas plats, den kapslade mallmappen, filnamnet för den kapslade mallen och platsen för den delade åtkomstsignaturens (SAS) token. URI:n för den sekundära parameterfilen använder artefaktplatsen, den kapslade mallmappen, kapslade parameterfilnamn och artefakternas SaS-tokenplats.


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