Oefening: een sjabloonspecificatie maken en implementeren
Notitie
De eerste keer dat u een sandbox activeert en de voorwaarden accepteert, is uw Microsoft-account gekoppeld aan een nieuwe Azure-directory met de naam Microsoft Learn Sandbox. U wordt ook toegevoegd aan een speciaal abonnement met de naam Concierge-abonnement.
In uw speelgoedbedrijf werkt uw team al een tijdje met Azure en hebt u veel sjablonen gemaakt die u dagelijks gebruikt. U besluit één sjabloon te nemen en een sjabloonspecificatie te maken. U begint met de sjabloon die u gebruikt om Azure Cosmos DB-accounts te maken.
Uw team heeft besloten dat continue back-up moet worden geconfigureerd voor al uw Azure Cosmos DB-accounts. U wilt dus back-ups opnemen in de standaardconfiguratie van Azure Cosmos DB-accounts die zijn ingericht via de sjabloonspecificatie.
In deze oefening publiceert u de Azure Cosmos DB-sjabloon als sjabloonspecificatie.
Tijdens het proces gaat u het volgende doen:
- Maak een sjabloon die u als sjabloonspecificatie gaat gebruiken.
- Werk de sjabloon bij om ervoor te zorgen dat de parameters gemakkelijk te begrijpen zijn en ermee werken.
- Publiceer de sjabloonspecificatie.
- Controleer de sjabloonspecificatie met behulp van Azure Portal.
- Implementeer de sjabloonspecificatie om deze te testen.
- De implementatie controleren.
In deze oefening wordt de Bicep-extensie voor Visual Studio Code gebruikt. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.
De sjabloon maken
U begint met een van de sjablonen die uw team heeft gemaakt. Met de sjabloon wordt een Azure Cosmos DB-account geïmplementeerd en geconfigureerd om continue back-up in te schakelen.
Open Visual Studio Code.
Maak een nieuw bestand met de naam main.bicep.
Sla het lege bestand op zodat Visual Studio Code de Bicep-hulpprogramma's laadt.
U kunt Bestand>opslaan als selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand hebt opgeslagen. U kunt bijvoorbeeld een map met scripts maken om deze op te slaan in.
Kopieer de volgende code naar 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' } } }
U ziet dat u instelt
backupPolicy
opContinuous
. Met deze waarde configureert u Azure Cosmos DB om doorlopend back-ups van uw gegevens te maken in plaats van periodiek.Sla het bestand op.
Open Visual Studio Code.
Maak een nieuw bestand met de naam azuredeploy.json.
Sla het lege bestand op, zodat Visual Studio Code de HULPPROGRAMMA's voor Azure Resource Manager-sjablonen (ARM-sjablonen) laadt.
U kunt Bestand>opslaan als selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand hebt opgeslagen. U kunt bijvoorbeeld een map met scripts maken om deze op te slaan in.
Kopieer de volgende code naar 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" } } } ] }
U ziet dat u het
backupPolicy
instelt opContinuous
. Met deze waarde configureert u Azure Cosmos DB om doorlopend back-ups van uw gegevens te maken in plaats van periodiek.Sla het bestand op.
De parameters gemakkelijker te begrijpen maken
Wanneer u met sjabloonspecificaties werkt, is het belangrijk om na te gaan hoe anderen uw sjabloon gebruiken. Deze beoordeling is vooral belangrijk voor parameters, omdat ze de belangrijkste manier zijn waarop anderen met uw code communiceren. De parameters in de sjabloon van uw team bevatten geen beschrijvingen of andere hints over hoe ze moeten worden gebruikt, dus u voegt deze informatie hier toe.
Werk de
location
parameterdefinitie bij door een beschrijving toe te voegen:@description('The Azure region into which the Cosmos DB resources should be deployed.') param location string = resourceGroup().location
Werk de
cosmosDBAccountName
parameterdefinitie bij om een beschrijving toe te voegen en om de minimale en maximale lengte van de naam op te geven:@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)}'
Sla het bestand op.
Werk de
location
parameterdefinitie bij door een beschrijving toe te voegen:"location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The Azure region into which the Cosmos DB resources should be deployed." } },
Werk de
cosmosDBAccountName
parameterdefinitie bij om een beschrijving toe te voegen en om de minimale en maximale lengte van de naam op te geven:"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." } }
Sla het bestand op.
Aanmelden bij Azure
Als u deze sjabloon wilt implementeren in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI hebt geïnstalleerd en vergeet niet om u aan te melden met hetzelfde account dat u hebt gebruikt om de sandbox te activeren.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als de shell aan de rechterkant van het terminalvenster bash is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.
Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Azure Cloud Shell (Bash).
Selecteer bash in de lijst met terminalshells.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u de sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
cd templates
Bicep installeren
Voer de volgende opdracht uit om te controleren of u de nieuwste versie van Bicep hebt:
az bicep install && az bicep upgrade
Aanmelden bij Azure
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend.
In de Visual Studio Code-terminal wordt een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Stel het standaardabonnement in voor alle Azure CLI-opdrachten die u in deze sessie uitvoert.
az account set --subscription "Concierge Subscription"
Notitie
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement. Als de voorgaande opdracht is geslaagd en er slechts één Concierge-abonnement wordt weergegeven, slaat u de volgende twee stappen over.
Verkrijg de id’s van het Concierge-abonnement.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Stel het standaardabonnement in met behulp van de abonnements-id. Vervang {uw abonnements-id} door de meest recente Concierge-abonnements-id.
az account set --subscription {your subscription ID}
De standaardresourcegroep instellen
Wanneer u de Azure CLI gebruikt, kunt u de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure CLI-opdrachten in deze oefening. Stel de standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd en meld u aan bij hetzelfde account dat de sandbox heeft geactiveerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als de shell aan de rechterkant van het terminalvenster powershell of pwsh is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.
Als een andere shell dan powershell of pwsh wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.
Selecteer powershell of pwsh in de lijst met terminalshells.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u uw sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
Set-Location -Path templates
Bicep CLI installeren
Als u Bicep wilt gebruiken vanuit Azure PowerShell, installeert u de Bicep CLI.
Aanmelden bij Azure met behulp van Azure PowerShell
Voer in de Visual Studio Code-terminal de volgende opdracht uit:
Connect-AzAccount
Er wordt een browser geopend, zodat u zich kunt aanmelden bij uw Azure-account.
Nadat u zich hebt aangemeld bij Azure, wordt in de terminal een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Als u de sandbox hebt geactiveerd, wordt een abonnement met de naam Concierge-abonnement weergegeven. Gebruik deze voor de rest van de oefening.
Stel het standaardabonnement in voor alle Azure PowerShell-opdrachten die u in deze sessie uitvoert.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Notitie
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement. Als de voorgaande opdracht is geslaagd en er slechts één Concierge-abonnement wordt weergegeven, slaat u de volgende twee stappen over.
Verkrijg de abonnements-id. Als u de volgende opdracht uitvoert, worden uw abonnementen en hun id's vermeld.
Concierge Subscription
Zoek en kopieer de id uit de tweede kolom. Het ziet er ongeveer als volgt uit:cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0
.Get-AzSubscription
Wijzig uw actieve abonnement in Concierge-abonnement. Zorg ervoor dat u {Uw abonnements-id} vervangt door de id die u hebt gekopieerd.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
De standaardresourcegroep instellen
U kunt de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure PowerShell-opdrachten in deze oefening. Stel deze standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Als u deze sjabloon wilt implementeren in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI hebt geïnstalleerd en vergeet niet om u aan te melden met hetzelfde account dat u hebt gebruikt om de sandbox te activeren.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als de shell aan de rechterkant van het terminalvenster bash is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.
Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Azure Cloud Shell (Bash).
Selecteer bash in de lijst met terminalshells.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u de sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
cd templates
Aanmelden bij Azure
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend.
In de Visual Studio Code-terminal wordt een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Stel het standaardabonnement in voor alle Azure CLI-opdrachten die u in deze sessie uitvoert.
az account set --subscription "Concierge Subscription"
Notitie
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement. Als de voorgaande opdracht is geslaagd en er slechts één Concierge-abonnement wordt weergegeven, slaat u de volgende twee stappen over.
Verkrijg de id’s van het Concierge-abonnement.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Stel het standaardabonnement in met behulp van de abonnements-id. Vervang {uw abonnements-id} door de meest recente Concierge-abonnements-id.
az account set --subscription {your subscription ID}
De standaardresourcegroep instellen
Wanneer u de Azure CLI gebruikt, kunt u de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure CLI-opdrachten in deze oefening. Stel de standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd en meld u aan bij hetzelfde account dat de sandbox heeft geactiveerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als de shell aan de rechterkant van het terminalvenster powershell of pwsh is, is de juiste shell geopend en kunt u doorgaan naar de volgende sectie.
Als een andere shell dan powershell of pwsh wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.
Selecteer powershell of pwsh in de lijst met terminalshells.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u uw sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
Set-Location -Path templates
Aanmelden bij Azure met behulp van Azure PowerShell
Voer in de Visual Studio Code-terminal de volgende opdracht uit:
Connect-AzAccount
Er wordt een browser geopend, zodat u zich kunt aanmelden bij uw Azure-account.
Nadat u zich hebt aangemeld bij Azure, wordt in de terminal een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Als u de sandbox hebt geactiveerd, wordt een abonnement met de naam Concierge-abonnement weergegeven. Gebruik deze voor de rest van de oefening.
Stel het standaardabonnement in voor alle Azure PowerShell-opdrachten die u in deze sessie uitvoert.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Notitie
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement. Als de voorgaande opdracht is geslaagd en er slechts één Concierge-abonnement wordt weergegeven, slaat u de volgende twee stappen over.
Verkrijg de abonnements-id. Als u de volgende opdracht uitvoert, worden uw abonnementen en hun id's vermeld.
Concierge Subscription
Zoek en kopieer de id uit de tweede kolom. Het ziet er ongeveer als volgt uit:cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0
.Get-AzSubscription
Wijzig uw actieve abonnement in Concierge-abonnement. Zorg ervoor dat u {Uw abonnements-id} vervangt door de id die u hebt gekopieerd.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
De standaardresourcegroep instellen
U kunt de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure PowerShell-opdrachten in deze oefening. Stel deze standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
De sjabloon publiceren als sjabloonspecificatie
Publiceer de sjabloonspecificatie met behulp van deze Azure PowerShell-cmdlet in de Visual Studio Code-terminal:
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
Publiceer de sjabloonspecificatie met behulp van deze Azure CLI-opdracht in de Visual Studio Code-terminal:
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
De Azure-portal gebruiken om de sjabloonspecificatie te controleren
Ga naar Azure Portal en zorg ervoor dat u zich in het sandbox-abonnement bevindt:
- Selecteer uw avatar in de rechterbovenhoek van de pagina.
- Selecteer Schakelen tussen directory's. In de lijst kiest u de map Microsoft Learn Sandbox.
Selecteer Resourcegroepen in het linkerdeelvenster.
Selecteer
[naam sandboxresourcegroep] . U ziet dat de sjabloonspecificatie is opgenomen in de lijst met resources:Selecteer ToyCosmosDBAccount om de sjabloonspecificatie te openen. De versies en het sjabloonbestand zijn zichtbaar.
De sjabloonspecificatie implementeren
Ter vereenvoudiging implementeert u de sjabloonspecificatie in dezelfde sandbox-resourcegroep waarin de sjabloonspecificatie zelf is opgeslagen. Normaal gesproken houdt u sjabloonspecificaties in een andere resourcegroep. De stappen zijn echter op beide manieren hetzelfde.
Haal de resource-id van de sjabloonspecificatieversie op door de volgende Azure PowerShell-opdracht uit te voeren:
$templateSpecVersionResourceId = (` Get-AzTemplateSpec ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -Name ToyCosmosDBAccount ` -Version 1.0 ` ).Versions[0].Id
U ziet dat u de
Versions
eigenschap gebruikt. Wanneer u een sjabloonspecificatie implementeert, moet u verwijzen naar de resource-id van de specifieke versie van de sjabloonspecificatie die u wilt gebruiken.Implementeer de sjabloonspecificatie met behulp van deze Azure PowerShell-opdracht in de Visual Studio Code-terminal:
New-AzResourceGroupDeployment -TemplateSpecId $templateSpecVersionResourceId
Haal de resource-id van de sjabloonspecificatieversie op door de volgende Azure CLI-opdracht uit te voeren:
id=$(az ts show \ --name ToyCosmosDBAccount \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --version "1.0" \ --query "id")
Implementeer de sjabloonspecificatie met behulp van deze Azure CLI-opdracht in de Visual Studio Code-terminal:
az deployment group create --template-spec $id
Het kan een paar minuten duren voordat de implementatie is voltooid.
Uw implementatie controleren
Ga in uw browser terug naar Azure Portal. Ga naar uw resourcegroep.
Selecteer naast Implementaties de koppeling 1 Geslaagd om de details van de implementatie te bekijken.
Selecteer de implementatie.
De naam van uw implementatie kan er anders uitzien dan in het voorbeeld.
Selecteer Implementatiedetails om deze uit te vouwen. Controleer of een Azure Cosmos DB-account is geïmplementeerd.