Övning – Skapa och distribuera en mallspecifikation
Kommentar
Första gången du aktiverar en sandbox-miljö och godkänner villkoren associeras ditt Microsoft-konto med en ny Azure-katalog med namnet Microsoft Learn Sandbox. Du läggs också till i en särskild prenumeration med namnet Concierge-prenumeration.
På ditt leksaksföretag har ditt team arbetat med Azure ett tag nu och du har skapat många mallar som du använder dagligen. Du bestämmer dig för att ta en mall och skapa en mallspecifikation. Du börjar med mallen som du använder för att skapa Azure Cosmos DB-konton.
Teamet beslutade att kontinuerlig säkerhetskopiering måste konfigureras på alla dina Azure Cosmos DB-konton. Du vill därför inkludera säkerhetskopior i standardkonfigurationen för Azure Cosmos DB-konton som etableras via mallspecifikationen.
I den här övningen publicerar du Azure Cosmos DB-mallen som en mallspecifikation.
Under processen gör du följande:
- Skapa en mall som du ska använda som mallspecifikation.
- Uppdatera mallen för att säkerställa att parametrarna är lätta att förstå och arbeta med.
- Publicera mallspecifikationen.
- Kontrollera mallspecifikationen med hjälp av Azure Portal.
- Distribuera mallspecifikationen för att testa den.
- Verifiera distributionen.
Den här övningen använder Bicep-tillägget för Visual Studio Code. Installera tillägget i Visual Studio Code.
Skapa mallen
Du börjar med en av de mallar som ditt team har skapat. Mallen distribuerar ett Azure Cosmos DB-konto och konfigurerar det för att aktivera kontinuerlig säkerhetskopiering.
Öppna Visual Studio Code.
Skapa en ny fil med namnet main.bicep.
Spara den tomma filen så att Visual Studio Code läser in Bicep-verktyget.
Du kan antingen välja Spara som-fil> eller välja Ctrl+S i Windows (⌘+S på macOS). Kom ihåg var du sparade filen. Du kanske till exempel vill skapa en skriptmapp för att spara den.
Kopiera följande kod till 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' } } }
Observera att du har angett
backupPolicy
tillContinuous
. Det här värdet konfigurerar Azure Cosmos DB att kontinuerligt göra säkerhetskopior av dina data i stället för regelbundet.Spara filen.
Öppna Visual Studio Code.
Skapa en ny fil med namnet azuredeploy.json.
Spara den tomma filen så att Visual Studio Code läser in verktyget Azure Resource Manager-mallen (ARM-mall).
Du kan antingen välja Spara som-fil> eller välja Ctrl+S i Windows (⌘+S på macOS). Kom ihåg var du sparade filen. Du kanske till exempel vill skapa en skriptmapp för att spara den.
Kopiera följande kod till azuredeploy.json:
{ "$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" } } } ] }
Observera att du anger
backupPolicy
tillContinuous
. Det här värdet konfigurerar Azure Cosmos DB att kontinuerligt göra säkerhetskopior av dina data i stället för regelbundet.Spara filen.
Gör parametrarna enklare att förstå
När du arbetar med mallspecifikationer är det viktigt att tänka på hur andra använder mallen. Den här granskningen är särskilt viktig för parametrar, eftersom de är det huvudsakliga sättet för andra att interagera med din kod. Parametrarna i teamets mall innehåller inte beskrivningar eller andra tips om hur de ska användas, så du lägger till den här informationen här.
Uppdatera parameterdefinitionen
location
genom att lägga till en beskrivning:@description('The Azure region into which the Cosmos DB resources should be deployed.') param location string = resourceGroup().location
Uppdatera parameterdefinitionen
cosmosDBAccountName
för att lägga till en beskrivning och ange namnets minsta och högsta längd:@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)}'
Spara filen.
Uppdatera parameterdefinitionen
location
genom att lägga till en beskrivning:"location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The Azure region into which the Cosmos DB resources should be deployed." } },
Uppdatera parameterdefinitionen
cosmosDBAccountName
för att lägga till en beskrivning och ange namnets minsta och högsta längd:"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." } }
Spara filen.
Logga in på Azure
För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure CLI och kom ihåg att logga in med samma konto som du använde för att aktivera sandbox-miljön.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Om terminalfönstret visar bash på höger sida innebär det att rätt gränssnitt redan är öppet. Om du ser en bash shell-ikon till höger kan du välja den för att starta gränssnittet.
Om ett annat gränssnitt än bash visas väljer du listrutepilen för gränssnittet och väljer sedan Git Bash.
I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:
cd templates
Installera Bicep
Kör följande kommando för att se till att du har den senaste versionen av Bicep:
az bicep install && az bicep upgrade
Logga in på Azure
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
az login
Logga in på ditt Azure-konto i webbläsaren som öppnas. Visual Studio Code-terminalen visar en lista över de prenumerationer som är associerade med det här kontot. Välj prenumerationen som heter Concierge-prenumeration.
Om du har använt mer än en sandbox-miljö nyligen kan terminalen visa mer än en instans av Concierge-prenumerationen. I det här fallet använder du följande två steg för att ange ett som standardprenumeration.
Hämta Concierge-prenumerationernas ID:n.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Använd prenumerations-ID:t för att ange standardprenumerationen. Ersätt {your subscription ID} med ID:t för den senaste Concierge-prenumerationen.
az account set --subscription {your subscription ID}
Ange standardresursgruppen
När du använder Azure CLI kan du ange standardresursgruppen och utelämna parametern från resten av Azure CLI-kommandona i den här övningen. Ange standardvärdet för den resursgrupp som skapas åt dig i sandbox-miljön.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Om du vill distribuera den här mallen till Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure PowerShell och logga in på samma konto som aktiverade sandbox-miljön.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Om terminalfönstret visar pwsh eller powershell till höger betyder det att rätt gränssnitt redan är öppet. Om du ser en PowerShell-gränssnittsikon till höger kan du också välja den för att starta gränssnittet.
Om ett annat gränssnitt än pwsh eller powershell visas väljer du listrutepilen shell och väljer sedan PowerShell.
I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:
Set-Location -Path templates
Installera Bicep CLI
Om du vill använda Bicep från Azure PowerShell installerar du Bicep CLI.
Logga in i Azure med Azure PowerShell
Kör följande kommando i Visual Studio Code-terminalen:
Connect-AzAccount
En webbläsare öppnas så att du kan logga in på ditt Azure-konto. Webbläsaren kan öppnas i bakgrunden.
När du har loggat in på Azure visar terminalen en lista över de prenumerationer som är associerade med det här kontot. Om du har aktiverat sandbox-miljön visas en prenumeration med namnet Concierge-prenumeration . Välj den för resten av övningen.
Om du har använt mer än en sandbox-miljö nyligen kan terminalen visa mer än en instans av Concierge-prenumerationen. I det här fallet använder du följande två steg för att ange ett som standardprenumeration.
Skaffa prenumerations-ID:t. När du kör följande kommando visas dina prenumerationer och deras ID:n.
Concierge Subscription
Leta efter och kopiera sedan ID:t från den andra kolumnen. Det ser ut ungefär somaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Ändra din aktiva prenumeration till Concierge-prenumeration. Ersätt {Ditt prenumerations-ID } med det som du kopierade.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ange standardresursgruppen
Du kan ange standardresursgruppen och utelämna parametern från resten av Azure PowerShell-kommandona i den här övningen. Ange den här standardinställningen till den resursgrupp som skapats åt dig i sandbox-miljön.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure CLI och kom ihåg att logga in med samma konto som du använde för att aktivera sandbox-miljön.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Om terminalfönstret visar bash på höger sida innebär det att rätt gränssnitt redan är öppet. Om du ser en bash shell-ikon till höger kan du välja den för att starta gränssnittet.
Om ett annat gränssnitt än bash visas väljer du listrutepilen för gränssnittet och väljer sedan Git Bash.
I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:
cd templates
Logga in på Azure
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
az login
Logga in på ditt Azure-konto i webbläsaren som öppnas. Visual Studio Code-terminalen visar en lista över de prenumerationer som är associerade med det här kontot. Välj prenumerationen som heter Concierge-prenumeration.
Om du har använt mer än en sandbox-miljö nyligen kan terminalen visa mer än en instans av Concierge-prenumerationen. I det här fallet använder du följande två steg för att ange ett som standardprenumeration.
Hämta Concierge-prenumerationernas ID:n.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Använd prenumerations-ID:t för att ange standardprenumerationen. Ersätt {your subscription ID} med ID:t för den senaste Concierge-prenumerationen.
az account set --subscription {your subscription ID}
Ange standardresursgruppen
När du använder Azure CLI kan du ange standardresursgruppen och utelämna parametern från resten av Azure CLI-kommandona i den här övningen. Ange standardvärdet för den resursgrupp som skapas åt dig i sandbox-miljön.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Om du vill distribuera den här mallen till Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure PowerShell och logga in på samma konto som aktiverade sandbox-miljön.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Om terminalfönstret visar pwsh eller powershell till höger betyder det att rätt gränssnitt redan är öppet. Om du ser en PowerShell-gränssnittsikon till höger kan du också välja den för att starta gränssnittet.
Om ett annat gränssnitt än pwsh eller powershell visas väljer du listrutepilen shell och väljer sedan PowerShell.
I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:
Set-Location -Path templates
Logga in i Azure med Azure PowerShell
Kör följande kommando i Visual Studio Code-terminalen:
Connect-AzAccount
En webbläsare öppnas så att du kan logga in på ditt Azure-konto. Webbläsaren kan öppnas i bakgrunden.
När du har loggat in på Azure visar terminalen en lista över de prenumerationer som är associerade med det här kontot. Om du har aktiverat sandbox-miljön visas en prenumeration med namnet Concierge-prenumeration . Välj den för resten av övningen.
Om du har använt mer än en sandbox-miljö nyligen kan terminalen visa mer än en instans av Concierge-prenumerationen. I det här fallet använder du följande två steg för att ange ett som standardprenumeration.
Skaffa prenumerations-ID:t. När du kör följande kommando visas dina prenumerationer och deras ID:n.
Concierge Subscription
Leta efter och kopiera sedan ID:t från den andra kolumnen. Det ser ut ungefär somaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Ändra din aktiva prenumeration till Concierge-prenumeration. Ersätt {Ditt prenumerations-ID } med det som du kopierade.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ange standardresursgruppen
Du kan ange standardresursgruppen och utelämna parametern från resten av Azure PowerShell-kommandona i den här övningen. Ange den här standardinställningen till den resursgrupp som skapats åt dig i sandbox-miljön.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Publicera mallen som en mallspecifikation
Publicera mallspecifikationen med den här Azure PowerShell-cmdleten i Visual Studio Code-terminalen:
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
Publicera mallspecifikationen med hjälp av det här Azure CLI-kommandot i Visual Studio Code-terminalen:
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
Använd Azure Portal för att verifiera mallspecifikationen
Gå till Azure Portal och kontrollera att du är i sandbox-prenumerationen:
- Välj din avatar i det övre högra hörnet på sidan.
- Välj Växla katalog. Välj katalogen Sandbox-miljö för Microsoft Learn i listan.
På den vänstra panelen väljer du Resursgrupper.
Välj
[resursgruppsnamn för sandbox-miljö] . Observera att mallspecifikationen ingår i listan över resurser:Välj ToyCosmosDBAccount för att öppna mallspecifikationen. Versionerna och mallfilen visas.
Distribuera mallspecifikationen
För enkelhetens skull distribuerar du mallspecifikationen till samma sandbox-resursgrupp som själva mallspecifikationen lagras i. Normalt behåller du mallspecifikationer i en annan resursgrupp. Stegen är dock desamma på båda sätten.
Hämta mallspecifikationsversionens resurs-ID genom att köra följande Azure PowerShell-kommando:
$templateSpecVersionResourceId = (` Get-AzTemplateSpec ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -Name ToyCosmosDBAccount ` -Version 1.0 ` ).Versions[0].Id
Observera att du använder egenskapen
Versions
. När du distribuerar en mallspecifikation måste du referera till resurs-ID:t för den specifika versionen av mallspecifikationen som ska användas.Distribuera mallspecifikationen med hjälp av det här Azure PowerShell-kommandot i Visual Studio Code-terminalen:
New-AzResourceGroupDeployment -TemplateSpecId $templateSpecVersionResourceId
Hämta mallspecifikationsversionens resurs-ID genom att köra följande Azure CLI-kommando:
id=$(az ts show \ --name ToyCosmosDBAccount \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --version "1.0" \ --query "id")
Distribuera mallspecifikationen med hjälp av det här Azure CLI-kommandot i Visual Studio Code-terminalen:
az deployment group create --template-spec $id
Distributionen kan ta en minut eller två att slutföra.
Verifiera distributionen
Gå tillbaka till Azure Portal i webbläsaren. Gå till resursgruppen.
Bredvid Distributioner väljer du länken 1 Lyckades för att se information om distributionen.
Välj distributionen.
Distributionens namn kan se annorlunda ut än namnet i exemplet.
Välj Distributionsinformation för att expandera den. Bekräfta att ett Azure Cosmos DB-konto har distribuerats.