Поделиться через


Среда

Среда имеет ранг 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'].idenv.resources[MyResourceParam] — это все допустимые форматы ссылок на вложенные переменные.