다음을 통해 공유


변수 라이브러리의 값 집합

변수 라이브러리의 값 집합은 환경별 구성(예: 개발, 테스트, prod), A/B 테스트 또는 동일한 작업 영역 내의 데이터 원본 전환과 같은 시나리오를 지원하는 정의된 변수에 대한 대체 값 집합을 제공합니다.

각 값 집합은 필요에 따라 재정의할 수 있는 기본 변수 값에 대한 포인터 컬렉션으로 만들어집니다. 지정된 작업 영역에 대해 한 번에 하나의 값 집합만 활성화할 수 있으며 사용자는 UI 또는 API를 통해 활성 집합을 쉽게 전환할 수 있습니다.

값 집합은 라이브러리 내에서 고유하게 이름이 지정되며 이름을 바꾸거나, 순서를 변경하거나( git 또는 정의 API를 사용한 업데이트를 통해서만) 삭제할 수 있습니다(재할당 없이 활성 집합 삭제를 방지하기 위한 보호 기능 사용). 시스템은 변경 내용을 추적하고 크기 제한을 적용하여 성능을 보장하며 저장하기 전에 값 집합에 대한 수정 내용의 유효성을 검사합니다. 이 구조를 사용하면 강력한 구성 관리가 가능하므로 개발자는 여러 환경 및 단계에서 배포를 자동화하고 일관성을 유지할 수 있습니다.

값 집합의 구조 및 구현

변수 라이브러리 항목의 정의는 여러 값 집합을 지원하도록 구조화됩니다. 항목의 스키마(JSON 정의)에서 모든 변수와 해당 기본값은 기본 섹션(Git의 "기본값" 파일이라고도 함)에 나열됩니다. 각 추가 값 집합은 기본값과 다른 변수만 포함하는 별도의 엔터티(또는 파일)로 저장됩니다. 즉, 지정된 값 집합의 변수 값이 기본값과 같으면 해당 값 집합의 정의에서 명시적으로 반복되지 않습니다.

  • 기본값 집합: 항상 존재하며 모든 변수의 기준 값(이름 및 형식과 같은 메타데이터)을 포함합니다. 기본값 파일은 모든 변수를 기본값(기본) 값으로 열거합니다.

  • 대체 값 집합: 각 추가 값 집합(예: "Test" 또는 "Prod" 값 집합)에 대해 정의는 값이 기본값을 재정의하는 변수만 나열합니다. 변수가 특정 값 집합 파일에 나열되지 않으면 해당 집합의 기본값을 암시적으로 사용합니다.

예: 기본값이 "dev-server"인 ConnectionString 변수가 있고 이를 "prod-server"로 재정의하는 "프로덕션" 값 집합을 만드는 경우 기본 정의에는 ConnectionString = "dev-server"가 있고 , "Production" 값 집합의 파일에 ConnectionString = "prod-server"(변경되지 않은 변수에 대해서는 아무것도 포함되지 않음)가 포함됩니다. 이 방법은 값 집합 정의를 간결하게 유지하고 차이점만 강조 표시합니다.

소스 제어 표현

패브릭의 Git 통합에서 위의 스키마는 변수 라이브러리의 폴더 아래에 있는 여러 파일로 변환됩니다. 기본적으로 각 값 집합은 기본값 파일과 별도로 재정의를 포함하는 고유한 JSON 파일(값 집합의 이름을 따서 명명됨)으로 직렬화됩니다. 예를 들어 VL 항목 "MyVars"에는 다음이 있을 수 있습니다.

MyVars_Default.json – 모든 변수의 기본값입니다. MyVars_Prod.json – "Prod" 스테이지에 대해 값이 다른 변수만 있습니다. MyVars_Test.json – "테스트" 단계에 대해 값이 다른 변수만 있습니다.

이 명확한 분리는 소스 제어에서 독립적으로 각 환경의 구성에 대한 변경 내용을 추적할 수 있습니다.

중요한 것은 활성 값 집합 선택이 이러한 정의 파일의 일부가 아니라 항목 상태(작업 영역 수준 설정)로 저장되므로 항목을 배포하거나 가져오면 지정된 작업 영역에서 현재 활성화된 값 집합을 덮어쓰지 않습니다. (아래 활성 값 집합에 대한 자세한 내용을 참조하세요.)

스키마 및 데이터 형식

값 집합은 새 데이터 형식을 도입하지 않습니다. 각 변수에 정의된 동일한 형식의 값을 보유합니다. 항목 정의는 각 변수의 이름, 형식, 기본값 및 선택적 메모를 기록합니다. 항목 참조와 같은 복잡한 변수 형식에는 구조화된 스키마(ID 저장)가 있지만 이러한 값은 일관된 JSON 구조를 사용하여 각 값 집합에 표시됩니다(예: 항목 참조는 해당 단계의 항목에 대한 작업 영역 ID + 항목 ID를 저장함). 모든 값 집합 파일은 기본값과 동일한 스키마 구조를 따릅니다. 기본적으로 변수 이름을 해당 집합의 값에 매핑합니다(기본값과 다른 값만 포함).

값 집합에 대한 명명 규칙

변수 라이브러리 내에 설정된 값의 이름은 다음 규칙을 따라야 합니다.

  • 비어 있지 않음
  • 선행 또는 후행 공백이 없습니다.
  • 문자 또는 밑줄로 시작
  • 문자, 숫자, 밑줄 및 하이픈을 포함할 수 있습니다.
  • 길이가 256자를 초과하지 않음

변수에 정의된 값이 있으면 해당 형식을 변경하려고 하면 동의 대화 상자가 나타납니다. 대화 상자는 모든 변수 값이 다시 설정되고 이 변경이 소비자 항목 쪽에서 호환성이 손상되는 변경이 될 수 있음을 경고합니다.

고려사항 및 제한사항

대체 값 집합에 대한 제한 사항

  • 변수 라이브러리의 대체 값 집합은 추가한 순서대로 표시됩니다. 현재는 UI에서 순서를 변경할 수 없습니다. 순서를 변경하려면 JSON 파일을 직접 편집합니다.
  • 각 값 집합의 이름은 변수 라이브러리 내에서 고유해야 합니다.
  • 변수 이름은 변수 라이브러리 내에서 고유해야 합니다. 다른 항목에 있는 경우 작업 영역에서 이름이 같은 두 개의 변수를 가질 수 있습니다.
  • 변수 라이브러리에는 항상 한 번에 하나의 활성 값만 설정됩니다. 활성 상태인 동안에는 값 집합을 삭제할 수 없습니다. 삭제하려면 먼저 다른 값 집합을 활성으로 구성합니다. 배포 파이프라인의 각 단계에 대해 다른 활성 값을 설정할 수 있습니다.