플래그 세트 사용

이 가이드에서는 플래그를 그룹화하고, 세트에서 출시를 만들고, 플래그 세트를 구독하도록 플래그를 구성하는 방법을 보여줍니다.

플래그 세트는 관련 기능 플래그 그룹을 관리하기 위한 논리적 컨테이너입니다. 애플리케이션이 증가하고 개별 플래그 수가 늘어남에 따라 플랫 목록에서 플래그를 관리하는 것이 번거롭고 오류가 발생하기 쉬워질 수 있습니다.

플래그 세트를 사용하면 기능 영역, 애플리케이션 구성요소 또는 기타 논리적 기준에 따라 플래그를 구성하여 플래그 작업에 대한 상위 수준 추상화를 제공할 수 있습니다.

기본 요건

시작하기 전에 다음 사항을 확인하세요.

  1. App Lifecycle Manager 리소스를 관리하도록 구성된 gcloud 환경
  2. 기능 플래그 배포 빠른 시작 완료

기능 플래그 그룹화

플래그를 그룹화하려면 생성 중에 flag_set 식별자와 연결하거나 기존 플래그를 업데이트합니다. 이 식별자는 소유권의 명확한 경계를 만들고 플래그 세트를 단일 리소스로 사용할 수 있도록 합니다.

플래그 세트에서 플래그 만들기

gcloud beta app-lifecycle-manager flags create "auth-flag" \
    --key="auth-flag" \
    --flag-value-type=BOOL \
    --location=global \
    --flag-set="auth-module-flags" \
    --description="Flag for the core authentication service."

기존 플래그를 업데이트하여 플래그 세트에 추가

gcloud beta app-lifecycle-manager flags update "auth-flag" \
    --location="global"
    --flag-set="auth-module-flags"

플래그 세트에서 출시 만들기

모든 플래그에 대해 특정 시점 스냅샷 (FlagRevisions)을 수동으로 만드는 대신 하나 이상의 세트를 참조하는 FlagRelease를 만들 수 있습니다. App Lifecycle Manager는 필요한 모든 변경 불가능한 스냅샷 생성을 자동으로 처리합니다.

gcloud beta app-lifecycle-manager flags releases create "auth-release-v1.2" \
    --location=global \
    --flag-sets='["auth-module-flags"]' \
    --unit-kind="UNIT_KIND_NAME"

UNIT_KIND_NAME을 단위 종류로 바꿉니다.

모든 플래그에 대한 출시 만들기

all_flags 불리언을 true로 설정하여 출시의 단위 종류에 연결된 모든 플래그를 가져올 수 있습니다.

gcloud beta app-lifecycle-manager flags releases create "all-flags-release" \
    --location=global \
    --all-flags \
    --unit-kind="UNIT_KIND_NAME"

플래그 세트 사용

플래그 세트를 구독하려면 OpenFeature 제공자를 초기화할 때 선택기를 사용합니다.

Go 예시:

선택기는 플래그 소스에 이 특정 세트를 필터링하도록 지시합니다.

provider := flagd.NewProvider(
    // The selector tells the flag source to filter for this specific set
    flagd.WithSelector("flagSetId=auth-module-flags"),
    // ... other options
)

선택기 동작:

  • 빈 선택기: 플래그 세트 ID가 없는 플래그만 선택합니다.
  • flagSetId=*: 단위와 연결된 모든 플래그를 선택합니다.
  • flagSetId=X: 세트가 정확히 X인 플래그만 선택합니다.

다음 단계