Демистифицирующие шаблоны руки (12 части серии)
В предыдущих руководствах мы узнаем, как создавать ресурсы, используя шаблон Azure Resources (ARM). Тем не менее, это было все статическое и определенное внутри шаблон. В этом руководстве вы узнаете, как использовать параметры, чтобы сделать ваш шаблон динамическими и проще в использовании.
Azure DEVOPS — DEVOPS LAB — Видео
Типы параметров
Чтобы сделать наш шаблон Dynamic, мы можем пройти некоторую информацию, когда мы называем ее используемыми параметрами. Помните параметры раздела в верхней части шаблонов?
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, }
Это где мы определим наши параметры. Существует несколько типов параметров, но прежде чем мы отправимся в список их и видим некоторые сценарии, давайте понять, как определены параметры.
Определение параметров в шаблонах менеджера ресурсов Azure Resource
Легко подумать о параметрах, таких как клавишевое значение. Что-то вроде параметра как имя и значение. Но там гораздо больше, чем это. Давайте рассмотрим здесь наш раздел параметра.
"parameters": { "storageSKU": { "type": "string", "allowedValues": [ "Standard_LRS", "Standard_ZRS", "Standard_GRS", "Standard_RAGRS", "Premium_LRS" ], "defaultValue": "Premium_LRS", "metadata": { "description": "The type of replication to use for the storage account." } } }
Есть один параметр определяет здесь с именем Storagesku
. Это строка, но потому что мы не были, когда пользователи пишут любые значения, которые мы использовали Пусть
Свойство, чтобы перечислить разрешенное значение для нашего параметра. Пункты — это массив значений любого типа.
Это хорошая практика для использования двух других свойств, чтобы помочь пользователю понять, как использовать наш параметр: DefaultValue
и Описание
Отказ Значение по умолчанию Это способ сказать пользователю, если вы не знаете, просто говорите что-нибудь. Это отличный способ сделать наш шаблон простым в использовании без ущерба для гибкости. Описание, часть секции метаданных, это то, что, конечно, вы даете наиболее подробную информацию об ожидаемом значении и/или влиянии на развернутые ресурсы.
Чтобы дополнить тех, кто также есть Minvalue, Minlength, MaxValue и Max длина, которая ограничивает то, что приемлемо в качестве значения.
Типы параметров
Существуют несколько типов параметров для размещения информации различного типа. Мы уже упоминаем Строка
Тип и другие больше и типа int.
, Bool
и Массив
Отказ
Тогда есть SecureString
Очень удобный способ передать пароль, например. Используя SecureString
Тип убедитесь, что информация не может быть прочитана после развертывания ресурсов.
Наконец, у нас есть объект
и SecureObject
Отказ С помощью этих вы можете определить полный объект со многими свойствами, это чрезвычайно мощно. И все становятся очень гибкими, когда вы начинаете смешивать все эти типы вместе, например, пропустить массив объектов! Мы рассмотрим эти сценарии в следующей главе.
Использование параметров
Теперь, когда мы знаем, как объявить параметры, пришло время посмотреть, как мы их используем. Это может быть легко сделать с помощью имени функции Параметры ({parametername})
это включено в руку. Эта функция вернет значение «parametername». Например Параметры («Storagesku»)
вернется «Premium_lrs».
Чтобы использовать эту функцию внутри шаблона руки, нам нужно разместить его между квадратными кронштейнами []
. В следующем образце мы устанавливаем значение свойства, равное парамеру.
{ ... "name": "[parameters('storageSKU')]", ... }
Развертывание с параметрами
Мы учимся в предыдущей главе разные способы развертывания шаблона руки, но как вы можете сделать то же самое, проходящие значения параметров? Конечно, с Azure CLI, вы могли бы просто пройти все значение клавише в команду, как это:
az group deployment create -g MyResourceGroup --template-file azuredeploy.json --parameters storageName=tstStorage storageKind=StorageV2
Это действительная команда, и она будет работать. Однако это не очень удобно и портативный. У меня лучше будет пройти файл параметра. И у вас может быть другой файл в зависимости от среды, которую вы ориентируетесь.
az group deployment create -g MyResourceGroup --template-file azuredeploy.json --parameters azuredeploy.parameters.json
Создайте файл параметра.
Файл параметра — это еще один файл json. Таким образом, вы можете легко создать это в любом текстовом редакторе. Однако есть несколько действительно хороших функций в расширении кода VS: Azure Resource Manager (ARM) Инструменты Это заставит вас сэкономить много времени.
Чтобы создать новый файл параметра, просто щелкните правой кнопкой мыши в любом месте в шаблоне ARM, чтобы сделать контекстное меню для всплывающего окна. Выберите Выберите/Создать файл параметра … Тогда Новый и наконец Все параметры Отказ
Это создаст новый файл со следующей структурой.
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "storageSKU": { "value": "Premium_LRS" } } }
Интересная особенность использования Azure Resource Manager (ARM) Инструменты Это то, что он проверит шаблон и значения параметров, связанных с ним.
Сообщение об ошибке проверки можно увидеть мышкой Over Old или в Проблема Вкладка в консоли (Ctrl + `
).
Больше безопасности
SecureString
Внутри шаблон руки действительно велик. Используя их, убедитесь, что наша конфиденциальная информация не будет отображаться в журналах. Но если мы используем файл параметра, то значение также будет присутствовать в чистом тексте! Чтобы не делать это, и по ошибке, толкая наш пароль в исходном управлении, нам нужно использовать Azure KeyVault. . Вам нужно будет иметь активное keyWault, и вы сможете ссылаться на ваш секрет в файле параметров, как это.
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "adminPassword": { "reference": { "keyVault": { "id": "/subscriptions//resourceGroups/ /providers/Microsoft.KeyVault/vaults/ " }, "secretName": "ExamplePassword" } }, } }
В этом образце мы бы прошли секрет Secretname содержатся в keyvault Отказ Чтобы узнать, как создать keyvault, см. Используйте Vault Key Azure, чтобы пройти безопасное значение параметра во время развертывания
Ссылка:
Демистифицирующие шаблоны руки (12 части серии)
Оригинал: «https://dev.to/azure/demystifying-arm-templates-parameters-55h4»