Oefening: Azure Resource Manager-functies gebruiken om expressies te maken

Voltooid

Notitie

De eerste keer dat u een sandbox activeert en de voorwaarden accepteert, wordt uw Microsoft-account gekoppeld aan een nieuwe Azure-map met de naam Microsoft Learn-sandbox. U wordt toegevoegd aan een speciaal abonnement met de naam Concierge-abonnement.

In deze oefening gaat u een expressie maken met de ARM-sjabloonfuncties (Azure Resource Manager). Met deze expressie wordt een unieke naam gemaakt voor elke resourcegroep door een voorvoegsel in te voeren met een hash van de resourcegroep-id. Dit resulteert in Azure-opslagaccountnamen als dev2hu6sbtr5 en staging5his8hgr67.

In deze oefening gebruikt u de Azure Resource Manager Tools voor Visual Studio Code. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.

Het ARM-sjabloonbestand maken

In de vorige module hebt u een ARM-sjabloon gemaakt waarmee een opslagaccount is geïmplementeerd. U hebt parameters en een uitvoer naar dit bestand toegevoegd. Hier begint u met dat bestand, maar de uitvoer wordt verwijderd om de overhead te verminderen.

  1. Open Visual Studio Code en maak een bestand met de naam azuredeploy.json. Als u dit bestand uit de vorige module hebt, kunt u dit bestand gebruiken.

  2. Vervang de inhoud van het bestand door de volgende code:

    {
        "$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. Neem even de tijd om dit bestand te controleren als u de vorige module niet hebt voltooid. Onthoud de parameter storageName. Deze parameter is gebruikt om een unieke naam door te geven voor het opslagaccount.

Een expressie maken om een unieke naam voor het opslagaccount in te stellen

In plaats van de naam van het opslagaccount door te geven, wijzigt u de parameter om een voorvoegsel te gebruiken voor de naam van het opslagaccount. Deze parameter wordt doorgegeven aan de concat functie in uw expressie.

  1. Wijzig in het gedeelte parametersstorageName in storagePrefix.

  2. Wijzig de waarde van het kenmerk maxLength: van de parameter storagePrefix in 11. De maximale lengte voor de naam van een opslagaccount is 24 tekens, dus u wilt er zeker van zijn dat de toegevoegde hash van de functie die u maakt, niet langer dan 24 tekens heeft.

  3. Maak de expressie om de unieke naam voor het opslagaccount in te stellen. Wijzig in de sectie resources de waarden van de kernmerken name: en displayName: van "[parameters('storageName')]" in '[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]'. Deze expressie is aan de orde geweest in de vorige les. Het bestand ziet er nu als volgt uit:

    {
        "$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": {}
    }
    

De ARM-sjabloon implementeren in 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-hulpprogramma's hebt geïnstalleerd. Zorg er ook voor dat u zich aanmeldt bij hetzelfde waarmee u de sandbox hebt geactiveerd.

  1. Open een terminalvenster met behulp van het menu Terminal.

  2. Als in de vervolgkeuzelijst aan de rechterkant van het terminalvenster bash wordt vermeld, hebt u de juiste shell om vanuit te werken. U kunt doorgaan naar de volgende sectie.

    A screenshot that shows the Visual Studio Code terminal window with bash in the drop-down menu.

  3. Als u niet over de juiste shell beschikt, selecteert u Standaardshell selecteren in de vervolgkeuzelijst.

  4. Selecteer bash:

    Screenshot that shows the select shell list in the Visual Studio Code terminal window.

  5. Selecteer + in de terminal om een nieuwe terminal met bash als shell te maken.

Aanmelden bij Azure

  1. Voer in de terminal in Visual Studio Code de volgende opdracht uit om u aan te melden bij Azure. Als u deze opdracht uitvoert, wordt een browser geopend waarmee u zich kunt aanmelden bij uw account:

    az login
    
  2. Wanneer u bent aangemeld, ziet u een lijst met de abonnementen die zijn gekoppeld aan het account in de terminal. Als u de sandbox hebt geactiveerd, ziet u er een met de naam Concierge-abonnement. U gebruikt deze voor de rest van de oefening.

  3. Stel het standaardabonnement in voor alle Azure CLI-opdrachten die u tijdens deze sessie uitvoert:

    az account set --subscription "Concierge Subscription"
    

    Notitie

    Als u onlangs meer dan één sandbox hebt gebruikt, wordt er mogelijk meer dan één Concierge-abonnement vermeld. In dit geval gebruikt u de volgende twee stappen om het standaardabonnement in te stellen. Als de bovenstaande opdracht is geslaagd, kunt u de volgende twee stappen overslaan.

  4. De id's van het Concierge-abonnement verkrijgen:

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Stel het standaardabonnement in met behulp van de abonnements-id. Vervang {your subscription ID} door de meest recente Concierge-abonnements-id.

    az account set --subscription {your subscription ID}
    

De standaardresourcegroep instellen

  • Stel de standaardresourcegroep in op de resourcegroep die voor u is gemaakt in de sandboxomgeving. Zo kunt u deze parameter weglaten uit de rest van de Azure CLI-opdrachten in deze oefening.

    az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
    

De sjabloon implementeren in Azure

U hebt geleerd over de implementatie-opdrachten in de vorige module. Hier gebruiken we de opdracht az deployment group create in de Azure CLI.

  • Implementeer de sjabloon met behulp van Azure CLI-opdrachten in de Visual Studio Code-terminal. Vergeet niet om {your-prefix} te vervangen door een andere tekenreeks. U kunt bijvoorbeeld een opslag gebruiken.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addfunction-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storagePrefix={your-prefix}
    

    In de eerste sectie van deze code stelt u Azure CLI-variabelen in voor het pad naar het sjabloonbestand dat u wilt implementeren en de naam van deze implementatie. Vervolgens hebt u de az deployment group create opdracht gebruikt om de sjabloon in Azure te implementeren.

    U ziet het bericht Running... in de terminal.

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 PowerShell-hulpprogramma's hebt geïnstalleerd en dat u zich aanmeldt bij hetzelfde account waarmee u de sandbox hebt geactiveerd.

  1. Open een terminalvenster met behulp van het menu Terminal.

  2. Als in de vervolgkeuzelijst aan de rechterkant van het terminalvenster pwsh wordt vermeld, hebt u de juiste shell om vanuit te werken. U kunt doorgaan naar de volgende sectie.

    A screenshot that shows the Visual Studio Code terminal window with pwsh in the drop-down menu.

  3. Als u niet over de juiste shell beschikt, selecteert u Standaardshell selecteren in de vervolgkeuzelijst.

  4. Selecteer pwsh.

    Screenshot that shows the select shell list in the Visual Studio Code terminal window.

  5. Selecteer + in de terminal om een nieuwe terminal te maken met pwsh als shell.

Aanmelden bij Azure met behulp van Azure PowerShell

  1. Voer in de terminal in Visual Studio Code de volgende opdracht uit om u aan te melden bij Azure. Wanneer u deze opdracht uitvoert, wordt u gevraagd een browser te openen naar een URL waarmee u zich kunt aanmelden bij uw account. Gebruik de code in de prompt. Zorg dat u zich aanmeldt met hetzelfde account waarmee u de sandbox hebt geactiveerd.

    Connect-AzAccount
    
  2. Wanneer u bent aangemeld, ziet u een lijst met de abonnementen die zijn gekoppeld aan het account in de terminal. Als u de sandbox hebt geactiveerd, ziet u er een met de naam Concierge-abonnement. U gebruikt deze voor de rest van de oefening.

    Stel het standaardabonnement in voor alle Azure CLI-opdrachten die u tijdens deze sessie uitvoert.

  3. Verkrijg de abonnements-id. Met de opdracht worden uw abonnementen en hun id's weergegeven. De abonnements-id is de tweede kolom. Zoek naar Concierge Subscription en kopieer de tweede kolom. Het ziet er ongeveer als volgt uit: cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  4. Wijzig uw actieve abonnement naar het Concierge-abonnement. Zorg ervoor dat u vervangt door {Your subscription ID} de id die u hebt gekopieerd.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  5. Stel de standaardresourcegroep in op de resourcegroep die voor u is gemaakt in de sandboxomgeving. Zo kunt u deze parameter weglaten uit de rest van de Azure PowerShell-opdrachten in deze oefening.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

De sjabloon implementeren in Azure

U hebt geleerd over de implementatie-opdrachten in de vorige module. Hier gebruiken we de opdracht New-AzResourceGroupDeployment in de Azure PowerShell.

  • Implementeer de sjabloon met behulp van Azure PowerShell-opdrachten in de Visual Studio Code-terminal. Vergeet niet om {your-prefix} te vervangen door een andere tekenreeks. U kunt bijvoorbeeld een opslag gebruiken.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addfunction-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your-prefix}
    

