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 maakt u een expressie met behulp van 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 hulpprogramma's van Azure Resource Manager 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 is 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 voor de naam van het opslagaccount te maken. Deze parameter wordt doorgegeven aan de functie concat 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 een opslagaccountnaam is 24 tekens, dus u wilt er zeker van zijn dat de toegevoegde hash van de functie die u maakt, niet zorgt ervoor dat de naam langer is dan dat.

  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.

    Een schermopname met het Visual Studio Code-terminalvenster met bash in de vervolgkeuzelijst.

  3. Als u niet de juiste shell hebt, klikt u op Standaard shell selecteren in de vervolgkeuzelijst.

  4. Selecteer bash:

    Een schermopname waarin de lijst om de shell te selecteren wordt weergegeven in het Visual Studio Code-terminalvenster.

  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 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 sandbox-omgeving. 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

In de vorige module hebt u geleerd over de implementatie-opdrachten. 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 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 te implementeren in Azure.

    U ziet 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.

    Een schermopname met het Visual Studio Code-terminalvenster met pwsh in de vervolgkeuzelijst.

  3. Als u niet de juiste shell hebt, klikt u op Standaard shell selecteren in de vervolgkeuzelijst.

  4. Selecteer pwsh.

    Een schermopname waarin de lijst om de shell te selecteren wordt weergegeven in het Visual Studio Code-terminalvenster.

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

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. Als u deze opdracht uitvoert, wordt u gevraagd om een browser naar een URL te openen 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 weergeven. De abonnements-id is de tweede kolom. Zoek naar Concierge Subscription en kopieer de tweede kolom. Deze 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 {Your subscription ID} vervangt door de id die u zojuist 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 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 te implementeren in Azure.

Uw implementatie controleren

Wanneer de implementatie is voltooid, gaat u naar de 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 mappen. 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:

    Schermopname van Azure Portal met het overzicht voor de resourcegroep. De sectie Implementaties met een voltooide implementatie.

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

    Schermopname van Azure Portal met implementaties. Eén implementatie wordt weergegeven en heeft de status Geslaagd.

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

    Schermopname van Azure Portal met het overzicht van het geïmplementeerde opslagaccount.

  6. Laat de pagina in uw browser open. U controleert de implementaties opnieuw.