Cvičení – nasazení šablon ARM
Poznámka:
Při první aktivaci sandboxu a přijetí podmínek se váš účet Microsoft přidruží k novému adresáři Azure s názvem Microsoft Learn Sandbox. Vy se zařadíte do speciálního předplatného s názvem Concierge.
Zde nasadíte šablonu Azure Resource Manageru (ARM) z počítače a z úložiště GitHubu tím, že zadáte identifikátor URI.
Důležité
V tomto cvičení se používá rozšíření Azure Resource Manager Tools pro Visual Studio Code. Nezapomeňte toto rozšíření do Visual Studio Codu nainstalovat.
Nastavení prostředí s použitím předplatného Microsoft Learn Sandbox
Pokud chcete nasazovat prostředky všemi způsoby uvedenými v této lekci, musíte se v terminálu editoru Visual Studio Code přihlásit ke svému účtu Azure.
Ujistěte se, že se přihlašujete ke stejnému účtu, který aktivoval sandbox.
Přihlášení k Azure
V terminálu ve Visual Studio Codu se spuštěním následujícího příkazu přihlaste k Azure. Spuštěním tohoto příkazu otevřete prohlížeč, který vám umožní přihlásit se ke svému účtu.
Connect-AzAccount
Po přihlášení se v terminálu zobrazí seznam předplatných přidružených k tomuto účtu. Pokud jste aktivovali sandbox, mělo by v tomto seznamu být předplatné Concierge.
Ověřte název předplatného. Následující příkaz zobrazí seznam předplatných, názvů a jejich ID ve snadno čitelné tabulkovém formátu.
Concierge Subscription
Hledejte .Get-AzSubscription
Změňte svoje aktivní předplatné na Concierge Subscription.
$context = Get-AzSubscription -SubscriptionName "Concierge Subscription" | Set-AzContext
Nastavení výchozí skupiny prostředků
Teď musíte nastavit skupinu prostředků vytvořenou pro vás v sandboxu jako výchozí skupinu prostředků. Pokud chcete tuto operaci provést, musíte nejprve získat název skupiny prostředků spuštěním následujícího příkazu.
Get-AzResourceGroup | where-object ResourceGroupName -match "learn" | Set-AzDefault
V tomto příkazu použijte název prostředku, který jste získali z předchozího příkazu. (Vypadá to nějak takto learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Tento příkaz umožňuje vynechat tento parametr ze zbývajících příkazů Azure PowerShellu v tomto cvičení.
Poznámka:
Obvykle při spuštění příkazu PowerShellu nebo Azure CLI pro nasazení šablony musíte zadat název cílové skupiny prostředků. Spuštěním předchozího příkazu jsme nastavili kontext našeho nasazení. Název skupiny prostředků sandboxu jsme zadali spuštěním příkazu Set-AzDefault PowerShellu:
Set-AzDefault -ResourceGroupName {Resource Group Name}
Nasazení místní šablony
V následujícím cvičení nasadíte šablonu z místního počítače. Název skupiny prostředků, který normálně používáte při nasazení ve vlastním prostředí, zde není potřeba, protože výchozí skupinu prostředků jsme už definovali v předchozí části.
Začněte tím, že zkopírujete obsah následující šablony a vložíte ho do nějakého souboru v místním adresáři. Použijte například
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" } } ] } } ] }
Jakmile soubor uložíte místně, můžete ho pomocí příkazu PowerShellu nasadit na úrovni skupiny prostředků, o které jsme mluvili v poslední lekci. Konkrétně použijte příkaz New-AzResourceGroupDeployment .
$templateFile="C:\JSON\maintemplate.json" $today=Get-Date -Format "MM-dd-yyyy" $DeploymentName="DeployLocalTemplate-"+"$today" New-AzResourceGroupDeployment ` -Name $DeploymentName ` -TemplateFile $templateFile
Po dokončení by měly být výsledky podobné tomuto příkladu.
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 :
Nasazení stejné místní šablony s použitím hodnot parametrů
V posledním cvičení jste šablonu nasadili pomocí výchozí hodnoty parametru. Při nasazování místní šablony ARM můžete potřebovat předat hodnoty parametrů. Můžete použít buď vložené parametry, nebo soubor parametrů.
Pokud chcete nasazení předat vložené parametry, potřebujete předat názvy parametrů příkazem New-AzResourceGroupDeployment
. V dalším cvičení předáte tyto parametry ve formě vložených parametrů a souboru parametrů.
Pomocí stejné šablony jako v posledním cvičení vytvořte tabulku hash, která obsahuje hodnoty požadovaných parametrů šablony.
$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
Po jeho dokončení byste měli dostat podobné výsledky:
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 :
Místo předání parametrů ve formě hodnot vložených do skriptu může být jednodušší použít soubor JSON, který obsahuje hodnoty parametrů. Souborem parametrů může být místní soubor nebo externí/vzdálený soubor s přístupovým identifikátorem URI. Další informace o souboru parametrů najdete v tématu Vytvoření souboru parametrů Resource Manageru.
K předání místního souboru parametrů použijeme parametr
TemplateParameterFile
ve stejném příkazu jako předtím. Ale napřed potřebujete vytvořit soubor parametrů a uložit ho.Vzhledem k tomu, že používáme Visual Studio Code s rozšířením Azure Resource Manager Tools, můžete otevřít šablonu ARM, kterou jste uložili místně, a vybrat odkaz Vybrat/vytvořit soubor parametrů...
V nabídce vyberte Nový a pak vyberte Pouze požadované parametry. Přípona vytvoří soubor parametrů na základě aktuálně otevřené šablony.
Použijte následující příkaz PowerShellu s parametrem
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
Po nasazení by výsledky měly vypadat jako v následujícím příkladu.
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 :
Nasazení externí nebo vzdálené šablony
V některých případech potřebujete prostředky nasadit z externího nebo vzdáleného umístění místo z šablony v místním počítači. Šablony můžete uložit do úložiště pro správu zdrojového kódu (jako je GitHub). Nebo je můžete uložit do účtu úložiště v Azure, abyste k nim mohli v organizaci sdílet přístup.
K nasazení externí šablony použijte parametr
TemplateUri
.V dalším cvičení nasadíte šablonu ARM z úložiště GitHubu. Toto úložiště je veřejné, takže si nemusíte dělat starosti ohledně nasazení šablony, která vyžaduje token SAS (sdílený přístupový podpis). Podrobnosti o používání privátního nebo zabezpečeného vzdáleného umístění najdete v článku Nasazení privátní šablony pomocí tokenu SAS.
Identifikátor URI šablony pro toto cvičení je https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Jedná se o krátkou šablonu, která ve vašem sandboxovém prostředí nasadí základní účet úložiště.
Powershellový příkaz je zcela shodný jako při použití místní šablony. Jediný rozdíl spočívá v tom, že parametr
-TemplateFile
je nahrazen parametrem-TemplateUri
.K nasazení do zadaného sandboxu použijte následující kód:
$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
Výsledky jsou podobné následujícímu snímku obrazovky. Podrobně popisují umístění šablony.
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 :
Poznámka:
K napsání této části byly použity příkazy Azure CLI v subsystému Windows Linux (WSL2) ve Windows 10. Příkazy jsou stejné bez ohledu na to, jestli používáte Azure CLI v PowerShellu, příkazovém řádku nebo v prostředí Bash. Může se ale lišit způsob adresování proměnných.
Přihlášení k Azure
V terminálu ve Visual Studio Codu se spuštěním následujícího příkazu přihlaste k Azure. Spuštěním tohoto příkazu otevřete prohlížeč, který vám umožní přihlásit se ke svému účtu.
az login
Po přihlášení se v terminálu zobrazí seznam JSON s předplatnými přidruženými k tomuto účtu. Pokud jste aktivovali sandbox, mělo by v tomto seznamu být předplatné Concierge.
Zjistěte ID předplatného. Následující příkaz zobrazí seznam vašich předplatných a jejich ID. ID předplatného najdete ve třetím sloupci. Hledejte
Concierge Subscription
a zkopírujte třetí sloupec. Měl by vypadat nějak taktoaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.az account list -o table
Změňte svoje aktivní předplatné na Concierge Subscription.
{Your subscription ID}
nahraďte identifikátorem vašeho předplatného Concierge, který jste získali předchozím příkazem.az account set -s {Your subscription ID}
Nastavení výchozí skupiny prostředků
Teď musíte nastavit skupinu prostředků vytvořenou pro vás v sandboxu jako výchozí skupinu prostředků. Abyste tuto operaci mohli provést, potřebujete nejprve následujícím příkazem získat název skupiny prostředků:
az group list -o table
V tomto příkazu použijte název prostředku, který jste získali z předchozího příkazu. (Vypadá nějak takto learn-a73131a1-b618-48b8-af70-21af7ca420c4
.) Tento příkaz umožňuje vynechat tento parametr ze zbývajících příkazů Azure CLI v tomto cvičení.
Poznámka:
Když pomocí příkazu Azure CLI nasazujete šablonu, obvykle musíte zadat název cílové skupiny prostředků. Ve cvičení v tomto modulu obcházíme tento požadavek tím, že nastavíme kontext našeho nasazení. Název sandboxové skupiny prostředků určíme v dalším kroku pomocí příkazu Azure CLI az configure.
az configure --defaults group={Resource Group Name}
Nasazení místní šablony
V následujícím cvičení nasadíte šablonu z místního počítače. Název skupiny prostředků, který normálně používáte při nasazení ve vlastním prostředí, zde není potřeba, protože výchozí skupinu prostředků jsme už definovali v předchozí části.
Začněte tím, že zkopírujete obsah následující šablony a vložíte ho do nějakého souboru v místním adresáři. Použijte například
C:\JSON\maintemplate.json
nebo/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" } } ] } } ] }
Jakmile soubor uložíte místně, můžete ho pomocí příkazu Azure CLI nasadit na úrovni skupiny prostředků, o které jsme mluvili v poslední lekci. Konkrétně použijte příkaz az deployment group create.
Poznámka:
V následujícím příkladu se soubor šablony nachází ve složce json na jednotce home v subsystému Windows Linux (WSL2). Upravte tento příkaz podle toho, jaké prostředí používáte.
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
Po dokončení by výsledný výstup měl vypadat jako v následujícím příkladu. Pokud chcete ověřit, že nasazení bylo úspěšně, najděte řádek
"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" }
Nasazení stejné místní šablony s použitím hodnot parametrů
V posledním cvičení jste šablonu nasadili pomocí výchozí hodnoty parametru. Při nasazování místní šablony ARM můžete potřebovat předat hodnoty parametrů. Můžete použít buď vložené parametry, nebo soubor parametrů.
V dalším cvičení předáte do nasazení vložené parametry. Pomocí příkazu je potřeba zadat názvy parametrů bez ohledu na to, az deployment group create
jestli používáte vložené parametry nebo soubor parametrů.
Pomocí stejné šablony jako v posledním cvičení vytvořte proměnnou, která obsahuje parametry ve formátu řetězce JSON pro požadované parametry šablony.
Poznámka:
V následujícím příkladu se soubor šablony nachází ve složce json v subsystému Windows Linux (WSL2). Upravte tento příkaz podle toho, jaké prostředí a operační systém používáte.
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"
Po jeho dokončení byste měli dostat výsledky podobné následujícímu příkladu. Pokud chcete zajistit, aby byl příkaz úspěšný, přečtěte
"parameters"
si část a"provisioningState"
hodnotu.{- 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" }
Místo předání parametrů ve formě hodnot vložených do skriptu může být jednodušší použít soubor JSON, který obsahuje hodnoty parametrů. Souborem parametrů může být místní soubor nebo externí/vzdálený soubor s přístupovým identifikátorem URI. Další informace o souboru parametrů najdete v tématu Vytvoření souboru parametrů Resource Manageru.
K předání místního souboru parametrů použijeme parametr
--parameters
ve stejném příkazu jako předtím. Ale napřed potřebujete vytvořit soubor parametrů a uložit ho.Vzhledem k tomu, že používáme Visual Studio Code s rozšířením Azure Resource Manager Tools, můžete otevřít šablonu ARM, kterou jste uložili místně, a vybrat nebo vytvořit soubor parametrů, který povolí úplné ověření odkazu.
V nabídce vyberte příkaz New (Nový). Přípona vytvoří soubor parametrů na základě aktuálně otevřené šablony.
Použijte následující příkaz Azure CLI s parametrem
--parameters
.Poznámka:
V následujícím příkladu se soubor šablony nachází ve složce json v subsystému Windows Linux (WSL2). Upravte tento příkaz podle toho, jaké prostředí a operační systém používáte.
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
Po nasazení vypadají výsledky jako v následujícím příkladu.
{- 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" }
Nasazení externí nebo vzdálené šablony
V některých případech potřebujete prostředky nasadit z externího nebo vzdáleného umístění místo z šablony v místním počítači. Šablony můžete uložit do úložiště pro správu zdrojového kódu (jako je GitHub). Nebo je můžete uložit do účtu úložiště v Azure, abyste k nim mohli v organizaci sdílet přístup.
- K nasazení externí šablony použijte parametr
--template-uri
.
V tomto cvičení nasadíte šablonu ARM z úložiště GitHub. Toto úložiště je veřejné, takže si nemusíte dělat starosti ohledně nasazení šablony, která vyžaduje token SAS (sdílený přístupový podpis). Podrobnosti o používání privátního nebo zabezpečeného vzdáleného umístění najdete v článku Nasazení privátní šablony pomocí tokenu SAS.
Identifikátor URI šablony pro toto cvičení je https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json. Jedná se o krátkou šablonu, která ve vašem sandboxovém prostředí nasadí základní účet úložiště.
Příkaz Azure CLI je zcela shodný jako při použití místní šablony. Jediný rozdíl spočívá v tom, že parametr
--template-file
je nahrazen parametrem--template-uri
.K nasazení do zadaného sandboxu použijte následující kód:
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
Výsledky jsou podobné následujícímu bloku kódu. V sekci
"templateLink"
podrobně popisují umístění šablony. Zobrazí se také, jestli je nasazení v oddílu"provisioningState"
úspěšné.{- 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" }