In de eerste sectie van deze code stelt u Azure PowerShell-variabelen in voor het pad naar het sjabloonbestand dat u wilt implementeren en de naam van de implementatie. Vervolgens hebt u de New-AzResourceGroupDeployment opdracht gebruikt om de sjabloon in Azure te implementeren.

Uw implementatie controleren

Wanneer de implementatie is voltooid, gaat u naar Azure Portal en controleert u of u zich in het sandbox-abonnement bevindt. Selecteer uw avatar in de rechterbovenhoek van de pagina om het abonnement te controleren. Selecteer Schakelen tussen directory's. In de lijst selecteert u de map Microsoft Learn Sandbox.

  1. Selecteer Resourcegroepen in het linkerdeelvenster.

  2. Selecteer [naam sandboxresourcegroep].

  3. In de sectie Overzicht ziet u dat er één implementatie is voltooid:

    Screenshot of the Azure portal that shows the resource group overview. The Deployments section shows that one deployment succeeded.

  4. Selecteer 1 geslaagd om de details van de implementatie te bekijken:

    Screenshot of the Azure portal that shows deployments. One deployment is listed and has a status of Succeeded.

  5. Selecteer addfunction om te zien welke resources zijn geïmplementeerd:

    Screenshot of the Azure portal that shows that the storage account deployed.

  6. Laat de pagina geopend in uw browser, zodat u de implementaties later in de module opnieuw kunt controleren.