Oefening: copy gebruiken om herhaling te verminderen

Voltooid

In deze laatste oefening gaat u verder met opslagaccounts. Deze keer gebruikt u de copy-constructie om meerdere opslagaccounts in te richten op basis van één definitie.

Copy biedt u één centrale locatie die u moet bijwerken wanneer de vereisten veranderen.

Het ARM-sjabloon maken

Hier maakt u een Azure Resource Manager-sjabloon (ARM) voor het definiëren van een opslagaccountresource. De sjabloon gebruikt copy om soortgelijke versies van dezelfde resource een opgegeven aantal keren te maken.

  1. Maak in Visual Studio Code een bestand met de naam copy.json in de map die ook azuredeploy.json bevat.

  2. Voeg deze inhoud toe aan copy.json:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageCount": {
          "type": "int",
          "defaultValue": 1,
          "metadata": {
            "description": "the number of storage accounts copies being deployed"
          }
        },
        "storageAccountName": {
          "type": "string",
          "defaultValue": "storage",
          "metadata": {
            "description": "the name of the storage account"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[concat(parameters('storageAccountName'), copyIndex())]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          },
          "copy": {
            "name": "storagecopy",
            "count": "[parameters('storageCount')]"
          }
        }
      ],
      "outputs": {}
    }
    

De parameter storageCount definieert het aantal kopieën dat moet worden gemaakt.

Noteer de opslagaccountresource onder resources. De sjabloon maakt gebruik van copyIndex() om de huidige index toe te voegen aan de naam van het opslagaccount en zo de naam van het opslagaccount uniek te maken.

De sectie copy leest het aantal kopieën dat moet worden gemaakt uit de parameter storageCount.

De sjabloon implementeren

