במדריך הזה מוסבר איך לקבץ דגלים, ליצור גרסאות מדגלים ולקבוע שדגלים יירשמו לקבוצות של דגלים.
קבוצות של דגלים הן מאגרי מידע לוגיים לניהול קבוצות של דגלי תכונות קשורים. ככל שהאפליקציות גדלות ומספר הדגלים האישיים עולה, הניהול שלהם ברשימה שטוחה עלול להיות מסורבל ונוטה לשגיאות.
ערכות של סימונים מאפשרות לארגן סימונים על סמך תחום פונקציונלי, רכיב של אפליקציה או כל קריטריון לוגי אחר, ומספקות הפשטה ברמה גבוהה יותר לפעולות של סימונים.
דרישות מוקדמות
לפני שמתחילים, חשוב לוודא שיש לכם:
- סביבת
gcloudשמוגדרת לניהול משאבים של App Lifecycle Manager. - השלמתם את המדריך למתחילים בנושא פריסת דגלים של תכונות.
מתגי feature flag לקבוצות
כדי לקבץ דגלים, משייכים אותם למזהה 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 מטפל אוטומטית ביצירה של כל ה-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"
מחליפים את UNIT_KIND_NAME בסוג היחידה.
יצירת גרסה לכל ההגדרות
אפשר להגדיר את הערך של all_flags boolean ל-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
)
אופן הפעולה של הסלקטור:
- Empty selector: בוחר רק דגלים שלא הוגדר להם מזהה דגל.
-
flagSetId=*: בחירה של כל הדגלים שמשויכים ליחידה. -
flagSetId=X: בחירה רק של דגלים שבהם הערך שמוגדר הוא בדיוקX.