Övning – Använda Azure Resource Manager-funktioner för att skapa uttryck

Slutförd

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.

  1. Ö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.

  2. 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": {}
    }
    
  3. 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.

  1. Ändra storageName till storagePrefix i avsnittet parameters.

  2. Ändra värdet för attributet maxLength: för parametern storagePrefix 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.

  3. Skapa uttrycket som definierar det unika namnet för lagringskontot. I avsnittet resources ändrar du värdena för attributen name: och displayName: 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.

  1. Öppna ett terminalfönster via Terminal-menyn.

  2. 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.

    En skärmbild som visar terminalfönstret för Visual Studio Code med bash på den nedrullningsbara menyn.

  3. Om du inte har rätt gränssnitt väljer du Välj standardgränssnitt i den nedrullningsbara menyn.

  4. Välj bash:

    Skärmbild som visar listan Välj gränssnitt i terminalfönstret för Visual Studio Code.

  5. Välj + i terminalen för att skapa en ny terminal med bash som gränssnitt.

Logga in på Azure

  1. 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
    
  2. 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.

  3. 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.

  4. Hämta Concierge-prenumerationernas ID:n:

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 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.

  1. Öppna ett terminalfönster via Terminal-menyn.

  2. 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.

    En skärmbild som visar terminalfönstret för Visual Studio Code med pwsh på den nedrullningsbara menyn.

  3. Om du inte har rätt gränssnitt väljer du Välj standardgränssnitt i den nedrullningsbara menyn.

  4. Välj pwsh.

    Skärmbild som visar listan Välj gränssnitt i terminalfönstret för Visual Studio Code.

  5. Välj + i terminalen för att skapa en ny terminal med pwsh som gränssnitt.

Logga in i Azure med Azure PowerShell

  1. 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
    
  2. 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.

  3. 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
    
  4. Ä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
    
  5. 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.

  1. I det vänstra fönstret väljer du Resursgrupper.

  2. Välj [resursgruppsnamn för sandbox-miljö].

  3. I avsnittet Översikt ser du att en distribution lyckades:

    Skärmbild av Azure Portal som visar resursgruppens översikt. Avsnittet Distributioner visar att en distribution lyckades.

  4. Välj 1 lyckades för att visa information om distributionen:

    Skärmbild av Azure Portal som visar distributioner. En distribution visas och har statusen Lyckades.

  5. Välj addfunction för att se vilka resurser som har distribuerats:

    Skärmbild av Azure-portalen som visar att lagringskontot har distribuerats.

  6. Låt sidan vara öppen i webbläsaren så att du kan kontrollera distributionerna igen senare i modulen.