Hier implementeert u de sjabloon zoals u eerder hebt gedaan. In de implementatiestap worden twee soortgelijke opslagaccounts ingericht.

  1. Maak een PowerShell-variabele met de naam van het opslagaccount.

    $STORAGE_ACCT_NAME="tailwindsa" + (Get-Random -Count 1)
    
  2. Voer de volgende New-AzResourceGroupDeployment-opdracht uit om de sjabloon te implementeren:

    New-AzResourceGroupDeployment `
    -TemplateFile "./copy.json" `
    -storageAccountName $STORAGE_ACCT_NAME `
    -storageCount 2
    

    Hier stelt u storageCount in op 2 om twee opslagaccounts in te richten.

De implementatie controleren

Hoewel de uitvoer laat zien dat er twee opslagaccounts zijn gemaakt, voert u hier de Get-AzResource-opdracht uit om te focussen op de uitvoerresources.

Voer de volgende Get-AzResource-opdracht uit om te controleren of de resources zijn geïmplementeerd:

Get-AzResource -Name tailwindsa* -ResourceGroupName <rgn>resource group name</rgn> | Select-Object -Property Name,ResourceId

Het argument tailwindsa* zorgt ervoor dat alleen de id's worden weergegeven die overeenkomen met het naamvoorvoegsel dat u voor de resources hebt opgegeven.

De uitvoer ziet er ongeveer als volgt uit:

Name                 ResourceId
----                 ----------
tailwindsa1852777810 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…
tailwindsa1852777811 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…

In dit voorbeeld:

  • tailwindsa185277781 is de basisnaam die voor het opslagaccount ("tailwindsa" + Get-Random -Count 1) is gegenereerd.
  • tailwindsa1852777810 (de basisnaam plus '0') is het eerste opslagaccount.
  • tailwindsa1852777811 (de basisnaam plus '1') is het tweede opslagaccount.

Goed gedaan! Als uw behoeften veranderen, zoals de gewenste prestatielaag, kunt u uw resourcedefinities wijzigen op één locatie.

Opschonen

De sandbox schoont uw resourced automatisch op wanneer u klaar bent met deze module.

Wanneer u in uw eigen abonnement werkt, is het een goed idee om aan het einde van een project te bepalen of u de gemaakte resources nog nodig hebt. Resources die u verlaat, kunnen u geld kosten. U kunt resources afzonderlijk verwijderen, maar u kunt ook de resourcegroep verwijderen als u de volledige resourceset wilt verwijderen.

Het ARM-sjabloon maken

Hier maakt u een Azure Resource Manager-sjabloon (ARM) voor het definiëren van een opslagaccountresource. De sjabloon gebruikt copy om soortgelijke versies van dezelfde resource een opgegeven aantal keren te maken.

  1. Maak in Visual Studio Code een bestand met de naam copy.json in de map die ook azuredeploy.json bevat.

  2. Voeg deze inhoud toe aan copy.json:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageCount": {
          "type": "int",
          "defaultValue": 1,
          "metadata": {
            "description": "the number of storage accounts being deployed"
          }
        },
        "storageAccountName": {
          "type": "string",
          "defaultValue": "storage",
          "metadata": {
            "description": "the name of the storage account"
          }
        }
      },
      "functions": [],
      "variables": {},
      "resources": [
        {
          "name": "[concat(parameters('storageAccountName'), copyIndex())]",
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS",
            "tier": "Premium"
          },
          "copy": {
            "name": "storagecopy",
            "count": "[parameters('storageCount')]"
          }
        }
      ],
      "outputs": {}
    }
    

De parameter storageCount definieert het aantal kopieën dat moet worden gemaakt.

Noteer de opslagaccountresource onder resources. De sjabloon maakt gebruik van copyIndex() om de huidige index toe te voegen aan de naam van het opslagaccount en zo de naam van het opslagaccount uniek te maken.

De sectie copy leest het aantal kopieën dat moet worden gemaakt uit de parameter storageCount.

De sjabloon implementeren

Hier implementeert u de sjabloon zoals u eerder hebt gedaan. In de implementatiestap worden twee soortgelijke opslagaccounts ingericht.

  1. Maak een Bash-variabele met de naam van het opslagaccount.

    STORAGE_ACCT_NAME=tailwindsa$RANDOM
    
  2. Voer de volgende az deployment group create-opdracht uit om de sjabloon te implementeren:

    az deployment group create \
      --template-file copy.json \
      --parameters storageAccountName=$STORAGE_ACCT_NAME storageCount=2
    

    Hier stelt u storageCount in op 2 om twee opslagaccounts in te richten.

De implementatie controleren

Hoewel de uitvoer laat zien dat er twee opslagaccounts zijn gemaakt, voert u hier de az deployment group show-opdracht uit om te focussen op de uitvoerresources.

Voer de volgende az deployment group show-opdracht uit om informatie over de implementatie weer te geven:

az deployment group show \
  --name copy \
  --query "properties.outputResources[].id" \
  --output tsv

Het argument --query zorgt ervoor dat alleen de id's van de uitvoerresources worden weergegeven.

De uitvoer ziet er ongeveer als volgt uit:

/subscriptions/4b328dc1-56b1-4031-89b0-c0898204f8a5/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9820
/subscriptions/4b328dc1-56b1-4031-89b0-c0898204f8a5/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9821

In dit voorbeeld:

  • tailwindsa982 is de basisnaam die voor het opslagaccount (tailwindsa$RANDOM) is gegenereerd.
  • tailwindsa9820 (de basisnaam plus '0') is het eerste opslagaccount.
  • tailwindsa9821 (de basisnaam plus '1') is het tweede opslagaccount.

Goed gedaan! Als uw behoeften veranderen, zoals de gewenste prestatielaag, kunt u uw resourcedefinities wijzigen op één locatie.

Opschonen

De sandbox schoont uw resourced automatisch op wanneer u klaar bent met deze module.

Wanneer u in uw eigen abonnement werkt, is het een goed idee om aan het einde van een project te bepalen of u de gemaakte resources nog nodig hebt. Resources die u verlaat, kunnen u geld kosten. U kunt resources afzonderlijk verwijderen, maar u kunt ook de resourcegroep verwijderen als u de volledige resourceset wilt verwijderen.