Sviluppare transformer personalizzati
Puoi creare funzioni di trasformazione e operatori logici personalizzati basati su Python direttamente nell'IDE e utilizzarli nelle guide strategiche per casi d'uso complessi e versatili.
Pacchetti di estensioni
Un pacchetto di estensioni è un tipo di integrazione specializzato progettato per fungere da contenitore per funzioni di trasformazione e operatori logici personalizzati. A differenza delle integrazioni standard, i pacchetti di estensioni non richiedono la configurazione dell'istanza e possono essere creati direttamente dall'IDE.
Best practice per i pacchetti di estensioni
- Consolidamento: crea un pacchetto di estensioni principale e aggiungi più funzioni di trasformazione o operatori logici.
- Separazione: crea un nuovo pacchetto di estensioni quando hai bisogno di un insieme diverso di librerie Python (dipendenze) che potrebbero essere in conflitto con il pacchetto principale.
Creare un pacchetto di estensioni
Per creare un nuovo pacchetto di estensioni:
- Vai a Risposta > IDE.
- Fai clic su Aggiungi Crea nuovo elemento.
- Seleziona Pacchetto di estensioni dal menu a discesa.
- Fornisci un nome univoco per il pacchetto di estensioni.
- Fai clic su Salva.
Caricare le dipendenze
Come le integrazioni standard, i pacchetti di estensioni vengono eseguiti in un ambiente virtuale in cui puoi gestire le librerie Python.
Per gestire le librerie:
- Apri le impostazioni del pacchetto di estensioni nell'IDE.
- Aggiungi le librerie Python richieste da PyPi o caricale dal tuo computer.
Queste dipendenze sono disponibili per tutti i transformer e gli operatori logici contenuti in questo pacchetto di estensioni specifico.
Importazione ed esportazione
Puoi importare ed esportare manualmente i pacchetti di estensioni direttamente nell'interfaccia IDE.
Transformer personalizzati
I transformer personalizzati sono funzioni Python definite dall'utente che estendono le funzioni predefinite nel generatore di espressioni. Puoi crearli direttamente nell'IDE per estrarre e manipolare i dati e possono essere utilizzati insieme alle funzioni integrate esistenti.
Creare un transformer personalizzato
Per definire un nuovo transformer personalizzato:
- Nell'IDE, individua il pacchetto di estensioni di destinazione.
- Seleziona il pacchetto di estensioni di destinazione per aggiungere un nuovo elemento al pacchetto.
- Seleziona Funzione di trasformazione personalizzata.
- Assegna un nome.
- (Facoltativo) Aggiungi una descrizione. Viene visualizzata quando passi il mouse sopra il transformer personalizzato nel generatore di espressioni.
- Definisci la logica dello script utilizzando Python. Puoi utilizzare il modello predefinito
fornito come punto di partenza.
- Lo script deve includere una
mainfunzione come mostrato in il modello predefinito. - Lo script deve restituire un risultato al generatore di espressioni utilizzando la funzione
enddell'SDK. - L'input del transformer personalizzato può essere di tipi diversi
(ad esempio, stringa o elenco). Assicurati di convertirlo nel tipo previsto nella funzione
main. - Puoi utilizzare solo un sottoinsieme dei metodi SDK all'interno dell'IDE per
i transformer:
transformer.extract_param("ParamName"): Per recuperare i valori di input.transformer.LOGGER: per scrivere log per il debug.transformer.end(result): per restituire il valore trasformato.
- Lo script deve includere una
- Crea parametri:
- Ogni funzione di transformer personalizzata include un parametro Input predefinito. Questo parametro rappresenta i dati di input, ovvero il segnaposto a cui si applica la funzione. Non puoi eliminare questo parametro.
- Inoltre, puoi aggiungere parametri facoltativi da utilizzare all'interno della funzione.
- (Facoltativo) Documentazione: definisci la documentazione in-product per il
generatore di espressioni:
- Input previsto: descrivi il tipo di dati che la funzione prevede di ricevere per questo transformer (ad esempio, "Stringa" o "Elenco di stringhe").
- Output previsto: descrivi il tipo di dati che la funzione prevede di restituire per questo transformer (ad esempio, "booleano").
- Esempio di utilizzo: fornisci un esempio di come richiamare la
funzione (ad esempio,
if_empty("new_value")).
Puoi testare la logica della funzione di trasformazione personalizzata direttamente nell' IDE prima di utilizzarla in una guida strategica. In questo modo puoi verificare che lo script Python gestisca correttamente vari tipi di input e parametri e restituisca i risultati previsti.
Timeout
- Timeout predefinito: 1 minuto.
- Timeout massimo: 3 minuti.
Utilizzare i transformer personalizzati nel generatore di espressioni
Una volta salvati, i transformer personalizzati vengono visualizzati nell'elenco delle funzioni del generatore di espressioni insieme alle funzioni integrate. Sono identificati dal formato: ExtensionPackName.TransformerName. Se passi il mouse sopra la funzione, viene visualizzata la documentazione generata dalle descrizioni dei parametri.
Supporto per tutti i segnaposto (JSON e non JSON)
Il generatore di espressioni supporta tutti i segnaposto esposti nel progettista di guide strategiche, inclusi i risultati non JSON.
Per i segnaposto non JSON:
- Puoi inserire manualmente dati di esempio nel generatore di espressioni per testare la logica rispetto a vari tipi di input: stringa, elenco (valori separati da virgola), e JSON.
- Il test con un tipo di input non garantisce che il segnaposto restituirà quel tipo specifico in fase di runtime.
- La maggior parte dei segnaposto viene risolta come stringhe, ad eccezione di tipi specifici che
vengono risolti come stringa o elenco in base alla quantità (ad esempio,
entity.identifier). Per questi, è consigliabile trattare sempre l'input come un elenco.
Gestione degli errori
Se una funzione di trasformazione personalizzata rileva un errore durante l'esecuzione, l'azione della guida strategica che utilizza il transformer non riesce. Il messaggio di errore specifico generato dallo script Python viene visualizzato sullo schermo nella visualizzazione di esecuzione della guida strategica, consentendoti di risolvere direttamente i problemi della logica.
Operatori logici personalizzati
Gli operatori logici personalizzati ti consentono di definire la tua logica booleana per confrontare i valori.
Creare un operatore logico personalizzato
Per definire un nuovo operatore logico:
- Nell'IDE, individua il pacchetto di estensioni di destinazione.
- Seleziona Operatore logico personalizzato.
- Assegna un nome.
- (Facoltativo) Aggiungi una descrizione per il menu degli operatori logici nel progettista di guide strategiche.
- Definisci la logica dello script utilizzando Python. Puoi utilizzare il modello predefinito fornito
come punto di partenza.
- Lo script deve includere una funzione
main. - Lo script deve restituire un risultato booleano alla condizione
utilizzando la funzione
enddell'SDK. - Puoi utilizzare solo un sottoinsieme dei metodi SDK all'interno dell'IDE per operatori logici:
logical_operator.extract_param("ParamName"): Per recuperare i valori di input.logical_operator.LOGGER: per scrivere log per il debug.logical_operator.end(result): il risultato è un valore booleano (trueofalse).
- Lo script deve includere una funzione
Puoi testare la logica dell'operatore logico personalizzato direttamente nell'IDE. In questo modo puoi inserire valori di test per gli argomenti e verificare che la funzione restituisca il risultato booleano corretto (True o False) in base alle condizioni definite.
Parametri
Gli operatori logici personalizzati accettano due parametri: Lato sinistro (obbligatorio e non modificabile) e Lato destro (facoltativo; può essere disattivato dall'utente).
- Esempio 1:
if [left side] not in [right side]. - Esempio 2:
if [left side] is greater than 80(nessun lato destro).
Timeout
- Timeout predefinito: 1 minuto.
- Timeout massimo: 3 minuti.
Utilizzare nelle guide strategiche
Gli operatori logici personalizzati vengono visualizzati nel menu degli operatori in Condizioni della guida strategica, Condizioni dell'azione precedente e Selezione entità.
Gli operatori logici personalizzati sono selezionabili insieme agli operatori standard (ad esempio, "Uguale a" o "Contiene").
Gestione degli errori
Se una funzione di operatore logico personalizzata rileva un errore durante l'esecuzione, la condizione o il passaggio della guida strategica che utilizza l'operatore non riesce. Il messaggio di errore restituito dallo script Python viene visualizzato nella visualizzazione di esecuzione della guida strategica per facilitare la risoluzione dei problemi.
Limitazioni
- Le funzioni di trasformazione personalizzate e gli operatori logici non sono supportati in Trigger o Webhook.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.