Contesto nei moduli di estensione edge
A tutti i moduli libreria nelle estensioni edge viene fornito un oggetto context quando vengono eseguiti. Questo documento descrive le proprietà fornite dall'oggetto context e il ruolo che svolgono nei moduli libreria.
Contesto della richiesta Adobe (arc)
La proprietà arc è un oggetto che fornisce informazioni sull'evento che attiva la regola. Le sezioni seguenti descrivono le varie sotto-proprietà contenute in questo oggetto.
event
L’oggetto event rappresenta l’evento che ha attivato la regola e contiene i seguenti valori:
logger.log(context.arc.event);
xdmdatarequest
Da non confondere con una richiesta del dispositivo client, request è un oggetto leggermente modificato proveniente da Adobe Experience Platform Edge Network.
logger.log(context.arc.request)
L’oggetto request ha due proprietà di livello principale: body e head. La proprietà body contiene informazioni sull'Experience Data Model (XDM) e può essere esaminata in Adobe Experience Platform Debugger quando si passa a Launch e si seleziona la scheda Edge Trace.
ruleStash rulestash
ruleStash è un oggetto che raccoglierà ogni risultato dai moduli di azione.
logger.log(context.arc.ruleStash);
Ogni estensione dispone di un proprio namespace. Ad esempio, se l'estensione ha il nome send-beacon, tutti i risultati delle azioni send-beacon saranno memorizzati nello spazio nomi ruleStash['send-beacon'].
Lo spazio nomi è univoco per ciascuna estensione e all'inizio ha un valore undefined.
Lo spazio nomi viene sovrascritto con il risultato restituito da ogni azione. Ad esempio, si consideri un'estensione transform contenente due azioni: generate-fullname e generate-fulladdress. Queste due azioni vengono poi aggiunte a una regola.
Se il risultato dell'azione generate-fullname è Firstname Lastname, dopo il completamento dell'azione verrà visualizzato lo stash della regola:
{
transform: 'Firstname Lastname'
}
Se il risultato dell'azione generate-address è 3900 Adobe Way, dopo il completamento dell'azione verrà visualizzato lo stash della regola:
{
transform: '3900 Adobe Way'
}
Si noti che "Nome Cognome" non esiste più all'interno dello stash della regola, perché l'azione generate-address lo ha sovrascritto con un nuovo valore.
Se vuoi che ruleStash memorizzi i risultati di entrambe le azioni all'interno dello spazio nomi transform, puoi scrivere il modulo di azione in modo simile all'esempio seguente:
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
La prima volta che questa azione viene eseguita, ruleStash inizia come undefined e viene quindi inizializzata come oggetto vuoto. La volta successiva in cui viene eseguita l'azione, riceve ruleStash restituito quando l'azione era stata precedentemente chiamata. L'utilizzo di un oggetto come ruleStash consente di aggiungere nuovi dati senza perdere i dati precedentemente impostati da altre azioni dell'estensione.
Utilità
La proprietà utils rappresenta un oggetto che fornisce utility specifiche per il runtime tag.
logger
L’utility logger consente di registrare i messaggi che verranno visualizzati durante le sessioni di debug con Adobe Experience Platform Debugger.
context.utils.logger.error('Error!');
Il registratore dispone dei seguenti metodi, dove message è il messaggio da registrare:
log(message)info(message)warn(message)error(message)debug(message)verbose è abilitata nella console del browser.fetch
Questa utility implementa l’API Fetch. Puoi utilizzare la funzione per effettuare richieste agli endpoint di terze parti.
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
getBuildInfo
Questa utility restituisce un oggetto contenente informazioni sulla build della libreria runtime corrente di tag.
logger.log(context.utils.getBuildInfo().turbineBuildDate);
L’oggetto contiene i valori seguenti:
turbineVersionturbineBuildDatebuildDateenvironmentdevelopment, staging e production.Di seguito è riportato un oggetto getBuildInfo di esempio per dimostrare i valori restituiti:
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
getExtensionSettings
Questa utility restituisce l’ultimo oggetto settings salvato dalla vista di configurazione dell’estensione.
logger.log(context.utils.getExtensionSettings());
getSettings
Questa utility restituisce l’oggetto settings più recente salvato dalla vista del modulo libreria corrispondente.
logger.log(context.utils.getSettings());
getRule
Questa utility restituisce un oggetto contenente informazioni sulla regola che attiva il modulo.
logger.log(context.utils.getRule());
L’oggetto conterrà i seguenti valori:
idname