In dieser Anleitung erfahren Sie, wie Sie Flags gruppieren, Releases aus Sets erstellen und Flags so konfigurieren, dass sie Flag-Sets abonnieren.
Flag-Sets sind logische Container zum Verwalten von Gruppen ähnlicher Funktions-Flags. Wenn Ihre Anwendungen wachsen und die Anzahl der einzelnen Flags zunimmt, kann die Verwaltung in einer flachen Liste mühsam und fehleranfällig werden.
Mit Flag-Sets können Sie Flags nach Funktionsbereich, Anwendungskomponente oder anderen logischen Kriterien organisieren. So erhalten Sie eine Abstraktionsebene für Flag-Vorgänge.
Vorbereitung
Prüfen Sie zuerst, ob Sie Folgendes haben:
- Eine
gcloud-Umgebung, die für die Verwaltung von App Lifecycle Manager-Ressourcen konfiguriert ist. - Sie haben die Kurzanleitung zum Bereitstellen von Funktions-Flags durchgearbeitet.
Funktions-Flags gruppieren
Wenn Sie Flags gruppieren möchten, verknüpfen Sie sie beim Erstellen mit einer flag_set-Kennung oder aktualisieren Sie ein vorhandenes Flag. Diese Kennung schafft eine klare Grenze für das Eigentum und ermöglicht es Ihnen, die als einzelne Ressource festgelegten Flags zu verwenden.
Flag in einem Flag-Set erstellen
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."
Ein vorhandenes Flag aktualisieren, um es einem Flag-Set hinzuzufügen
gcloud beta app-lifecycle-manager flags update "auth-flag" \
--location="global"
--flag-set="auth-module-flags"
Release aus einem Flag-Set erstellen
Anstatt für jedes Flag manuell Momentaufnahmen (FlagRevisions) zu erstellen, können Sie eine FlagRelease erstellen, die auf einen oder mehrere Sätze verweist.
App Lifecycle Manager erstellt automatisch alle erforderlichen unveränderlichen Snapshots.
gcloud beta app-lifecycle-manager flags releases create "auth-release-v1.2" \
--location=global \
--flag-sets='["auth-module-flags"]' \
--unit-kind="UNIT_KIND_NAME"
Ersetzen Sie UNIT_KIND_NAME durch Ihre Einheit.
Release für alle Flags erstellen
Sie können den booleschen Wert all_flags auf true setzen, um alle mit der Einheit des Rollouts verknüpften Flags abzurufen:
gcloud beta app-lifecycle-manager flags releases create "all-flags-release" \
--location=global \
--all-flags \
--unit-kind="UNIT_KIND_NAME"
Flag-Satz verwenden
Wenn Sie ein Flag-Set abonnieren möchten, verwenden Sie einen Selektor, wenn Sie den OpenFeature-Provider initialisieren.
Go-Beispiel:
Der Selektor weist die Flag-Quelle an, nach dieser bestimmten Gruppe zu filtern:
provider := flagd.NewProvider(
// The selector tells the flag source to filter for this specific set
flagd.WithSelector("flagSetId=auth-module-flags"),
// ... other options
)
Selektorverhalten:
- Leere Auswahl: Wählt nur Flags ohne Flag-Set-ID aus.
flagSetId=*: Wählt alle mit der Einheit verknüpften Flags aus.flagSetId=X: Es werden nur Flags ausgewählt, bei denen der Satz genauXist.