Utilizzare i set di flag

Questa guida mostra come raggruppare i flag, creare release da set e configurare i flag per abbonarsi ai set di flag.

I set di flag sono container logici per la gestione di gruppi di flag funzionalità correlati. Man mano che le applicazioni crescono e il numero di singoli flag aumenta, gestirli in un elenco piatto può diventare macchinoso e soggetto a errori.

I set di flag ti consentono di organizzare i flag in base all'area funzionale, al componente dell'applicazione o a qualsiasi altro criterio logico, fornendo un'astrazione di livello superiore per le operazioni sui flag.

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un ambiente gcloud configurato per gestire le risorse di App Lifecycle Manager.
  2. Hai completato la guida rapida per il deployment dei flag funzionalità.

Raggruppare i flag funzionalità

Per raggruppare i flag, li associ a un identificatore flag_set durante la creazione o aggiorni un flag esistente. Questo identificatore crea un limite chiaro di proprietà e ti consente di utilizzare i flag impostati come una singola risorsa.

Crea un flag in un set di flag

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."

Aggiornare un flag esistente da aggiungere a un set di flag

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

Crea una release da un insieme di flag

Anziché creare manualmente snapshot point-in-time (FlagRevisions) per ogni flag, puoi creare un FlagRelease che fa riferimento a uno o più set. App Lifecycle Manager gestisce automaticamente la creazione di tutti gli snapshot immutabili necessari.

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

Sostituisci UNIT_KIND_NAME con il tipo di unità.

Crea una release per tutti i flag

Puoi impostare il valore booleano all_flags su true per recuperare tutti i flag collegati al tipo di unità di implementazione:

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

Utilizzo di un set di flag

Per abbonarti a un insieme di flag, utilizza un selettore quando inizializzi il provider OpenFeature.

Esempio di Go:

Il selettore indica all'origine del flag di filtrare questo insieme specifico:

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

Comportamento del selettore:

  • Selettore vuoto: seleziona solo i flag senza ID set di flag.
  • flagSetId=*: seleziona tutti i flag associati all'unità.
  • flagSetId=X: seleziona solo i flag in cui il set è esattamente X.

Passaggi successivi