Distribuera DevTest Labs-miljöer med hjälp av kapslade mallar
En kapslad distribution kör sekundära ARM-mallar (Azure Resource Manager) inifrån en huvudmall. Den här artikeln visar ett exempel på kapslingsmallar för att distribuera en Azure DevTest Labs-miljö. DevTest Labs-miljöer innehåller flera virtuella IaaS-datorer (Infrastructure-as-a-Service) med PaaS-resurser (plattform som en tjänst) installerade. Du kan etablera PaaS-resurser och virtuella datorer med hjälp av ARM-mallar.
Att dela upp en distribution i en uppsättning målinriktade, syftesspecifika mallar ger fördelar med 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
Azure Deployment Environments (ADE) rekommenderas starkt för att skapa miljöer. ADE ger utvecklare möjlighet att 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 om Azure Deployment Environments finns i dokumentationen om Azure Deployment Environments.
Distribuera kapslade mallar med Visual Studio
Azure Resource Group-projektmallen i Visual Studio gör det enkelt att utveckla och felsöka ARM-mallar. När du lägger till en kapslad mall i mallfilen main azuredeploy.json lägger Visual Studio till följande objekt för att göra mallen mer flexibel:
- En undermapp med den sekundära mallen och parameterfilerna
- Variabelnamn i huvudmallfilen
- Två nyckelparametrar,
_artifactsLocation
och_artifactsLocationSasToken
I DevTest Labs lagrar du ARM-mallar på en Git-lagringsplats som du länkar till labbet. När du använder en av de länkade lagringsplatsens mallar för att skapa en ny miljö kopierar distributionen mallfilerna till en Azure Storage-container i labbet. När du lägger till en kapslad mallresurs i lagringsplatsen och huvudmallfilen identifierar _artifactsLocation
Visual Studio värdena och _artifactsLocationSasToken
, kopierar undermapparna till lagringscontainern och infogar plats- och SaS-token (Signatur för delad åtkomst) i parameterfilerna.
Mappstruktur för kapslade mallar
I följande mallexempel har Git-lagringsplatsen en undermapp, nestedtemplates, med de kapslade mallfilerna NestOne.json och NestOne.parameters.json. Den azuredeploy.json huvudmallfilen skapar URI:n för de sekundära mallarna med hjälp av artefaktplatsen, den kapslade mallmappen och det kapslade mallfilnamnet. URI:n för parameterfilen är artefaktplatsen, den kapslade mallmappen och den kapslade mallparametrarfilen. Du kan lägga till fler kapslade mallundermappar i den primära mappen, men bara på en kapslingsnivå.
Följande skärmbild visar projektstrukturen i Visual Studio:
Exempel på kapslad distribution
I följande exempel visas huvudfilen azuredeploy.json ARM-mall för den kapslade distributionen:
"$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": {}
Nästa steg
- Mer information om DevTest Labs-miljöer finns i Använda ARM-mallar för att skapa DevTest Labs-miljöer.
- Mer information om hur du använder projektmallen Visual Studio Azure Resource Group, inklusive kodexempel, finns i Skapa och distribuera Azure-resursgrupper via Visual Studio.