Kurz: Používání podmínky v šablonách ARM

Naučte se nasazovat prostředky Azure na základě podmínek v šabloně Azure Resource Manager (šablona ARM).

V kurzu Nastavení pořadí nasazování prostředků vytvoříte virtuální počítač, virtuální síť a několik dalších závislých prostředků včetně účtu úložiště. Místo nutnosti pokaždé vytvářet nový účet úložiště umožníte uživatelům vybrat si mezi vytvořením nového účtu úložiště a použitím existujícího účtu úložiště. Docílíte toho definováním dalšího parametru. Pokud je hodnota parametru nová, vytvoří se nový účet úložiště. V opačném případě se použije existující účet úložiště se zadaným názvem.

Resource Manager diagram podmínek použití šablony

Tento kurz se zabývá následujícími úkony:

  • Otevření šablony pro rychlý start
  • Úprava šablony
  • Nasazení šablony
  • Vyčištění prostředků

Tento kurz se zabývá pouze základním scénářem použití podmínek. Další informace naleznete v tématu:

Modul Learn, který se zabývá podmínkami, najdete v tématu Správa složitých cloudových nasazení pomocí pokročilých funkcí šablon ARM.

Pokud předplatné Azure ještě nemáte, napřed si vytvořte bezplatný účet.

Požadavky

K dokončení tohoto článku potřebujete:

  • Visual Studio Code s rozšířením Resource Manager Tools. Viz Rychlý start: Vytváření šablon ARM pomocí editoru Visual Studio Code.

  • Pro zlepšení zabezpečení použijte pro účet správce virtuálního počítače vygenerované heslo. Azure Cloud Shell můžete použít ke spuštění následujícího příkazu v PowerShellu nebo Bash:

    openssl rand -base64 32
    

    Další informace získáte spuštěním příkazu man openssl rand a otevřete ruční stránku.

    Služba Azure Key Vault je určená k ochraně kryptografických klíčů a dalších tajných klíčů. Další informace najdete v kurzu Integrace azure Key Vault v nasazení šablony ARM. Zároveň doporučujeme heslo každé tři měsíce aktualizovat.

Otevření šablony pro rychlý start

Šablony azure pro rychlý start jsou úložiště pro šablony ARM. Místo vytvoření šablony úplně od začátku si můžete najít ukázkovou šablonu a přizpůsobit ji. Šablona používaná v tomto kurzu má název Deploy a simple Windows VM (Nasazení jednoduchého virtuálního počítače s Windows).

  1. V editoru Visual Studio Code vyberte Soubor>Otevřít soubor.

  2. Do pole File name (Název souboru) vložte následující adresu URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Výběrem Open (Otevřít) soubor otevřete.

  4. Šablona definuje šest prostředků:

    Před přizpůsobením šablony je vhodné si projít referenční informace k šabloně.

  5. Vyberte Soubor>Uložit jako a uložte kopii souboru do místního počítače s názvem azuredeploy.json.

Úprava šablony

Ve stávající šabloně proveďte dvě změny:

  • Přidejte parametr názvu účtu úložiště. Uživatelé můžou zadat buď název nového účtu úložiště, nebo název existujícího účtu úložiště.
  • Přidejte nový parametr s názvem newOrExisting. Nasazení používá tento parametr k určení, jestli chcete vytvořit nový účet úložiště, nebo použít existující účet úložiště.

Tady je postup, jak tyto změny provést:

  1. Ve Visual Studio Code otevřete soubor azuredeploy.json.

  2. V celé šabloně nahraďte třemi variables('storageAccountName')parameters('storageAccountName') za.

  3. Odeberte definici následující proměnné:

    Snímek obrazovky, který zvýrazňuje definice proměnných, které je potřeba odebrat

  4. Na začátek oddílu parameters přidejte následující dva parametry:

    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string",
      "allowedValues": [
        "new",
        "existing"
      ]
    },
    

    Stisknutím kombinace kláves Alt+Shift+F naformátujte šablonu v editoru Visual Studio Code.

    Aktualizovaná definice parametrů vypadá takto:

    Resource Manager – použití podmínky

  5. Na začátek definice účtu úložiště přidejte následující řádek.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

    Podmínka zkontroluje hodnotu parametru newOrExisting. Pokud je hodnota parametru new, nasazení vytvoří účet úložiště.

    Aktualizovaná definice účtu úložiště vypadá takto:

    Snímek obrazovky s aktualizovanou definicí účtu úložiště

  6. storageUri Aktualizujte vlastnost definice prostředku virtuálního počítače o následující hodnotu:

    "storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
    

    Tato změna je nezbytná v případě, že použijete existující účet úložiště v jiné skupině prostředků.

  7. Uložte změny.

Nasazení šablony

  1. Přihlaste se k Cloud Shell.

  2. Vyberte upřednostňované prostředí tak, že v levém horním rohu vyberete PowerShell nebo Bash (pro rozhraní příkazového řádku). Po přepnutí se vyžaduje restartování prostředí.

    Azure Portal Cloud Shell nahrání souboru

  3. Vyberte Nahrát nebo stáhnout soubory a potom vyberte Nahrát. Viz předchozí snímek obrazovky. Vyberte soubor, který jste uložili v předchozí části. Po nahrání souboru můžete pomocí ls příkazu a cat příkazu ověřit, že se soubor úspěšně nahrál.

  4. Spuštěním následujícího skriptu PowerShellu šablonu nasaďte.

    Důležité

    Název účtu úložiště musí být jedinečný v rámci Azure. Název musí obsahovat pouze malá písmena nebo číslice. Nesmí být delší než 24 znaků. Název účtu úložiště je název projektu s připojeným úložištěm . Ujistěte se, že název projektu a vygenerovaný název účtu úložiště splňují požadavky na název účtu úložiště.

    $projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names"
    $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)"
    $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)"
    $vmAdmin = Read-Host -Prompt "Enter the admin username"
    $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
    $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix"
    
    $resourceGroupName = "${projectName}rg"
    $storageAccountName = "${projectName}store"
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $vmAdmin `
        -adminPassword $vmPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -storageAccountName $storageAccountName `
        -newOrExisting $newOrExisting `
        -TemplateFile "$HOME/azuredeploy.json"
    
    Write-Host "Press [ENTER] to continue ..."
    

    Poznámka

    Nasazení selže, pokud newOrExisting je nové, ale účet úložiště se zadaným názvem účtu úložiště už existuje.

Zkuste provést další nasazení s nastaveným newOrExisting na existující a zadejte existující účet úložiště. Pokud chcete vytvořit účet úložiště předem, přečtěte si téma Vytvoření účtu úložiště.

Vyčištění prostředků

Pokud už nasazené prostředky Azure nepotřebujete, vyčistěte je odstraněním skupiny prostředků. Pokud chcete odstranit skupinu prostředků, vyberte Vyzkoušet a otevřete Cloud Shell. Skript PowerShellu vložíte tak, že kliknete pravým tlačítkem na podokno prostředí a pak vyberete Vložit.

$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"

Remove-AzResourceGroup -Name $resourceGroupName

Write-Host "Press [ENTER] to continue ..."

Další kroky

V tomto kurzu jste vytvořili šablonu, která uživatelům umožňuje vybrat si mezi vytvořením nového účtu úložiště a použitím existujícího účtu úložiště. Informace o načítání tajných klíčů ze služby Azure Key Vault a jejich použití jako hesel v nasazení šablony najdete tady: