Compartilhar via


Conjuntos de valores em bibliotecas de variáveis

Os conjuntos de valores em uma biblioteca de variáveis fornecem conjuntos alternativos de valores para as variáveis definidas, oferecendo suporte a cenários como configurações específicas do ambiente (por exemplo, desenvolvimento, teste, prod), teste A/B ou alternância de fonte de dados no mesmo workspace.

Cada conjunto de valores é criado como uma coleção de ponteiros para o valor de variáveis padrão, que pode ser substituído conforme necessário. Apenas um conjunto de valores pode estar ativo por vez para um determinado workspace e os usuários podem facilmente alternar o conjunto ativo por meio da interface do usuário ou da API.

Os conjuntos de valores são nomeados exclusivamente dentro da biblioteca e podem ser renomeados, reordenados (somente por meio do git ou da atualização com a API de definição) ou excluídos (com proteções para impedir a exclusão do conjunto ativo sem reatribuição). O sistema controla as alterações e impõe limites de tamanho para garantir o desempenho e qualquer modificação em conjuntos de valores é validada antes de salvar. Essa estrutura permite um gerenciamento de configuração robusto, permitindo que os desenvolvedores automatizem implantações e mantenham a consistência em vários ambientes e estágios.

Estrutura e implementação de conjuntos de valores

A definição do item biblioteca de variáveis é estruturada para dar suporte a vários conjuntos de valores. No esquema do item (sua definição JSON), todas as variáveis e seus valores padrão são listados em uma seção primária (geralmente chamada de arquivo "Valores padrão" no Git). Cada conjunto de valores adicional é armazenado como uma entidade separada (ou arquivo) que contém apenas as variáveis que diferem do padrão. Em outras palavras, se o valor de uma variável em um determinado conjunto de valores for o mesmo que o padrão, ele não será explicitamente repetido na definição desse conjunto de valores.

  • Conjunto de Valores Padrão: Sempre presente e contém o valor da linha de base de cada variável (juntamente com metadados como nome e tipo). O arquivo de valores padrão enumera todas as variáveis com seus valores padrão (primário).

  • Conjunto de Valores Alternativos: para cada conjunto de valores adicional (por exemplo, um conjunto de valores "Test" ou "Prod"), a definição lista apenas as variáveis em que o valor substitui o padrão. Se uma variável não estiver listada em um arquivo de conjunto de valores específico, ela usará implicitamente o valor padrão para esse conjunto.

Exemplo: se você tiver uma variável ConnectionString com o valor padrão "dev-server" e criar um conjunto de valores "Produção" substituindo-o como "prod-server", a definição padrão terá ConnectionString = "dev-server" e o arquivo do conjunto de valores "Produção" conterá ConnectionString = "prod-server" (e nada para variáveis que permanecem inalteradas). Essa abordagem mantém as definições do conjunto de valores magras e realça apenas as diferenças.

Representação de controle do código-fonte

Na integração do Git do Fabric, o esquema acima se traduz em vários arquivos na pasta da Biblioteca de Variáveis. Por design, cada conjunto de valores é serializado para seu próprio arquivo JSON (nomeado após o conjunto de valores) que contém suas substituições, separadas do arquivo de valores padrão. Por exemplo, um item de VL "MyVars" pode ter:

MyVars_Default.json – todos os valores padrão de todas as variáveis. MyVars_Prod.json – somente variáveis com valores diferentes para o estágio "Prod". MyVars_Test.json – somente variáveis com valores diferentes para o estágio "Teste".

Essa separação clara significa que você pode controlar as alterações na configuração de cada ambiente independentemente no controle do código-fonte.

É importante ressaltar que a seleção do conjunto de valores ativos não faz parte desses arquivos de definição – ela é armazenada como estado do item (uma configuração no nível do workspace) para que a implantação ou importação do item não substitua qual conjunto de valores está ativo atualmente em um determinado workspace. (Mais informações sobre os conjuntos de valores ativos abaixo.)

Tipos de esquema e dados

Os conjuntos de valores não introduzem novos tipos de dados; eles contêm valores dos mesmos tipos definidos por cada variável. A definição de item registra o nome, o tipo, o valor padrão e a observação opcional de cada variável. Tipos de variáveis complexas, como referência de item e referência de conexão, têm esquemas estruturados para armazenar IDs, e esses valores são representados em cada conjunto de valores usando uma estrutura JSON consistente (por exemplo, uma referência de item armazena o ID do workspace e o ID do item para o item desse estágio). Todos os arquivos de conjunto de valores seguem a mesma estrutura de esquema que o padrão: essencialmente um mapeamento de nomes de variáveis para os valores desse conjunto (incluindo apenas aqueles que divergem do padrão).

Convenções de nomenclatura para conjuntos de valores

O nome de um conjunto de valores dentro de uma biblioteca de variáveis deve seguir estas convenções:

  • Não está vazio
  • Não tem espaços à esquerda ou à direita
  • Começa com uma letra ou um sublinhado
  • Pode incluir letras, números, sublinhados e hifens
  • Não excede 256 caracteres de comprimento

Depois que uma variável tiver um valor definido, se você tentar alterar seu tipo, uma caixa de diálogo de consentimento será exibida. A caixa de diálogo alerta que todas as variáveis serão redefinidas e que essa alteração pode ser uma alteração disruptiva no lado do item de consumo.

Considerações e limitações

Limitações para conjuntos de valores alternativos

  • Conjuntos de valores alternativos em uma biblioteca de variáveis aparecem na ordem em que você os adicionou. Atualmente, você não pode reordená-los na interface do usuário. Para alterar a ordem, edite o arquivo JSON diretamente.
  • O nome de cada conjunto de valores deve ser exclusivo em uma biblioteca de variáveis.
  • Os nomes de variáveis devem ser exclusivos em uma biblioteca de variáveis. Você pode ter duas variáveis com o mesmo nome em um workspace se elas estiverem em itens diferentes.
  • Há sempre um (e apenas um) valor ativo definido em uma biblioteca de variáveis de cada vez. Não é possível excluir um conjunto de valores enquanto ele estiver ativo. Para excluí-lo, primeiro configure outro conjunto de valores para estar ativo. Você pode definir um valor ativo diferente para cada estágio de um pipeline de implantação.