Cvičení – použití elementu copy k snížení opakování

Dokončeno

V tomto posledním cvičení budete nadále pracovat s účty úložiště. Tentokrát použijete element copy ke zřízení více účtů úložiště z jediné definice.

Konstruktor Copy je jediné centrální místo, které musíte aktualizovat, když se změní vaše požadavky.

Vytvoření šablony ARM

Tady vytvoříte šablonu Azure Resource Manageru (ARM), která bude definovat prostředek účtu úložiště. Šablona používá konstruktor copy k vytvoření stanoveného počtu podobných verzí stejného prostředku.

  1. V editoru Visual Studio Code vytvořte soubor s názvem copy.json ve stejném adresáři, který obsahuje soubor azuredeploy.json.

  2. Přidejte tento obsah do souboru 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": {}
    }
    

Parametr storageCount definuje počet kopií, které se mají vytvořit.

V části resources si všimněte prostředku účtu úložiště. Aby se zajistila jedinečnost názvu účtu úložiště, připojuje šablona k názvu účtu úložiště aktuální index pomocí funkce copyIndex().

Část copy čte informaci o počtu kopií, které se mají vytvořit, z parametru storageCount.

Nasazení šablony

Tady nasadíte šablonu tak, jak jste to udělali dříve. Tento krok nasazení zřídí dva podobné účty úložiště.

  1. Vytvořte proměnnou PowerShellu, která bude obsahovat název účtu úložiště.

    $STORAGE_ACCT_NAME="tailwindsa" + (Get-Random -Count 1)
    
  2. Šablonu nasaďte spuštěním následujícího příkazu New-AzResourceGroupDeployment:

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

    Tady nastavíte parametr storageCount na hodnotu 2, aby se zřídily dva účty úložiště.

Ověření nasazení

I když výstup ukazuje, že se vytvořily dva účty úložiště, spustíte teď příkaz Get-AzResource a zaměříte se na výstupní prostředky.

Spusťte následující příkaz Get-AzResource, abyste se ujistili, že prostředky byly nasazeny:

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

Argument tailwindsa* určuje, že se mají zobrazit jenom identifikátory, které odpovídají předponě názvu, kterou jste prostředkům přiřadili.

Výstup bude vypadat nějak takto:

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…

V tomto příkladu:

  • tailwindsa185277781 je základní název, který byl vygenerován pro účet úložiště ("tailwindsa" + Get-Random -Count 1).
  • tailwindsa1852777810 (základní název plus „0“) je první účet úložiště.
  • tailwindsa1852777811 (základní název plus „1“) je druhý účet úložiště.

Skvělá práce! Když se změní vaše potřeby, například úroveň výkonu, kterou potřebujete, můžete definice prostředků změnit z jednoho místa.

Vyčištění

Až tento modul dokončíte, sandbox automaticky vyčistí vámi použité prostředky.

Pokud pracujete s vlastním předplatným, je vhodné vždy na konci projektu zkontrolovat, jestli budete vytvořené prostředky ještě potřebovat. Prostředky, které necháte spuštěné, můžou stát peníze. Prostředky můžete odstraňovat jednotlivě nebo můžete odstranit skupinu prostředků, a odstranit tak celou sadu prostředků najednou.

Vytvoření šablony ARM

Tady vytvoříte šablonu Azure Resource Manageru (ARM), která bude definovat prostředek účtu úložiště. Šablona používá konstruktor copy k vytvoření stanoveného počtu podobných verzí stejného prostředku.

  1. V editoru Visual Studio Code vytvořte soubor s názvem copy.json ve stejném adresáři, který obsahuje soubor azuredeploy.json.

  2. Přidejte tento obsah do souboru 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": {}
    }
    

Parametr storageCount definuje počet kopií, které se mají vytvořit.

V části resources si všimněte prostředku účtu úložiště. Aby se zajistila jedinečnost názvu účtu úložiště, připojuje šablona k názvu účtu úložiště aktuální index pomocí funkce copyIndex().

Část copy čte informaci o počtu kopií, které se mají vytvořit, z parametru storageCount.

Nasazení šablony

Tady nasadíte šablonu tak, jak jste to udělali dříve. Tento krok nasazení zřídí dva podobné účty úložiště.

  1. Vytvořte proměnnou Bash, která bude obsahovat název účtu úložiště.

    STORAGE_ACCT_NAME=tailwindsa$RANDOM
    
  2. Šablonu nasaďte spuštěním následujícího příkazu az deployment group create:

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

    Tady nastavíte parametr storageCount na hodnotu 2, aby se zřídily dva účty úložiště.

Ověření nasazení

I když výstup ukazuje, že se vytvořily dva účty úložiště, spustíte teď příkaz az deployment group show a zaměříte se na výstupní prostředky.

Spuštěním následujícího příkazu az deployment group show zobrazte podrobnosti o nasazení:

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

Argument --query určuje, že se mají zobrazit jenom identifikátory z výstupních prostředků.

Výstup bude vypadat nějak takto:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9820
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9821

V tomto příkladu:

  • tailwindsa982 je základní název, který byl vygenerován pro účet úložiště (tailwindsa$RANDOM).
  • tailwindsa9820 (základní název plus „0“) je první účet úložiště.
  • tailwindsa9821 (základní název plus „1“) je druhý účet úložiště.

Skvělá práce! Když se změní vaše potřeby, například úroveň výkonu, kterou potřebujete, můžete definice prostředků změnit z jednoho místa.

Vyčištění

Až tento modul dokončíte, sandbox automaticky vyčistí vámi použité prostředky.

Pokud pracujete s vlastním předplatným, je vhodné vždy na konci projektu zkontrolovat, jestli budete vytvořené prostředky ještě potřebovat. Prostředky, které necháte spuštěné, můžou stát peníze. Prostředky můžete odstraňovat jednotlivě nebo můžete odstranit skupinu prostředků, a odstranit tak celou sadu prostředků najednou.