Rychlý start: Vytvoření Azure App Configuration úložiště pomocí šablony ARM

Tento rychlý start popisuje, jak:

  • Nasaďte App Configuration úložiště pomocí šablony Azure Resource Manager (šablony ARM).
  • Vytvořte hodnoty klíče v App Configuration úložiště pomocí šablony ARM.
  • Čtení hodnot klíčů v App Configuration úložiště ze šablony ARM.

Šablona Resource ARM je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. V deklarativní syntaxi popíšete zamýšlené nasazení, aniž byste museli psát sekvenci programovacích příkazů pro vytvoření tohoto nasazení.

Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure. Šablona se otevře v prostředí Azure Portal.

Nasazení do Azure

Požadavky

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Autorizace

Přístup k datům klíč-hodnota uvnitř šablony ARM vyžaduje Azure Resource Manager roli, jako je přispěvatel nebo vlastník. Přístup prostřednictvím jedné z Azure App Configuration roviny dat se v současné době nepodporuje.

Poznámka

Přístup k datům typu klíč-hodnota uvnitř šablony ARM je zakázaný, pokud je zakázané ověřování pomocí přístupového klíče. Další informace najdete v tématu zakázání ověřování pomocí přístupového klíče.

Kontrola šablony

Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure. Vytvoří nové úložiště App Configuration se dvěma klíč-hodnotami uvnitř. Potom použije funkci reference k výstupu hodnot těchto dvou prostředků klíč-hodnota. Čtení hodnoty klíče tímto způsobem umožňuje jeho použití na jiných místech v šabloně.

Rychlý start používá copy element k vytvoření více instancí prostředku klíč-hodnota. Další informace o elementu copy najdete v tématu Iterace prostředků v šablonách ARM.

Důležité

Tato šablona vyžaduje App Configuration poskytovatele prostředků 2020-07-01-preview nebo novější. Tato verze používá reference funkci ke čtení klíčových hodnot. Funkce, listKeyValue která byla použita ke čtení hodnot klíčů v předchozí verzi, není od verze dostupná. 2020-07-01-preview

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "configStoreName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the App Configuration store."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the Azure location where the app configuration store should be created."
      }
    },
    "keyValueNames": {
      "type": "array",
      "defaultValue": [ "myKey", "myKey$myLabel" ],
      "metadata": {
        "description": "Specifies the names of the key-value resources. The name is a combination of key and label with $ as delimiter. The label is optional."
      }
    },
    "keyValueValues": {
      "type": "array",
      "defaultValue": [ "Key-value without label", "Key-value with label" ],
      "metadata": {
        "description": "Specifies the values of the key-value resources. It's optional"
      }
    },
    "contentType": {
      "type": "string",
      "defaultValue": "the-content-type",
      "metadata": {
        "description": "Specifies the content type of the key-value resources. For feature flag, the value should be application/vnd.microsoft.appconfig.ff+json;charset=utf-8. For Key Value reference, the value should be application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8. Otherwise, it's optional."
      }
    },
    "tags": {
      "type": "object",
      "defaultValue": {
        "tag1": "tag-value-1",
        "tag2": "tag-value-2"
      },
      "metadata": {
        "description": "Adds tags for the key-value resources. It's optional"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.AppConfiguration/configurationStores",
      "apiVersion": "2020-07-01-preview",
      "name": "[parameters('configStoreName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "standard"
      }
    },
    {
      "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
      "apiVersion": "2020-07-01-preview",
      "name": "[concat(parameters('configStoreName'), '/', parameters('keyValueNames')[copyIndex()])]",
      "copy": {
        "name": "keyValueCopy",
        "count": "[length(parameters('keyValueNames'))]"
      },
      "dependsOn": [
        "[parameters('configStoreName')]"
      ],
      "properties": {
        "value": "[parameters('keyValueValues')[copyIndex()]]",
        "contentType": "[parameters('contentType')]",
        "tags": "[parameters('tags')]"
      }
    }
  ],
  "outputs": {
    "reference-key-value-value": {
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[0]), '2020-07-01-preview').value]",
      "type": "string"
    },
    "reference-key-value-object": {
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2020-07-01-preview')]",
      "type": "object"
    }
  }
}

V šabloně jsou definované dva prostředky Azure:

Tip

Název keyValues prostředku je kombinací klíče a popisku. Klíč a popisek jsou spojené $ oddělovačem. Popisek je volitelný. V příkladu výše prostředek keyValues s názvem myKey vytvoří klíč-hodnotu bez popisku.

Kódování procent, označované také jako kódování adresy URL, umožňuje, aby klíče nebo popisky zahrnovaly znaky, které nejsou povolené v názvech prostředků šablony ARM. % není ani povolený znak, takže ~ se používá na jeho místě. Pokud chcete název správně zakódovat, postupujte takto:

  1. Použití kódování adresy URL
  2. Nahraďte ~ za . ~7E
  3. Nahraďte % za . ~

Pokud například chcete vytvořit pár klíč-hodnota s názvem klíče a názvem popisku, měl AppName:DbEndpoint by být název prostředku Test AppName~3ADbEndpoint$Test .

Poznámka

App Configuration přístup k datům párů klíč-hodnota přes privátní propojení z vaší virtuální sítě. Pokud je tato funkce povolená, ve výchozím nastavení se všechny požadavky na App Configuration dat přes veřejnou síť zamítly. Vzhledem k tomu, že šablona ARM běží mimo vaši virtuální síť, přístup k datům ze šablony ARM není povolený. Pokud chcete povolit přístup k datům ze šablony ARM při použití privátního propojení, můžete přístup k veřejné síti povolit pomocí následujícího příkazu Azure CLI. V tomto scénáři je důležité vzít v úvahu bezpečnostní důsledky povolení přístupu k veřejné síti.

az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true

Nasazení šablony

Vyberte následující obrázek a přihlaste se k Azure a otevřete šablonu. Šablona vytvoří úložiště App Configuration se dvěma hodnotami klíče.

Nasazení do Azure

Šablonu můžete nasadit také pomocí následující rutiny PowerShellu. Hodnoty klíče budou ve výstupu konzoly PowerShellu.

$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"
$templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.appconfiguration/app-configuration-store-kv/azuredeploy.json"

$resourceGroupName = "${projectName}rg"

New-AzResourceGroup -Name $resourceGroupName -Location "$location"
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri

Read-Host -Prompt "Press [ENTER] to continue ..."

Kontrola nasazených prostředků

  1. Přihlaste se k webu Azure Portal.
  2. Do vyhledávacího Azure Portal zadejte App Configuration. Vyberte App Configuration ze seznamu.
  3. Vyberte nově vytvořený prostředek App Configuration prostředků.
  4. V části Operace klikněte na Průzkumník konfigurace.
  5. Ověřte, že existují dvě hodnoty klíče.

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

Pokud už je nepotřebujete, odstraňte skupinu prostředků, App Configuration úložiště a všechny související prostředky. Pokud plánujete používat úložiště App Configuration v budoucnu, můžete jeho odstranění přeskočit. Pokud toto úložiště nadále používat nadále, spuštěním následující rutiny odstraňte všechny prostředky vytvořené v tomto rychlém startu:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."

Další kroky

Informace o přidání příznaku funkce a Key Vault odkaz na úložiště App Configuration najdete v následujících příkladech šablon ARM.