Övning – Distribuera ARM-mallar
Kommentar
Första gången du aktiverar en sandbox-miljö och accepterar villkoren, associeras ditt Microsoft-konto med en ny Azure-katalog med namnet Microsoft Learn Sandbox. Du läggs till i en särskild prenumeration med namnet Concierge Subscription.
Här distribuerar du en Azure Resource Manager-mall (ARM) från datorn och från en GitHub-lagringsplats genom att ange en URI.
Viktigt!
I den här övningen använder vi Azure Resource Manager Tools for Visual Studio Code. Installera tillägget i Visual Studio Code.
Konfigurera din miljö med sandbox-prenumerationen för Microsoft Learn
För att kunna utföra varje distribution i den här lektionen måste du logga in på ditt Azure-konto från Visual Studio Code-terminalen.
Se till att du loggar in till samma konto där sandbox-miljön aktiverades.
Logga in på Azure
Logga in i Azure genom att köra följande kommando från terminalen i Visual Studio Code. När du kör det här kommandot öppnas en webbläsare som gör att du kan logga in på ditt konto.
Connect-AzAccount
När du har loggat in visas en lista över de prenumerationer som är kopplade till kontot i terminalen. Om du har aktiverat sandbox-miljön ska Concierge-prenumerationen ingå i den här listan.
Verifiera prenumerationsnamnet. Följande kommando visar dina prenumerationer, namn och deras ID:n i ett lättläst tabellformat. Leta
Concierge Subscription
efter .Get-AzSubscription
Ändra din aktiva prenumeration till Concierge Subscription.
$context = Get-AzSubscription -SubscriptionName "Concierge Subscription" | Set-AzContext
Ange standardresursgruppen
Du måste ange resursgruppen som skapades åt dig i sandbox-miljön som standardresursgrupp. För att utföra den åtgärden måste du först hämta resursgruppens namn genom att köra följande kommando.
Get-AzResourceGroup | where-object ResourceGroupName -match "learn" | Set-AzDefault
I det här kommandot använder du det resursnamn som du fick från föregående kommando. (Det ser ut ungefär som learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Med det här kommandot kan du utelämna parametern från resten av Azure PowerShell-kommandona i den här övningen.
Kommentar
När du kör ett PowerShell- eller Azure CLI-kommando för att distribuera en mall måste du normalt ange namnet på målresursgruppen. När vi kör föregående kommando har vi angett kontexten för vår distribution. Vi har angett vårt resursgruppsnamn för sandbox-miljön genom att köra Kommandot Set-AzDefault PowerShell:
Set-AzDefault -ResourceGroupName {Resource Group Name}
Distribuera en lokal mall
I följande övning distribuerar du en mall från den lokala datorn. Namnet på resursgruppen som du vanligtvis använder när du distribuerar i din egen miljö behövs inte här eftersom vi redan har definierat standardresursgruppen i föregående avsnitt.
Börja med att kopiera och klistra in innehållet i följande mallkod i en fil i en lokal katalog. Använd till exempel
C:\JSON\maintemplate.json
.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
När du har sparat filen lokalt kan du använda PowerShell-kommandot för att distribuera den på resursgruppsnivå som vi pratade om i den senaste lektionen. Använd nämligen kommandot New-AzResourceGroupDeployment.
$templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile
När det är klart bör du ha resultat som det här exemplet.
DeploymentName : DeployLocalTemplate-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:50:04 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Distribuera samma lokala mall med parametervärden
I den senaste övningen distribuerade du din mall med parameterns standardvärde. När du distribuerar en lokal ARM-mall kanske du behöver skicka parametervärden. Du kan använda antingen infogade parametrar eller en parameterfil.
Om du vill skicka infogade parametrar till din distribution måste du ange namnet på parametern med cmdleten New-AzResourceGroupDeployment
. I nästa övning kommer du att skicka parametrarna som infogade parametrar och som en parameterfil.
Genom att använda samma mall som den senaste övningen skapar du en hash-tabell som innehåller värdena för de mallparametrar som krävs.
$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-2-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile ` -TemplateParameterObject $parameters
När det är klart ska resultatet se ut ungefär så här:
DeploymentName : DeployLocalTemplate-2-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:51:55 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
I stället för att skicka parametrar som infogade värden i skriptet, kan det vara lättare att använda en JSON-fil som innehåller parametervärdena. Parameterfilen kan vara en lokal fil eller en extern fil eller fjärrfil med en tillgänglig URI. Mer information om parameterfilen finns i Skapa en parameterfil för Resource Manager.
För att skicka en lokal parameterfil använder vi parametern
TemplateParameterFile
i samma kommando som vi har använt tidigare. Men du måste först skapa och spara parameterfilen.Eftersom vi använder Visual Studio Code med Azure Resource Manager Tools-tillägget kan du öppna ARM-mallen som du sparade lokalt och välja länken Välj/skapa parameterfil... .
Välj Nytt på menyn och välj sedan Endast obligatoriska parametrar. Tillägget skapar en parameterfil baserat på den mall som för närvarande öppnas.
Använd följande PowerShell-kommando med parametern
TemplateParameterFile
.$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $templateFile="C:\JSON\maintemplate.json" $TemplateParameterFile= "C:\JSON\maintemplate.parameters.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-3-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile ` -TemplateParameterFile $TemplateParameterFile
Efter distributionen bör resultatet se ut som i följande exempel.
DeploymentName : DeployLocalTemplate-3-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:54:40 p.m. Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vnetName String VNet-001 costCenterIO String 12345 ownerName String John Smith Outputs : DeploymentDebugLogLevel :
Distribuera en extern eller fjärransluten mall
I vissa fall måste du distribuera från en extern plats i stället för från en mall på den lokala datorn. Du kan lagra mallar på en lagringsplats för versionskontroll (till exempel GitHub). Eller så kan du lagra dem i ett Azure Storage-konto för delad åtkomst i din organisation.
Om du vill distribuera en extern mall använder du parametern
TemplateUri
.I nästa övning ska du distribuera en ARM-mall från en GitHub-lagringsplats. Lagringsplatsen är offentlig, så du behöver inte bekymra dig om att distribuera en mall som kräver en SAS-token (signatur för delad åtkomst). Mer information om hur du använder en privat eller säker fjärrplats finns i Distribuera en privat mall med SAS-token.
Mall-URI:n för övningen är https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Det är en kort mall som distribuerar ett grundläggande lagringskonto i sandbox-miljön.
PowerShell-kommandot är exakt detsamma som för en lokal mall. Den enda skillnaden är att parametern
-TemplateUri
ersätter parametern-TemplateFile
.Använd följande kod för att distribuera i sandbox-miljön:
$parameters = @{vnetName = "VNet-001"; costCenterIO = "12345"; ownerName = "John Smith"} $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-4-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Resultatet liknar följande skärmdump. Det visar information om mallens plats.
DeploymentName : DeployLocalTemplate-4-08-24-2020 ResourceGroupName : learn-03f041a7-cd17-4f50-9c81-5f6678feb217 ProvisioningState : Succeeded Timestamp : 2020-08-24 5:56:55 p.m. Mode : Incremental TemplateLink : Uri : https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json ContentVersion : 1.0.0.0 Parameters : Name Type Value ==================== ========================= ========== storageAccountType String Standard_LRS location String westus Outputs : Name Type Value ==================== ========================= ========== storageAccountName String storepgxosadmbq77e DeploymentDebugLogLevel :
Kommentar
Det här avsnittet har skrivits med Azure CLI-kommandon i Windows-undersystem för Linux (WSL2) på Windows 10. Kommandona är desamma oavsett om du använder Azure CLI i PowerShell, CMD eller Bash Shell. Men sättet att adressera variablerna kan skilja sig åt.
Logga in på Azure
Logga in i Azure genom att köra följande kommando från terminalen i Visual Studio Code. När du kör det här kommandot öppnas en webbläsare som gör att du kan logga in på ditt konto.
az login
När du har loggat in visas en JSON-lista över de prenumerationer som är kopplade till kontot i terminalen. Om du har aktiverat sandbox-miljön ska Concierge-prenumerationen ingå i den här listan.
Skaffa prenumerations-ID:t. Följande kommando visar dina prenumerationer och deras ID:n. Prenumerations-ID:t är den tredje kolumnen. Leta efter
Concierge Subscription
och kopiera den tredje kolumnen. Den bör se ut ungefär såhäraaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.az account list -o table
Ändra din aktiva prenumeration till Concierge Subscription. Kom ihåg att ersätta
{Your subscription ID}
(Ditt prenumerations-ID) med ID för den Concierge-prenumeration som du hämtade med det föregående kommandot.az account set -s {Your subscription ID}
Ange standardresursgruppen
Du måste ange resursgruppen som skapades åt dig i sandbox-miljön som standardresursgrupp. För att kunna utföra den här åtgärden måste du först hämta resursgruppens namn med följande kommando:
az group list -o table
I det här kommandot använder du det resursnamn som du fick från föregående kommando. (Det ser ut ungefär som learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Med det här kommandot kan du utelämna parametern från resten av Azure CLI-kommandona i den här övningen.
Kommentar
När du använder ett Azure CLI-kommando till att distribuera en mall måste du vanligtvis ange namnet på målresursgruppen. I övningarna i den här modulen åsidosätter vi det här kravet genom att ställa in kontexten för distributionen. Vi anger namnet på sandbox-resursgruppen i nästa steg med hjälp av Azure CLI-kommandot az configure.
az configure --defaults group={Resource Group Name}
Distribuera en lokal mall
I följande övning distribuerar du en mall från den lokala datorn. Namnet på resursgruppen som du vanligtvis använder när du distribuerar i din egen miljö behövs inte här eftersom vi redan har definierat standardresursgruppen i föregående avsnitt.
Börja med att kopiera och klistra in innehållet i följande mallkod i en fil i en lokal katalog. Använd till exempel
C:\JSON\maintemplate.json
eller/mnt/c/Users/you/json/maintemplate.json
.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "VnetName": { "type": "string", "defaultValue": "VNet-001", "metadata": { "description": "Virtual Network Name" } }, "CostCenterIO": { "type": "string", "defaultValue": "12345", "metadata": { "description": "Cost Center IO number for cross billing" } }, "OwnerName": { "type": "string", "defaultValue": "John Smith", "metadata": { "description": "Name of the stakeholder responsible for this resource" } } }, "variables": {}, "resources": [ { "apiVersion": "2018-10-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('VnetName')]", "location": "[resourceGroup().location]", "tags": { "CostCenter": "[parameters('CostCenterIO')]", "Owner": "[parameters('OwnerName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
När du har sparat filen lokalt kan du använda Azure CLI-kommandot för att distribuera den på resursgruppsnivå som vi pratade om i den senaste lektionen. Det vill säga använd az deployment group create.
Kommentar
I följande exempel finns mallfilen i en json-mapp på arbetsenheten i Windows-undersystem för Linux (WSL2). Justera kommandot beroende på vilket gränssnitt du använder.
templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile
När den har slutförts bör de resulterande utdata se ut som i följande exempel. Kontrollera att distributionen har lyckats genom att granska raden
"provisioningState": "Succeeded"
.{ "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2020-08-19", "location": null, "name": "DeployLocalTemplate-2020-08-19", "properties": { "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd", "debugSetting": null, "dependencies": [], "duration": "PT8.9060761S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T14:47:06.403362+00:00", "validatedResources": null }, "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tags": null, "type": "Microsoft.Resources/deployments" }
Distribuera samma lokala mall med parametervärden
I den senaste övningen distribuerade du din mall med parameterns standardvärde. När du distribuerar en lokal ARM-mall kanske du behöver skicka parametervärden. Du kan använda antingen infogade parametrar eller en parameterfil.
I nästa övning skickar du infogade parametrar till distributionen. Du måste ange namnen på parametrarna oavsett om du använder infogade parametrar eller en parameterfil med hjälp az deployment group create
av kommandot .
Genom att använda samma mall som den senaste övningen skapar du en variabel som innehåller parametrarna i ett JSON-strängformat för de mallparametrar som krävs.
Kommentar
I följande exempel finns mallfilen i en json-mapp i Windows-undersystem för Linux (WSL2). Justera kommandot beroende på vilket gränssnitt och operativsystem du använder.
parameters="{\"vnetName\":{\"value\":\"VNet-001\"},\"costCenterIO\":{\"value\":\"12345\"},\"ownerName\":{\"value\":\"John Smith\"}}" templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-2-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile \ --parameters "$parameters"
När det är klart bör ditt resultat se ut som följande exempel. Se avsnittet och
"provisioningState"
värdet för att säkerställa att kommandot lyckades"parameters"
.{- Finished .. "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Resources/deployments/DeployLocalTemplate-2-2020-08-19", "location": null, "name": "DeployLocalTemplate-2-2020-08-19", "properties": { "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee", "debugSetting": null, "dependencies": [], "duration": "PT4.6990388S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T16:40:20.249786+00:00", "validatedResources": null }, "resourceGroup": "learn-cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a", "tags": null, "type": "Microsoft.Resources/deployments" }
I stället för att skicka parametrar som infogade värden i skriptet, kan det vara lättare att använda en JSON-fil som innehåller parametervärdena. Parameterfilen kan vara en lokal fil eller en extern fil eller fjärrfil med en tillgänglig URI. Mer information om parameterfilen finns i Skapa en parameterfil för Resource Manager.
För att skicka en lokal parameterfil använder vi parametern
--parameters
i samma kommando som vi har använt tidigare. Men du måste först skapa och spara parameterfilen.Eftersom vi använder Visual Studio Code med Azure Resource Manager Tools-tillägget kan du öppna ARM-mallen som du sparade lokalt och välja länken Välj eller skapa en parameterfil för att aktivera fullständig validering .
Välj New (Nytt) på menyn. Tillägget skapar en parameterfil baserat på den mall som för närvarande öppnas.
Använd följande Azure CLI-kommando med parametern
--parameters
.Kommentar
I följande exempel finns mallfilen i en json-mapp i Windows-undersystem för Linux (WSL2). Justera kommandot beroende på vilket gränssnitt och operativsystem du använder.
templateFile=/mnt/c/Users/<UserName>/json/maintemplate.json templateparameterfile=/mnt/c/Users/<UserName>/json/maintemplate.parameters.json today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-3-"$today az deployment group create \ --name $deploymentname \ --template-file $templateFile \ --parameters $templateparameterfile
Efter distributionen ser resultatet ut som i följande exempel.
{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-3-2020-08-19", "location": null, "name": "DeployLocalTemplate-3-2020-08-19", "properties": { "correlationId": "cccc2222-dd33-4444-55ee-666666ffffff", "debugSetting": null, "dependencies": [], "duration": "PT4.2058912S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Network/virtualNetworks/VNet-001", "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b" } ], "outputs": null, "parameters": { "costCenterIO": { "type": "String", "value": "12345" }, "ownerName": { "type": "String", "value": "John Smith" }, "vnetName": { "type": "String", "value": "VNet-001" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "virtualNetworks" } ] } ], "provisioningState": "Succeeded", "templateHash": "11553431046699679955", "templateLink": null, "timestamp": "2020-08-19T20:42:44.069215+00:00", "validatedResources": null }, "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b", "tags": null, "type": "Microsoft.Resources/deployments" }
Distribuera en extern eller fjärransluten mall
I vissa fall måste du distribuera från en extern plats i stället för från en mall på den lokala datorn. Du kan lagra mallar på en lagringsplats för versionskontroll (till exempel GitHub). Eller så kan du lagra dem i ett Azure Storage-konto för delad åtkomst i din organisation.
- Om du vill distribuera en extern mall använder du parametern
--template-uri
.
I den här övningen distribuerar du en ARM-mall från en GitHub-lagringsplats. Lagringsplatsen är offentlig, så du behöver inte bekymra dig om att distribuera en mall som kräver en SAS-token (signatur för delad åtkomst). Mer information om hur du använder en privat eller säker fjärrplats finns i Distribuera en privat mall med SAS-token.
Mall-URI:n för övningen är https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Det är en kort mall som distribuerar ett grundläggande lagringskonto i sandbox-miljön.
Azure CLI-kommandot är exakt detsamma som för en lokal mall. Den enda skillnaden är att parametern
--template-uri
ersätter parametern--template-file
.Använd följande kod för att distribuera i sandbox-miljön:
parameters="{\"vnetName\":{\"value\":\"VNet-001\"},\"costCenterIO\":{\"value\":\"12345\"},\"ownerName\":{\"value\":\"John Smith\"}}" today=$(date +"%Y-%m-%d") deploymentname="DeployLocalTemplate-4-"$today az deployment group create \ --name $deploymentname \ --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Resultatet liknar följande kodblock. Det visar information om mallens plats i avsnittet
"templateLink"
. De visar också om distributionen lyckas i avsnittet"provisioningState"
.{- Finished .. "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Resources/deployments/DeployLocalTemplate-4-2020-08-19", "location": null, "name": "DeployLocalTemplate-4-2020-08-19", "properties": { "correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa", "debugSetting": null, "dependencies": [], "duration": "PT24.3286124S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b/providers/Microsoft.Storage/storageAccounts/store7zk7eyqew54l4", "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b" } ], "outputs": { "storageAccountName": { "type": "String", "value": "store7zk7eyqew54l4" } }, "parameters": { "location": { "type": "String", "value": "westus" }, "storageAccountType": { "type": "String", "value": "Standard_LRS" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Storage", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiVersions": null, "capabilities": null, "locations": [ "westus" ], "properties": null, "resourceType": "storageAccounts" } ] } ], "provisioningState": "Succeeded", "templateHash": "12600309984865991765", "templateLink": { "contentVersion": "1.0.0.0", "id": null, "relativePath": null, "uri": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json" }, "timestamp": "2020-08-19T20:53:36.759312+00:00", "validatedResources": null }, "resourceGroup": "learn-dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b", "tags": null, "type": "Microsoft.Resources/deployments" }