Comprensione delle regole del feature flag multivariante - AWS AppConfig

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Comprensione delle regole del feature flag multivariante

Quando create una variante del feature flag, specificate una regola per essa. Le regole sono espressioni che accettano valori di contesto come input e producono un risultato booleano come output. Ad esempio, è possibile definire una regola per selezionare una variante di bandiera per gli utenti beta, identificata dall'ID dell'account, testando un aggiornamento dell'interfaccia utente. In questo scenario, procedi come segue:

  1. Create un nuovo profilo di configurazione del feature flag chiamato UI Refresh.

  2. Crea un nuovo flag di funzionalità chiamato ui_refresh.

  3. Modifica il flag della funzionalità dopo averlo creato per aggiungere varianti.

  4. Crea e abilita una nuova variante chiamata BetaUsers.

  5. Definisci una regola per selezionare BetaUsersla variante se l'ID dell'account dal contesto della richiesta si trova in un elenco di account IDs approvati per visualizzare la nuova esperienza beta.

  6. Conferma che lo stato della variante predefinita sia impostato su disabilitato.

Nota

Le varianti vengono valutate come un elenco ordinato in base all'ordine in cui sono definite nella console. La variante in cima all'elenco viene valutata per prima. Se nessuna regola corrisponde al contesto fornito, AWS AppConfig restituisce la variante predefinita.

Quando AWS AppConfig elabora la richiesta del feature flag, confronta prima il contesto fornito, che include l'AccountID (in questo esempio) con BetaUsers la variante. Se il contesto corrisponde alla regola per BetaUsers, AWS AppConfig restituisce i dati di configurazione per l'esperienza beta. Se il contesto non include un ID account o se l'ID dell'account termina con un valore diverso da 123, AWS AppConfig restituisce i dati di configurazione per la regola predefinita, il che significa che l'utente visualizza l'esperienza corrente in produzione.

Definizione delle regole

Una regola variante è un'espressione composta da uno o più operandi e un operatore. Un operando è un valore specifico utilizzato durante la valutazione di una regola. I valori degli operandi possono essere statici, ad esempio un numero letterale o una stringa, o variabili, ad esempio il valore trovato in un contesto o il risultato di un'altra espressione. Un operatore, ad esempio «maggiore di», è un test o un'azione applicata ai relativi operandi che produce un valore. Un'espressione di regola variante deve produrre un «vero» o «falso» per essere valida.

Operandi

Type Descrizione Esempio

Stringa

Una sequenza di UTF -8 caratteri, racchiusa tra virgolette doppie.

"apple", "Ḽơᶉëᶆ ȋṕšᶙṁ"

Numero intero

Un valore intero a 64 bit.

-7, 42

Float

Un valore a virgola mobile IEEE -754 a 64 bit.

3.14, 1.234e-5

Timestamp

Un momento temporale specifico, come descritto dalla nota del W3C sui formati di data e ora.

2012-03-04T05:06:07-08:00, 2024-01

Booleano

Un valore vero o falso.

true, false

Valore di contesto

Un valore parametrizzato sotto forma di $key che viene recuperato dal contesto durante la valutazione delle regole.

$country, $userId

Operatori di confronto

Operatore Descrizione Esempio

eq

Determina se un valore di contesto è uguale a un determinato valore.

(eq $state "Virginia")

gt

Determina se un valore di contesto è maggiore di un determinato valore.

(gt $age 65)

gte

Determina se un valore di contesto è maggiore o uguale a un determinato valore.

(gte $age 65)

lt

Determina se un valore di contesto è inferiore a un determinato valore.

(lt $age 65)

lte

Determina se un valore di contesto è minore o uguale a un determinato valore.

(lte $age 65)

Operatori logici

Operatore Descrizione Esempio

e

Determina se entrambi gli operandi sono veri.

(and (eq $state "Virginia") (gt $age 65) )

oppure

Determina se almeno uno degli operandi è vero.

(or (eq $state "Virginia") (gt $age 65) )

not

Inverte il valore di un'espressione.

(not (eq $state "Virginia"))

Operatori personalizzati

Operatore Descrizione Esempio

inizia_con

Determina se un valore di contesto inizia con un determinato prefisso.

(begins_with $state "A")

termina_con

Determina se un valore di contesto termina con un determinato prefisso.

(ends_with $email "amazon.com")

contiene

Determina se un valore di contesto contiene una determinata sottostringa.

(contains $promoCode "WIN")

in

Determina se un valore di contesto è contenuto in un elenco di costanti.

(in $userId ["123", "456"])

fiammiferi

Determina se un valore di contesto corrisponde a un determinato modello di espressione regolare.

(matches in::$greeting pattern::"h.*y")

exists

Determina se è stato fornito un valore per una chiave di contesto.

(exists key:"country")

dividi

Restituisce true per una determinata percentuale di traffico in base a un hash coerente dei valori di contesto forniti.

(split pct::10 by::$userId seed::"abc")