Szybki start: tworzenie magazynu konfiguracji aplikacja systemu Azure przy użyciu szablonu usługi ARM
W tym przewodniku Szybki start opisano, jak:
- Wdrażanie magazynu usługi App Configuration przy użyciu szablonu usługi Azure Resource Manager (szablonu usługi ARM).
- Utwórz wartości klucz-w magazynie usługi App Configuration przy użyciu szablonu usługi ARM.
- Odczytywanie wartości kluczy w magazynie usługi App Configuration z szablonu usługi ARM.
Napiwek
Flagi funkcji i odwołania do usługi Key Vault są specjalnymi typami kluczy-wartości. Zapoznaj się z kolejnymi krokami , aby zapoznać się z przykładami tworzenia ich przy użyciu szablonu usługi ARM.
Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.
Jeśli Twoje środowisko spełnia wymagania wstępne i masz doświadczenie w korzystaniu z szablonów ARM, wybierz przycisk Wdróż na platformie Azure. Szablon zostanie otwarty w witrynie Azure Portal.
Wymagania wstępne
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Autoryzacja
Zarządzanie zasobem aplikacja systemu Azure Configuration wewnątrz szablonu usługi ARM wymaga roli usługi Azure Resource Manager, takiej jak współautor lub właściciel. Uzyskiwanie dostępu do danych konfiguracji aplikacja systemu Azure (klucz-wartości, migawki) wymaga roli usługi Azure Resource Manager i aplikacja systemu Azure roli płaszczyzny danych konfiguracji w trybie uwierzytelniania przekazywanego usługi ARM.
Ważne
Konfigurowanie trybu uwierzytelniania usługi ARM wymaga wersji 2023-08-01-preview
interfejsu API płaszczyzny sterowania usługi App Configuration lub nowszej.
Przegląd szablonu
Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure. Tworzy nowy magazyn usługi App Configuration z dwoma kluczami wewnątrz. Następnie używa reference
funkcji do wyprowadzania wartości dwóch zasobów klucz-wartość. Odczytywanie wartości klucza w ten sposób umożliwia użycie go w innych miejscach w szablonie.
W przewodniku Szybki start użyto copy
elementu do utworzenia wielu wystąpień zasobu klucz-wartość. Aby dowiedzieć się więcej na temat copy
elementu, zobacz Iteracja zasobów w szablonach usługi ARM.
Ważne
Ten szablon wymaga wersji 2022-05-01
interfejsu API płaszczyzny sterowania usługi App Configuration lub nowszej. Ta wersja używa reference
funkcji do odczytywania wartości klucz-wartość. Funkcja listKeyValue
używana do odczytywania wartości kluczy w poprzedniej wersji nie jest dostępna, począwszy od wersji 2020-07-01-preview
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.30.23.60470",
"templateHash": "539800420350662594"
}
},
"parameters": {
"configStoreName": {
"type": "string",
"defaultValue": "[format('appconfig{0}', uniqueString(resourceGroup().id))]",
"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": "2024-05-01",
"name": "[parameters('configStoreName')]",
"location": "[parameters('location')]",
"sku": {
"name": "standard"
}
},
{
"copy": {
"name": "configStoreKeyValue",
"count": "[length(parameters('keyValueNames'))]"
},
"type": "Microsoft.AppConfiguration/configurationStores/keyValues",
"apiVersion": "2024-05-01",
"name": "[format('{0}/{1}', parameters('configStoreName'), parameters('keyValueNames')[copyIndex()])]",
"properties": {
"value": "[parameters('keyValueValues')[copyIndex()]]",
"contentType": "[parameters('contentType')]",
"tags": "[parameters('tags')]"
},
"dependsOn": [
"[resourceId('Microsoft.AppConfiguration/configurationStores', parameters('configStoreName'))]"
]
}
],
"outputs": {
"reference_key_value_value": {
"type": "string",
"value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[0]), '2024-05-01').value]"
},
"reference_key_value_object": {
"type": "object",
"value": {
"name": "[parameters('keyValueNames')[1]]",
"properties": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2024-05-01')]"
}
}
}
}
Dwa zasoby platformy Azure są zdefiniowane w szablonie:
- Microsoft.AppConfiguration/configurationStores: utwórz magazyn usługi App Configuration.
- Microsoft.AppConfiguration/configurationStores/keyValues: utwórz klucz-wartość w magazynie App Configuration.
Napiwek
Nazwa keyValues
zasobu jest kombinacją klucza i etykiety. Klucz i etykieta są przyłączone przez $
ogranicznik. Etykieta jest opcjonalna. W powyższym przykładzie keyValues
zasób o nazwie myKey
tworzy wartość klucza bez etykiety.
Kodowanie procentowe, nazywane również kodowaniem adresów URL, umożliwia kluczom lub etykietom dołączanie znaków, które nie są dozwolone w nazwach zasobów szablonu usługi ARM. %
jest niedozwolonym znakiem, więc ~
jest używany w jego miejscu. Aby poprawnie zakodować nazwę, wykonaj następujące kroki:
- Stosowanie kodowania adresów URL
- Zastąp ciąg
~
ciągiem~7E
- Zastąp ciąg
%
ciągiem~
Aby na przykład utworzyć parę klucz-wartość z nazwą AppName:DbEndpoint
klucza i nazwą Test
etykiety , nazwa zasobu powinna mieć wartość AppName~3ADbEndpoint$Test
.
Uwaga
Usługa App Configuration umożliwia dostęp do danych klucz-wartość za pośrednictwem łącza prywatnego z sieci wirtualnej. Domyślnie po włączeniu funkcji wszystkie żądania dotyczące danych usługi App Configuration w sieci publicznej są odrzucane. Ponieważ szablon usługi ARM działa poza siecią wirtualną, dostęp do danych z szablonu usługi ARM nie jest dozwolony. Aby zezwolić na dostęp do danych z szablonu usługi ARM, gdy jest używany link prywatny, możesz włączyć dostęp do sieci publicznej przy użyciu następującego polecenia interfejsu wiersza polecenia platformy Azure. Ważne jest, aby w tym scenariuszu wziąć pod uwagę implikacje bezpieczeństwa dotyczące włączania dostępu do sieci publicznej.
az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true
Wdrażanie szablonu
Wybierz poniższy obraz, aby zalogować się na platformie Azure i otworzyć szablon. Szablon tworzy magazyn usługi App Configuration z dwoma kluczami wewnątrz.
Szablon można również wdrożyć przy użyciu następującego polecenia cmdlet programu PowerShell. Wartości klucza będą znajdować się w danych wyjściowych konsoli programu PowerShell.
$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 ..."
Przeglądanie wdrożonych zasobów
- Zaloguj się w witrynie Azure Portal.
- W polu wyszukiwania w witrynie Azure Portal wpisz App Configuration. Wybierz pozycję Konfiguracja aplikacji z listy.
- Wybierz nowo utworzony zasób usługi App Configuration.
- W obszarze Operacje kliknij pozycję Eksplorator konfiguracji.
- Sprawdź, czy istnieją dwie wartości klucza.
Czyszczenie zasobów
Gdy grupa zasobów, magazyn App Configuration i wszystkie powiązane zasoby nie będą już potrzebne, usuń grupę zasobów. Jeśli planujesz korzystać z magazynu App Configuration w przyszłości, możesz pominąć jego usunięcie. Jeśli nie zamierzasz nadal korzystać z tego magazynu, usuń wszystkie zasoby utworzone w tym przewodniku Szybki start, uruchamiając następujące polecenie cmdlet:
$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."
Następne kroki
Aby dowiedzieć się więcej na temat dodawania flagi funkcji i odwołania usługi Key Vault do magazynu usługi App Configuration, zapoznaj się z poniższymi przykładami szablonów usługi ARM.