使用旗標集

本指南說明如何將旗標分組、從集合建立版本,以及設定旗標來訂閱旗標集

旗標集是邏輯容器,用於管理相關功能旗標群組。隨著應用程式和個別旗標數量增加,在扁平清單中管理這些項目可能會變得繁瑣且容易出錯。

旗標集可讓您根據功能區域、應用程式元件或任何其他邏輯條件來整理旗標,為旗標作業提供更高層級的抽象化。

必要條件

開始前,請先確認下列事項:

  1. 設定 gcloud 環境來管理 App Lifecycle Manager 資源。
  2. 已完成部署功能旗標快速入門導覽課程

群組功能旗標

如要將旗標分組,請在建立旗標時將其與 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 的旗標。

後續步驟