Compartilhar via


Ambiente

O ambiente está na posição 1. Um ambiente corresponde a uma implantação do Resource Manager.

O CycleCloud agora pode gerenciar implantações do Azure Resource Manager com modelos do ARM. Você pode consultar esses ambientes de dentro de objetos de modelo do CycleCloud.

Embora o ambiente tenha classificação 1, é necessário um objeto de cluster no arquivo de modelo de cluster.

Exemplo

[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]

O $ é uma referência ao nome de um parâmetro. É ${} outra maneira de referenciar um nome de parâmetro e permite referência a um ambiente.

Este exemplo inicia o modelo ARM existente em az://mystorageaccount/mycontainer/${ProjectVersion}/vnet.json como uma implantação ARM e fornece o Recurso e Saídas como dados aninhados dentro da vnet variável.

Referência de atributo

Atributo Tipo Definição
Credenciais fio Nome da conta do provedor de nuvem
Região fio Localização do Azure, como westus2
TemplateURL fio URL válida para a localização do modelo ARM na web. Use apenas um atributo Template*.
TemplateContents fio Modelo JSON lido como uma cadeia de caracteres com referência @parametername. Use apenas um atributo Template*.
TemplatePath fio Para uso com o sistema Locker. Acrescenta o caminho ao armário para o local do modelo do ARM. Use apenas um atributo Template*.
Armário fio Para uso com o TemplatePath. Suporta a recuperação de template ARM do armazenamento.
ParameterValues. Parâmetro ARM ParameterValues.my-parameter onde my-parameter é um parâmetro. Os parâmetros nos modelos do ARM dão suporte a cadeia de caracteres, lista, inteiros, booliano.
VariableOverrides. Variável ARM VariableOverrides.my-variable em que my-variable é um nome de variável no modelo do ARM. As variáveis nos modelos do ARM dão suporte a cadeia de caracteres, lista, inteiros, booliano.
ParameterizeVariables booleano Usar com o VariableValues. Expor as variáveis de modelo ARM no menu do cluster UI e no modelo de cluster.
VariableValues Variável ARM Use VariableValues.my-variable. Alternativa a VariableOverrides. Usar com o ParameterizeVariables.
Azure.ResourceGroup fio Nome do Grupo de Recursos do Azure para implantação.
ManagedLifecycle booleano Use com a implantação existente. O padrão é true.
Name fio Nome do grupo de recursos de pré-saída.
Tags fio Use tags.my-tag = my-tag-value para adicionar tags ao grupo de recursos que possui a implantação, além das tags atribuídas pelo CycleCloud por padrão.

Para implantações pré-existentes, o nome do objeto de ambiente refere-se ao nome de implantação do ARM.

Usando recursos e saídas de ambiente

[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}

Seguindo o modelo de implantação do ARM, os ambientes criam recursos e expõem esses recursos aos outros objetos de modelo de cluster para uso.

Usando a notação ${}, você pode referenciar os recursos ARM criados em seu esquema nativo.

Atributo Definição
Saídas. Use como ${environment-name.Outputs.my-output} no modelo em que my-output é o nome de uma saída no modelo do ARM.
Recursos. Use como ${environment-name.Resources.my-resource-name.key1.key2} no modelo em que my-resource-name é o nome de um recurso no modelo ARM e key1, key2 são chaves relacionadas no objeto de recurso.

Referindo-se a recursos aninhados

O CycleCloud representa ambientes com uma estrutura de dados aninhada. Geralmente, você precisa referenciar dados dentro dessa estrutura.

[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}

Os índices de variáveis aninhadas podem depender do tipo de recurso ARM que você está criando. Todos os formatos a seguir são válidos para referências a variáveis aninhadas: env.resources.my-resource-name.id, env.resources['my-resource-name'].ide env.resources[MyResourceParam].