Partilhar via


Conjuntos de valores em bibliotecas de variáveis

Conjuntos de valores numa biblioteca de variáveis fornecem conjuntos alternativos de valores para as variáveis definidas, suportando cenários como configurações específicas do ambiente (por exemplo, dev, test, prod), testes A/B ou comutação de fontes de dados dentro do mesmo espaço de trabalho.

Cada conjunto de valores é criado como uma coleção de ponteiros para o valor das variáveis padrão, que podem ser substituídos conforme necessário. Apenas um conjunto de valores pode estar ativo de cada vez para um dado espaço de trabalho, e os utilizadores podem facilmente alternar o conjunto ativo através da interface ou API.

Os conjuntos de valores têm nomes únicos dentro da biblioteca e podem ser renomeados, reordenados (apenas através do git ou da atualização com API de definição) ou eliminados (com salvaguardas para evitar a eliminação do conjunto ativo sem reatribuição). O sistema acompanha alterações e impõe limites de tamanho para garantir o desempenho, e qualquer modificação nos conjuntos de valores é validada antes de ser guardada. Esta estrutura permite uma gestão robusta da configuração, permitindo aos programadores automatizar implementações e manter a consistência em múltiplos ambientes e etapas.

Estrutura e Implementação dos Conjuntos de Valores

A definição do item da Biblioteca de Variáveis está estruturada para suportar múltiplos conjuntos de valores. No esquema do item (a sua definição em JSON), todas as variáveis e os seus valores padrão são listados numa secção primária (frequentemente chamada de ficheiro "Valores Padrão" no Git). Cada conjunto de valores adicional é armazenado como uma entidade separada (ou ficheiro) contendo apenas as variáveis que diferem do padrão. Por outras palavras, se o valor de uma variável num dado conjunto de valores for igual ao padrão, não é explicitamente repetido na definição desse conjunto de valores.

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

  • Conjunto Alternativo de Valores: Para cada conjunto adicional de valores (por exemplo, um conjunto de valores "Test" ou "Prod"), a definição lista apenas as variáveis onde o valor sobrepõe-se ao padrão. Se uma variável não estiver listada num determinado ficheiro de conjunto de valores, ela usa implicitamente o valor padrão desse conjunto.

Exemplo: Se tiveres uma variável ConnectionString com valor padrão "dev-server" e criares um conjunto de valores "Production" a sobrepor este para "prod-server", a definição Default terá ConnectionString = "dev-server", e o ficheiro do conjunto de valores "Production" conterá ConnectionString = "prod-server" (e nada para variáveis que permanecem inalteradas). Esta abordagem mantém as definições de conjunto de valores enxutas e destaca apenas as diferenças.

Representação de Controlo de Versão

Na integração Git do Fabric, o esquema acima traduz-se em múltiplos ficheiros na pasta da Biblioteca de Variáveis. Por conceção, cada conjunto de valores é serializado para o seu próprio ficheiro JSON (nomeado a partir do conjunto de valores) contendo os seus overrides, separados do ficheiro de valores padrão. Por exemplo, um item VL "MyVars" pode ter:

MyVars_Default.json – valores padrão de todas as variáveis. MyVars_Prod.json – apenas variáveis com valores diferentes na etapa "Prod". MyVars_Test.json – apenas variáveis com valores diferentes para a fase "Teste".

Esta separação clara significa que pode rastrear as alterações à configuração de cada ambiente de forma independente no controlo de origem.

Importa referir que a seleção ativa do conjunto de valores não faz parte destes ficheiros de definição – é armazenada como estado do item (uma definição ao nível do espaço de trabalho) para que a implementação ou importação do item não sobreescreva qual conjunto de valores está atualmente ativo num dado espaço de trabalho. (Mais informações sobre conjuntos de valores ativos abaixo.)

Esquema e Tipos de Dados

Os conjuntos de valores não introduzem novos tipos de dados; elas contêm valores dos mesmos tipos definidos por cada variável. A definição do item regista o nome, tipo, valor padrão e nota opcional de cada variável. Tipos complexos de variáveis como referência de item têm esquemas estruturados (armazenando IDs), mas esses valores são representados em cada conjunto de valores usando uma estrutura JSON consistente (por exemplo, uma referência de item armazena ID de espaço de trabalho + ID de item para o item dessa fase). Todos os ficheiros de conjunto de valores seguem a mesma estrutura de esquema do padrão: essencialmente um mapeamento dos nomes das 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 hífenes
  • Não excede 256 caracteres

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 todos os valores das variáveis serão redefinidos e que essa alteração pode ser uma alteração de quebra no lado do item do consumidor.

Considerações e limitações

Limitações para conjuntos de valores alternativos

  • Os conjuntos de valores alternativos em uma biblioteca de variáveis aparecem na ordem em que foram adicionados. Atualmente, não é possível 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 dentro de uma biblioteca de variáveis.
  • Os nomes das variáveis devem ser exclusivos dentro de uma biblioteca de variáveis. Você pode ter duas variáveis com o mesmo nome em um espaço de trabalho se elas estiverem em itens diferentes.
  • Há sempre um (e apenas um) valor ativo definido em uma biblioteca variável 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 ter um valor ativo diferente definido para cada estágio de um pipeline de implantação.