Среда
Среда имеет ранг 1. Среда соответствует развертыванию Resource Manager.
CycleCloud теперь может управлять развертываниями Azure Resource Manager с помощью шаблонов ARM. Эти среды можно ссылаться из объектов шаблона CycleCloud.
Хотя среда имеет ранг 1, в файле шаблона кластера требуется объект кластера.
Пример
[environment vnet]
ManagedLifecycle=true
TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json
ParameterValues.backendIpAddress1 = 10.0.1.4
VariableOverrides.virtualNetworkName = azure-vnet
[environment appgateway]
TemplateURL = https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-application-gateway-waf/azuredeploy.json
ParameterValues.virtualNetworkName = ${vnet.Parameters.virtualNetworkName}
[environment existing]
Azure.ResourceGroup = existingrg
ManagedLifecycle = false
[cluster my-cluster]
Ссылка $
на имя параметра. Другой ${}
способ ссылки на имя параметра и позволяет ссылаться на среду.
В этих примерах будет запущен шаблон ARM, существующий в az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json в качестве развертывания ARM, а также предоставленный ресурс и выходные данные в качестве вложенных данных в переменной vnet
.
Справочник по атрибутам
attribute | Тип | Определение |
---|---|---|
Учетные данные | Строка | Имя учетной записи поставщика облачных служб |
Регион | Строка | Расположение Azure, например. westus2 |
TemplateURL | Строка | Допустимый URL-адрес для расположения шаблона ARM в Интернете. Используйте только один атрибут Template*. |
TemplateContents | Строка | Чтение в json-файле шаблона в виде строки со @parametername ссылкой. Используйте только один атрибут Template*. |
TemplatePath | Строка | Для использования с Locker. Добавляет путь к locker для расположения шаблона arm. Используйте только один атрибут Template*. |
Шкафчик | Строка | Для использования с TemplatePath. Поддерживает извлечение шаблона arm из шкафчика. |
ParameterValues. | Параметр ARM | ParameterValues.my-параметр, где my-parameter является параметром. Параметры в шаблонах ARM поддерживают строку, список, целые числа, логические значения. |
VariableOverrides. | Переменная ARM | VariableOverrides.my-переменная, где my-variable — это имя переменной в шаблоне ARM. Переменные в шаблонах ARM поддерживают строку, список, целые числа, логические значения. |
ParameterizeVariables | Логическое | Используется с VariableValues. Предоставление переменных шаблона ARM в меню пользовательского интерфейса кластера и шаблоне кластера. |
VariableValues. | Переменная ARM | переменная VariableValues.my. Альтернатива VariableOverrides. Используется с ParameterizeVariables. |
Azure.ResourceGroup | Строка | Имя группы ресурсов Azure для развертывания. |
ManagedLifecycle | Логическое | Для использования с существующим развертыванием. Значение по умолчанию — true. |
Имя | Строка | Имя группы ресурсов перед выходом. |
Теги. | Строка | Используется tags.my-tag = my-tag-value для добавления тегов в группу ресурсов, включающую развертывание в дополнение к тегам, назначенным CycleCloud по умолчанию. |
Для существующих развертываний имя объекта среды ссылается на имя развертывания ARM.
Использование ресурсов среды и выходных данных
[environment vnet]
ManagedLifecycle=true
TemplateURL = az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json
[cluster my-cluster]
[[node proxy]]
IsReturnProxy = True
SubnetId = ${vnet.resources.'azure-vnet/ProxySubnet'.id}
После модели развертывания ARM среды создают ресурсы и предоставляют эти ресурсы другим объектам шаблона кластера для использования.
Используя нотацию ${}
, можно ссылаться на созданные ресурсы ARM в собственной схеме.
attribute | Определение |
---|---|
Выходные данные | Используйте как ${environment-name.Outputs.my-output} в шаблоне, где my-output — это имя выходных данных в шаблоне ARM. |
Ресурсы. | Используйте как ${environment-name.Resources.my-resource-name.key1.key2} в шаблоне, где my-resource-name — это имя ресурса в шаблоне ARM и key1, ключ2 — это ключи, связанные с объектом ресурса. |
Ссылка на вложенные ресурсы
Среды, управляемые CycleCloud, представлены вложенной структурой данных. Часто бывает полезно ссылаться на данные в этой структуре.
[environment db]
TemplateContents = @raw-db-json
ParameterValues.DBName = @DBNameParameter
[cluster my-cluster]
[[node my-node]]
SubnetId = ${network.resources.'vnet/ComputeSubnet'.id}
[[[configuration database]]]
connection_string = ${db.Outputs.JDBCConnectionString}
database_id = ${db.resources[ClusterName].id}
Индексы вложенных переменных могут зависеть от создаваемого типа ресурса ARM.
env.resources.my-resource-name.id
, env.resources['my-resource-name'].id
env.resources[MyResourceParam]
— это все допустимые форматы ссылок на вложенные переменные.