Cómo usar conjuntos de marcas

En esta guía, se muestra cómo agrupar marcas, crear versiones a partir de conjuntos y configurar marcas para suscribirse a conjuntos de marcas.

Los conjuntos de marcas son contenedores lógicos para administrar grupos de marcas de funciones relacionadas. A medida que crecen tus aplicaciones y aumenta la cantidad de marcas individuales, administrarlas en una lista plana puede volverse engorroso y propenso a errores.

Los conjuntos de marcas te permiten organizar las marcas según el área funcional, el componente de la aplicación o cualquier otro criterio lógico, lo que proporciona una abstracción de nivel superior para las operaciones de marcas.

Requisitos previos

Antes de comenzar, asegúrate de contar con los siguientes aspectos:

  1. Un entorno de gcloud configurado para administrar los recursos de App Lifecycle Manager.
  2. Completaste la guía de inicio rápido para implementar marcas de funciones.

Agrupa marcas de funciones

Para agrupar marcas, asócialas con un identificador flag_set durante la creación o actualiza una marca existente. Este identificador crea un límite claro de propiedad y te permite usar los parámetros de configuración establecidos como un solo recurso.

Crea una marca en un conjunto de marcas

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

Actualiza una marca existente para agregarla a un conjunto de marcas

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

Crea una versión a partir de un conjunto de marcas

En lugar de crear manualmente instantáneas puntuales (FlagRevisions) para cada marca, puedes crear un FlagRelease que haga referencia a uno o más conjuntos. App Lifecycle Manager controla automáticamente la creación de todas las instantáneas inmutables necesarias.

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

Reemplaza UNIT_KIND_NAME por el tipo de unidad.

Crea una versión para todas las marcas

Puedes establecer el valor booleano all_flags en true para recuperar todas las marcas vinculadas al tipo de unidad del lanzamiento:

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

Cómo consumir un conjunto de marcas

Para suscribirte a un conjunto de marcas, usa un selector cuando inicialices el proveedor de OpenFeature.

Ejemplo de Go:

El selector le indica a la fuente de la marca que filtre este conjunto específico:

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

Comportamiento del selector:

  • Empty selector: Selecciona solo las marcas que no tienen un ID de conjunto de marcas.
  • flagSetId=*: Selecciona todas las marcas asociadas a la unidad.
  • flagSetId=X: Selecciona solo las marcas en las que el conjunto es exactamente X.

¿Qué sigue?