Övning – Använda Azure Resource Manager-funktioner för att skapa uttryck
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.
I den här övningen skapar du ett uttryck med hjälp av ARM-mallfunktioner (Azure Resource Manager). Uttrycket skapar ett unikt namn för varje resursgrupp genom att kombinera ett angivet prefix med en hash-sträng för resursgruppens ID. Resultatet är Azure-lagringskontonamn som dev2hu6sbtr5
och staging5his8hgr67
.
I den här övningen använder du Azure Resource Manager Tools för Visual Studio Code. Installera tillägget i Visual Studio Code.
Skapa ARM-mallfilen
I föregående modul skapade du en ARM-mall som distribuerade ett lagringskonto. Du lade till parametrar och utdata i filen. Här börjar du med filen, men utdata tas bort för att minska kostnaderna.
Öppna Visual Studio Code och skapa en fil med namnet azuredeploy.json. Om du har kvar den här filen från föregående modul kan du använda den filen.
Ersätt innehållet i filen med följande kod:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[parameters('storageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
Om du inte slutförde den förra modulen rekommenderar vi att du utforska filen. Lägg märke till parametern
storageName
. Den här parametern används för att ge lagringskontot ett unikt namn.
Skapa ett uttryck som definierar ett unikt namn för lagringskontot
I stället för att skicka in namnet på lagringskontot ändrar du parametern för att ta ett prefix för lagringskontots namn. Den här parametern skickas till concat
funktionen i uttrycket.
Ändra
storageName
till storagePrefix i avsnittetparameters
.Ändra värdet för attributet
maxLength:
för parameternstoragePrefix
till 11. Den maximala längden för ett lagringskontonamn är 24 tecken, så du vill vara säker på att den tillagda hashen från funktionen du skapar inte gör att namnet blir längre än 24.Skapa uttrycket som definierar det unika namnet för lagringskontot. I avsnittet
resources
ändrar du värdena för attributenname:
ochdisplayName:
från"[parameters('storageName')]"
till "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Du lärde dig om det här uttrycket i föregående lektion. Nu bör filen se ut så här:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
Distribuera ARM-mallen till Azure
För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att Azure CLI-verktygen är installerade. Se också till att du loggar in till samma konto där sandbox-miljön aktiverades.
Öppna ett terminalfönster via Terminal-menyn.
Om den nedrullningsbara menyn till höger i terminalfönstret visar bash, så är det rätt gränssnitt som du ska arbeta från. Du kan gå vidare till nästa avsnitt.
Om du inte har rätt gränssnitt väljer du Välj standardgränssnitt i den nedrullningsbara menyn.
Välj bash:
Välj + i terminalen för att skapa en ny terminal med bash som gränssnitt.
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 lista över prenumerationer som är kopplade till kontot i terminalen. Om du aktiverade sandbox-miljön ser du en med namnet Concierge Subscription. Använd den i resten av övningen.
Ange standardprenumerationen för alla Azure CLI-kommandon som du kör i den här sessionen:
az account set --subscription "Concierge Subscription"
Kommentar
Om du nyligen har använt mer än en sandbox-miljö kan det hända att flera Concierge-prenumerationer visas i listan. I så fall följer du de två stegen nedan för att ange standardprenumerationen. Om kommandot ovan lyckades hoppar du över nästa två steg.
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
Ange standardresursgruppen till den resursgrupp som skapades åt dig i sandbox-miljön. Genom att göra det kan du utelämna den parametern i resten av Azure CLI-kommandona i den här övningen.
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
Distribuera mallen till Azure
Du lärde dig om distributionskommandona i den förra modulen. Här använder vi Azure CLI-kommandot az deployment group create
.
Distribuera mallen med hjälp av Azure CLI-kommandon i Visual Studio Code-terminalen. Glöm inte att ersätta
{your-prefix}
med en annan sträng. Du kan till exempel använda storage.templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addfunction-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storagePrefix={your-prefix}
I det första avsnittet av den här koden anger du Azure CLI-variabler för sökvägen till mallfilen som du vill distribuera och namnet på distributionen. Sedan använde
az deployment group create
du kommandot för att distribuera mallen till Azure.Du bör se meddelandet
Running...
i terminalen.
För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att Azure PowerShell-verktygen är installerade och logga in på samma konto där sandbox-miljön aktiverades.
Öppna ett terminalfönster via Terminal-menyn.
Om pwsh visas på den nedrullningsbara menyn till höger i terminalfönstret, så är det rätt gränssnitt som du ska arbeta från. Du kan gå vidare till nästa avsnitt.
Om du inte har rätt gränssnitt väljer du Välj standardgränssnitt i den nedrullningsbara menyn.
Välj pwsh.
Välj + i terminalen för att skapa en ny terminal med pwsh som gränssnitt.
Logga in i Azure med Azure PowerShell
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 uppmanas du att öppna en webbläsare till en URL som gör att du kan logga in på ditt konto. Använd koden som visas i prompten. Se till att du loggar in med samma konto som du använde för att aktivera sandbox-miljön.
Connect-AzAccount
När du har loggat in visas en lista över prenumerationer som är kopplade till kontot i terminalen. Om du aktiverade sandbox-miljön ser du en med namnet Concierge Subscription. Använd den i resten av övningen.
Ange standardprenumerationen för alla Azure CLI-kommandon som du kör i den här sessionen.
Skaffa prenumerations-ID:t. Kommandot visar dina prenumerationer och deras ID:n. Prenumerations-ID är den andra kolumnen. Leta efter
Concierge Subscription
och kopiera den andra kolumnen. Det ser ut ungefär så här:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Ändra din aktiva prenumeration till Concierge Subscription. Ersätt
{Your subscription ID}
med det ID som du kopierade.$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ange standardresursgruppen till den resursgrupp som skapades åt dig i sandbox-miljön. Genom att göra det kan du utelämna den parametern från resten av Azure PowerShell-kommandona i den här övningen.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Distribuera mallen till Azure
Du lärde dig om distributionskommandona i den förra modulen. Här använder vi Azure PowerShell-kommandot New-AzResourceGroupDeployment
.
Distribuera mallen med hjälp av Azure PowerShell-kommandon i Visual Studio Code-terminalen. Glöm inte att ersätta
{your-prefix}
med en annan sträng. Du kan till exempel använda storage.$templateFile = "azuredeploy.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addfunction-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storagePrefix {your-prefix}
I det första avsnittet i den här koden anger du Azure PowerShell-variabler för sökvägen till mallfilen som du vill distribuera och namnet på distributionen. Sedan använde New-AzResourceGroupDeployment
du kommandot för att distribuera mallen till Azure.
Kontrollera distributionen
När distributionen är klar går du till Azure Portal och kontrollerar att du är i sandbox-prenumerationen. Du kontrollerar prenumerationen genom att välja din avatar längst upp till höger på sidan. Välj Växla katalog. Välj katalogen Sandbox-miljö för Microsoft Learn i listan.
I det vänstra fönstret väljer du Resursgrupper.
Välj
[resursgruppsnamn för sandbox-miljö] .I avsnittet Översikt ser du att en distribution lyckades:
Välj 1 lyckades för att visa information om distributionen:
Välj addfunction för att se vilka resurser som har distribuerats:
Låt sidan vara öppen i webbläsaren så att du kan kontrollera distributionerna igen senare i modulen.