本指南說明如何將旗標分組、從集合建立版本,以及設定旗標來訂閱旗標集。
旗標集是邏輯容器,用於管理相關功能旗標群組。隨著應用程式和個別旗標數量增加,在扁平清單中管理這些項目可能會變得繁瑣且容易出錯。
旗標集可讓您根據功能區域、應用程式元件或任何其他邏輯條件來整理旗標,為旗標作業提供更高層級的抽象化。
必要條件
開始前,請先確認下列事項:
- 設定
gcloud環境來管理 App Lifecycle Manager 資源。 - 已完成部署功能旗標快速入門導覽課程。
群組功能旗標
如要將旗標分組,請在建立旗標時將其與 flag_set 識別碼建立關聯,或更新現有旗標。這個 ID 會建立明確的擁有權界線,讓您將設定的旗標做為單一資源使用。
在旗標集中建立旗標
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的旗標。
後續步驟
- 瞭解如何使用 CEL 進行複雜的指定目標設定。
- 瞭解多租戶架構。