Cvičení – vytvoření a nasazení specifikace šablony
Poznámka:
Při prvním aktivaci sandboxu a přijetí podmínek je váš účet Microsoft přidružený k novému adresáři Azure s názvem Microsoft Learn Sandbox. Také jste přidáni do speciálního předplatného s názvem Concierge Subscription.
Váš tým ve vaší společnosti toy už nějakou dobu spolupracuje s Azure a vytvořili jste spoustu šablon, které používáte každý den. Rozhodnete se použít jednu šablonu a vytvořit specifikaci šablony. Začínáte se šablonou, kterou používáte k vytváření účtů služby Azure Cosmos DB.
Váš tým se rozhodl, že pro všechny účty Azure Cosmos DB je potřeba nakonfigurovat průběžné zálohování. Proto chcete zahrnout zálohy do výchozí konfigurace účtů Služby Azure Cosmos DB, které jsou zřízené prostřednictvím specifikace šablony.
V tomto cvičení publikujete šablonu Azure Cosmos DB jako specifikaci šablony.
Během tohoto procesu:
- Vytvořte šablonu, kterou použijete jako specifikaci šablony.
- Aktualizujte šablonu, aby se zajistilo, že jsou parametry snadno pochopitelné a funkční.
- Publikujte specifikaci šablony.
- Pomocí webu Azure Portal ověřte specifikaci šablony.
- Nasaďte specifikaci šablony, která ji otestuje.
- Ověřte nasazení.
V tomto cvičení se používá rozšíření Bicep pro Visual Studio Code. Nezapomeňte toto rozšíření do Visual Studio Codu nainstalovat.
Vytvoření šablony
Začnete jednou ze šablon, které váš tým vytvořil. Šablona nasadí účet služby Azure Cosmos DB a nakonfiguruje ho tak, aby umožňovala průběžné zálohování.
Otevřete Visual Studio Code.
Vytvořte nový soubor s názvem main.bicep.
Uložte prázdný soubor tak, aby Visual Studio Code načítal nástroje Bicep.
Můžete vybrat možnost Uložit jako soubor>nebo vybrat Kombinaci kláves Ctrl+S ve Windows (⌘+S v systému macOS). Nezapomeňte si zapamatovat, kam jste soubor uložili. Můžete například chtít vytvořit složku skriptů , do které ji chcete uložit.
Zkopírujte následující kód do main.bicep:
param location string = resourceGroup().location param cosmosDBAccountName string = 'toy-${uniqueString(resourceGroup().id)}' resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2021-04-15' = { name: cosmosDBAccountName kind: 'GlobalDocumentDB' location: location properties: { consistencyPolicy: { defaultConsistencyLevel: 'Session' } locations: [ { locationName: location failoverPriority: 0 isZoneRedundant: false } ] databaseAccountOfferType: 'Standard' enableAutomaticFailover: false enableMultipleWriteLocations: false backupPolicy: { type: 'Continuous' } } }
Všimněte si, že jste nastavili
backupPolicy
hodnotuContinuous
. Tato hodnota konfiguruje službu Azure Cosmos DB tak, aby průběžně zálohovala vaše data, a ne pravidelně.Uložte soubor.
Otevřete Visual Studio Code.
Vytvořte nový soubor s názvem azuredeploy.json.
Uložte prázdný soubor tak, aby Visual Studio Code načítal nástroje šablony Azure Resource Manageru (šablona ARM).
Můžete vybrat možnost Uložit jako soubor>nebo vybrat Kombinaci kláves Ctrl+S ve Windows (⌘+S v systému macOS). Nezapomeňte si zapamatovat, kam jste soubor uložili. Můžete například chtít vytvořit složku skriptů , do které ji chcete uložit.
Do azuredeploy.json zkopírujte následující kód:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string", "defaultValue": "[resourceGroup().location]" }, "cosmosDBAccountName": { "type": "string", "defaultValue": "[concat('toy-', uniqueString(resourceGroup().id))]" } }, "resources": [ { "type": "Microsoft.DocumentDB/databaseAccounts", "apiVersion": "2021-04-15", "name": "[parameters('cosmosDBAccountName')]", "kind": "GlobalDocumentDB", "location": "[parameters('location')]", "properties": { "consistencyPolicy": { "defaultConsistencyLevel": "Session" }, "locations": [ { "locationName": "[parameters('location')]", "failoverPriority": 0, "isZoneRedundant": false } ], "databaseAccountOfferType": "Standard", "enableAutomaticFailover": false, "enableMultipleWriteLocations": false, "backupPolicy": { "type": "Continuous" } } } ] }
Všimněte si, že jste nastavili
backupPolicy
hodnotuContinuous
. Tato hodnota konfiguruje službu Azure Cosmos DB tak, aby průběžně zálohovala vaše data, a ne pravidelně.Uložte soubor.
Usnadnění porozumění parametrům
Při práci se specifikacemi šablon je důležité zvážit, jak vaši šablonu používají ostatní. Tato kontrola je zvláště důležitá pro parametry, protože jsou hlavním způsobem, jakým ostatní uživatelé pracují s vaším kódem. Parametry v šabloně vašeho týmu nezahrnují popisy ani další rady o tom, jak se mají použít, takže tyto informace sem přidáte.
Aktualizujte definici parametru
location
přidáním popisu:@description('The Azure region into which the Cosmos DB resources should be deployed.') param location string = resourceGroup().location
Aktualizujte definici parametru
cosmosDBAccountName
, aby se přidal popis, a zadejte minimální a maximální délku názvu:@description('The name of the Cosmos DB account. This name must be globally unique, and it must only include lowercase letters, numbers, and hyphens.') @minLength(3) @maxLength(44) param cosmosDBAccountName string = 'toy-${uniqueString(resourceGroup().id)}'
Uložte soubor.
Aktualizujte definici parametru
location
přidáním popisu:"location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The Azure region into which the Cosmos DB resources should be deployed." } },
Aktualizujte definici parametru
cosmosDBAccountName
, aby se přidal popis, a zadejte minimální a maximální délku názvu:"cosmosDBAccountName": { "type": "string", "defaultValue": "[concat('toy-', uniqueString(resourceGroup().id))]", "maxLength": 44, "minLength": 3, "metadata": { "description": "The name of the Cosmos DB account. This name must be globally unique, and it must only include lowercase letters, numbers, and hyphens." } }
Uložte soubor.
Přihlášení k Azure
Pokud chcete tuto šablonu nasadit do Azure, musíte se přihlásit ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure CLI, a nezapomeňte se přihlásit pomocí stejného účtu, který jste použili k aktivaci sandboxu.
V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Pokud je prostředí zobrazené na pravé straně okna terminálu Bash, je otevřené správné prostředí a můžete přejít k další části.
Pokud se zobrazí jiné prostředí než Bash, vyberte šipku rozevíracího seznamu prostředí a pak vyberte Azure Cloud Shell (Bash).
V seznamu terminálových prostředí vyberte Bash.
V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:
cd templates
Instalace Bicep
Spuštěním následujícího příkazu se ujistěte, že máte nejnovější verzi Bicep:
az bicep install && az bicep upgrade
Přihlášení k Azure
V terminálu editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:
az login
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
V terminálu editoru Visual Studio Code se zobrazí seznam předplatných přidružených k tomuto účtu.
Nastavte výchozí předplatné pro všechny příkazy Azure CLI, které spustíte v této relaci.
az account set --subscription "Concierge Subscription"
Poznámka:
Pokud jste nedávno použili více než jeden sandbox, může se v terminálu zobrazit více než jedna instance předplatného Concierge. V tomto případě použijte následující dva kroky k nastavení jednoho jako výchozího předplatného. Pokud předchozí příkaz proběhl úspěšně a zobrazí se jenom jedno předplatné Concierge, přeskočte následující dva kroky.
Získejte ID předplatného Concierge Subscription.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Nastavte výchozí předplatné pomocí ID předplatného. Nahraďte {ID vašeho předplatného} za ID nejnovějšího předplatného Concierge Subscription.
az account set --subscription {your subscription ID}
Nastavení výchozí skupiny prostředků
Když použijete Azure CLI, můžete v tomto cvičení nastavit výchozí skupinu prostředků a vynechat parametr ze zbývajících příkazů Azure CLI. Nastavte výchozí hodnotu na skupinu prostředků, která je pro vás vytvořená v prostředí sandboxu.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Pokud chcete tuto šablonu nasadit do Azure, přihlaste se ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure PowerShell, a přihlaste se ke stejnému účtu, který aktivoval sandbox.
V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Pokud je prostředí zobrazené na pravé straně okna terminálu powershell nebo pwsh, otevře se správné prostředí a můžete přejít k další části.
Pokud se zobrazí jiné prostředí než PowerShell nebo pwsh, vyberte šipku rozevíracího seznamu prostředí a pak vyberte PowerShell.
V seznamu terminálových prostředí vyberte PowerShell nebo pwsh.
V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:
Set-Location -Path templates
Instalace rozhraní příkazového řádku Bicep
Pokud chcete použít Bicep z Azure PowerShellu, nainstalujte rozhraní příkazového řádku Bicep.
Přihlášení k Azure přes Azure PowerShell
V terminálu editoru Visual Studio Code spusťte následující příkaz:
Connect-AzAccount
Otevře se prohlížeč, abyste se mohli přihlásit ke svému účtu Azure.
Po přihlášení k Azure se v terminálu zobrazí seznam předplatných přidružených k tomuto účtu.
Pokud jste aktivovali sandbox, zobrazí se předplatné s názvem Concierge Subscription . Použijte ho pro zbytek cvičení.
Nastavte výchozí předplatné pro všechny příkazy Azure PowerShellu, které spustíte v této relaci.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Poznámka:
Pokud jste nedávno použili více než jeden sandbox, může se v terminálu zobrazit více než jedna instance předplatného Concierge. V tomto případě použijte následující dva kroky k nastavení jednoho jako výchozího předplatného. Pokud předchozí příkaz proběhl úspěšně a zobrazí se jenom jedno předplatné Concierge, přeskočte následující dva kroky.
Zjistěte ID předplatného. Spuštěním následujícího příkazu zobrazíte seznam vašich předplatných a jejich ID.
Concierge Subscription
Vyhledejte a zkopírujte ID z druhého sloupce. Vypadá to jakoaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Změňte své aktivní předplatné na Concierge Subscription. Nezapomeňte nahradit {ID vašeho předplatného} za id, které jste zkopírovali.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Nastavení výchozí skupiny prostředků
Výchozí skupinu prostředků můžete nastavit a vynechat parametr ze zbývajících příkazů Azure PowerShellu v tomto cvičení. Nastavte tuto výchozí hodnotu na skupinu prostředků vytvořenou pro vás v sandboxovém prostředí.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Pokud chcete tuto šablonu nasadit do Azure, musíte se přihlásit ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure CLI, a nezapomeňte se přihlásit pomocí stejného účtu, který jste použili k aktivaci sandboxu.
V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Pokud je prostředí zobrazené na pravé straně okna terminálu Bash, je otevřené správné prostředí a můžete přejít k další části.
Pokud se zobrazí jiné prostředí než Bash, vyberte šipku rozevíracího seznamu prostředí a pak vyberte Azure Cloud Shell (Bash).
V seznamu terminálových prostředí vyberte Bash.
V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:
cd templates
Přihlášení k Azure
V terminálu editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:
az login
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
V terminálu editoru Visual Studio Code se zobrazí seznam předplatných přidružených k tomuto účtu.
Nastavte výchozí předplatné pro všechny příkazy Azure CLI, které spustíte v této relaci.
az account set --subscription "Concierge Subscription"
Poznámka:
Pokud jste nedávno použili více než jeden sandbox, může se v terminálu zobrazit více než jedna instance předplatného Concierge. V tomto případě použijte následující dva kroky k nastavení jednoho jako výchozího předplatného. Pokud předchozí příkaz proběhl úspěšně a zobrazí se jenom jedno předplatné Concierge, přeskočte následující dva kroky.
Získejte ID předplatného Concierge Subscription.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Nastavte výchozí předplatné pomocí ID předplatného. Nahraďte {ID vašeho předplatného} za ID nejnovějšího předplatného Concierge Subscription.
az account set --subscription {your subscription ID}
Nastavení výchozí skupiny prostředků
Když použijete Azure CLI, můžete v tomto cvičení nastavit výchozí skupinu prostředků a vynechat parametr ze zbývajících příkazů Azure CLI. Nastavte výchozí hodnotu na skupinu prostředků, která je pro vás vytvořená v prostředí sandboxu.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Pokud chcete tuto šablonu nasadit do Azure, přihlaste se ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure PowerShell, a přihlaste se ke stejnému účtu, který aktivoval sandbox.
V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Pokud je prostředí zobrazené na pravé straně okna terminálu powershell nebo pwsh, otevře se správné prostředí a můžete přejít k další části.
Pokud se zobrazí jiné prostředí než PowerShell nebo pwsh, vyberte šipku rozevíracího seznamu prostředí a pak vyberte PowerShell.
V seznamu terminálových prostředí vyberte PowerShell nebo pwsh.
V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:
Set-Location -Path templates
Přihlášení k Azure přes Azure PowerShell
V terminálu editoru Visual Studio Code spusťte následující příkaz:
Connect-AzAccount
Otevře se prohlížeč, abyste se mohli přihlásit ke svému účtu Azure.
Po přihlášení k Azure se v terminálu zobrazí seznam předplatných přidružených k tomuto účtu.
Pokud jste aktivovali sandbox, zobrazí se předplatné s názvem Concierge Subscription . Použijte ho pro zbytek cvičení.
Nastavte výchozí předplatné pro všechny příkazy Azure PowerShellu, které spustíte v této relaci.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Poznámka:
Pokud jste nedávno použili více než jeden sandbox, může se v terminálu zobrazit více než jedna instance předplatného Concierge. V tomto případě použijte následující dva kroky k nastavení jednoho jako výchozího předplatného. Pokud předchozí příkaz proběhl úspěšně a zobrazí se jenom jedno předplatné Concierge, přeskočte následující dva kroky.
Zjistěte ID předplatného. Spuštěním následujícího příkazu zobrazíte seznam vašich předplatných a jejich ID.
Concierge Subscription
Vyhledejte a zkopírujte ID z druhého sloupce. Vypadá to jakoaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Změňte své aktivní předplatné na Concierge Subscription. Nezapomeňte nahradit {ID vašeho předplatného} za id, které jste zkopírovali.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Nastavení výchozí skupiny prostředků
Výchozí skupinu prostředků můžete nastavit a vynechat parametr ze zbývajících příkazů Azure PowerShellu v tomto cvičení. Nastavte tuto výchozí hodnotu na skupinu prostředků vytvořenou pro vás v sandboxovém prostředí.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Publikování šablony jako specifikace šablony
Publikujte specifikaci šablony pomocí této rutiny Azure PowerShellu v terminálu editoru Visual Studio Code:
New-AzTemplateSpec `
-ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
-Name ToyCosmosDBAccount `
-Location westus `
-DisplayName 'Cosmos DB account' `
-Description "This template spec creates a Cosmos DB account that meets our company's requirements." `
-Version '1.0' `
-TemplateFile main.bicep
New-AzTemplateSpec `
-ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
-Name ToyCosmosDBAccount `
-Location westus `
-DisplayName 'Cosmos DB account' `
-Description "This template spec creates a Cosmos DB account that meets our company's requirements." `
-Version '1.0' `
-TemplateFile azuredeploy.json
Publikujte specifikaci šablony pomocí tohoto příkazu Azure CLI v terminálu editoru Visual Studio Code:
az ts create \
--name ToyCosmosDBAccount \
--location westus \
--display-name "Cosmos DB account" \
--description "This template spec creates a Cosmos DB account that meets our company's requirements." \
--version 1.0 \
--template-file main.bicep
az ts create \
--name ToyCosmosDBAccount \
--location westus \
--display-name "Cosmos DB account" \
--description "This template spec creates a Cosmos DB account that meets our company's requirements." \
--version 1.0 \
--template-file azuredeploy.json
Ověření specifikace šablony pomocí webu Azure Portal
Přejděte na web Azure Portal a ujistěte se, že jste v předplatném sandboxu:
- V pravém horním rohu stránky vyberte svůj avatar.
- Vyberte Přepnout adresář. V seznamu vyberte adresář Microsoft Learn Sandbox.
Na levém panelu vyberte Skupiny prostředků.
Vyberte
[název skupiny prostředků sandboxu] . Všimněte si, že specifikace šablony je součástí seznamu prostředků:Vyberte ToyCosmosDBAccount a otevřete specifikaci šablony. Verze a soubor šablony jsou viditelné.
Nasazení specifikace šablony
Pro zjednodušení nasadíte specifikaci šablony do stejné skupiny prostředků sandboxu, ve které je uložená samotná specifikace šablony. Za normálních okolností uchováváte specifikace šablon v jiné skupině prostředků. Postup je ale stejný jak na obou způsobech.
Spuštěním následujícího příkazu Azure PowerShellu získejte ID prostředku specifikace šablony:
$templateSpecVersionResourceId = (` Get-AzTemplateSpec ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -Name ToyCosmosDBAccount ` -Version 1.0 ` ).Versions[0].Id
Všimněte si, že vlastnost používáte
Versions
. Když nasadíte specifikaci šablony, musíte odkazovat na ID prostředku konkrétní verze specifikace šablony, která se má použít.Nasaďte specifikaci šablony pomocí tohoto příkazu Azure PowerShellu v terminálu editoru Visual Studio Code:
New-AzResourceGroupDeployment -TemplateSpecId $templateSpecVersionResourceId
Spuštěním následujícího příkazu Azure CLI získejte ID prostředku specifikace šablony:
id=$(az ts show \ --name ToyCosmosDBAccount \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --version "1.0" \ --query "id")
Nasaďte specifikaci šablony pomocí tohoto příkazu Azure CLI v terminálu editoru Visual Studio Code:
az deployment group create --template-spec $id
Dokončení nasazení může trvat minutu nebo dvě.
Ověření nasazení
V prohlížeči se vraťte na web Azure Portal. Přejděte do skupiny prostředků.
Vedle možnosti Nasazení vyberte odkaz 1 Úspěch a zobrazte podrobnosti o nasazení.
Vyberte nasazení.
Název vašeho nasazení může vypadat jinak než název v příkladu.
Výběrem možnosti Podrobnosti o nasazení ho rozbalíte. Ověřte, že je nasazený účet služby Azure Cosmos DB.