View a markdown version of this page

Funzioni di libreria disponibili per gli script Node.js Canary che utilizzano Puppeteer - Amazon CloudWatch

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

Funzioni di libreria disponibili per gli script Node.js Canary che utilizzano Puppeteer

Questa sezione descrive le funzioni di libreria disponibili per gli script Canary. Node.js

Node.js classi e funzioni della biblioteca che si applicano a tutti i canarini

Le seguenti funzioni della libreria CloudWatch Synthetics Node.js per sono utili per tutti i canarini.

Classe Synthetics

Le seguenti funzioni per tutti i canary sono nella classe Synthetics.

aggiungi ExecutionError (errorMessage, ex);

errorMessage descrive l'errore e ex è l'eccezione che si verifica

Puoi utilizzare addExecutionError per impostare gli errori di esecuzione per il tuo canary. Fa fallire il canary senza interrompere l'esecuzione dello script. Inoltre, non influisce sui tuoi parametri successPercent.

È necessario tenere traccia degli errori come errori di esecuzione solo se non sono importanti per indicare il successo o il fallimento dello script canary.

Di seguito è illustrato un esempio dell'uso dell'elemento addExecutionError. Stai monitorando la disponibilità del tuo endpoint e acquisendo screenshot dopo che la pagina è stata caricata. Poiché l'errore di acquisizione di uno screenshot non determina la disponibilità dell'endpoint, puoi rilevare eventuali errori riscontrati durante l'acquisizione di screenshot e aggiungerli come errori di esecuzione. I parametri di disponibilità indicheranno comunque che l'endpoint è attivo e funzionante, ma lo stato del canary verrà contrassegnato come non riuscito. Il seguente blocco di codice di esempio rileva tale errore e lo aggiunge come errore di esecuzione.

try { await synthetics.takeScreenshot(stepName, "loaded"); } catch(ex) { synthetics.addExecutionError('Unable to take screenshot ', ex); }

ottenere CanaryName ();

Restituisce il nome del canary.

ottenere CanaryArn ();

Restituisce l'ARN del canary.

ottenere CanaryUserAgentString ();

Restituisce l'agente utente personalizzato del canary.

ottenere RuntimeVersion ();

Questa funzione è disponibile nella versione di runtime syn-nodejs-puppeteer-3.0 e versione successiva. Restituisce la versione di runtime di Synthetics del canary. Ad esempio, il valore restituito potrebbe essere syn-nodejs-puppeteer-3.0.

ottenere LogLevel ();

Recupera il livello di log corrente per la libreria Synthetics. I valori possibili sono i seguenti:

  • 0: Debug

  • 1: Info

  • 2: Warn

  • 3: Error

Esempio:

let logLevel = synthetics.getLogLevel();

set LogLevel ();

Imposta il livello di log per la libreria Synthetics. I valori possibili sono i seguenti:

  • 0: Debug

  • 1: Info

  • 2: Warn

  • 3: Error

Esempio:

synthetics.setLogLevel(0);

SyntheticsConfiguration classe

Questa classe è disponibile solo nella versione di runtime syn-nodejs-2.1 o versioni successive.

Puoi utilizzare la classe SyntheticsConfiguration per configurare il comportamento delle funzioni della libreria Synthetics. Ad esempio, puoi utilizzare questa classe per configurare la funzione executeStep() per non acquisire screenshot.

È possibile impostare configurazioni CloudWatch Synthetics a livello globale, che vengono applicate a tutti i passaggi di Canaries. Puoi anche sovrascrivere queste configurazioni a livello di passaggio passando coppie chiave e valore di configurazione.

Puoi passare le opzioni a livello di fase. Per alcuni esempi, consulta async executeStep (StepName, funzione, [stepConfig]); ToExecute e execute HttpStep (StepName, requestOptions, [callback], [StepConfig])

setConfig(options)

options è un oggetto, che è un insieme di opzioni configurabili per il tuo canary. Le seguenti sezioni spiegano i campi possibili in options .

setConfig(options) per tutti i canary

Per i canarini che utilizzano syn-nodejs-puppeteer-3.2 o versioni successive, le (opzioni) di setConfig possono includere i seguenti parametri:

  • includeRequestHeaders (booleano): indica se includere le intestazioni della richiesta nel report. Il valore predefinito è false.

  • includeResponseHeaders (booleano): indica se includere le intestazioni della risposta nel report. Il valore predefinito è false.

  • restrictedHeaders (array): un elenco di valori di intestazione da ignorare, se le intestazioni sono incluse. Questo vale sia per le intestazioni della richiesta che della risposta. Ad esempio, puoi nascondere le tue credenziali passando include RequestHeaders as e RestrictedHeaders astrue. ['Authorization']

  • includeRequestBody (booleano): indica se includere il corpo della richiesta nel report. Il valore predefinito è false.

  • includeResponseBody (booleano): indica se includere il corpo della risposta nel report. Il valore predefinito è false.

    Importante

    Se abiliti includeResponseBody o logResponseBody, l'oggetto dati non viene restituito nella risposta da alcune API, come i client aws-sdk v3. Ciò è dovuto a una limitazione Node.js e al tipo di oggetto di risposta utilizzato.

setConfig (opzioni) relative alle metriche CloudWatch

Per i canarini che utilizzano syn-nodejs-puppeteer-3.1 o versioni successive, le (options) di setConfig possono includere i seguenti parametri booleani che determinano quali metriche vengono pubblicate dal canarino. Il valore predefinito per ciascuna di queste opzioni è true. Le opzioni che iniziano con aggregated determinano se il parametro viene emesso senza destinazione CanaryName. Puoi usare questi parametri per visualizzare i risultati aggregati per tutti i canary. Le altre opzioni determinano se il parametro viene emesso con la dimensione CanaryName. Puoi usare questi parametri per visualizzare i risultati per ogni singolo canary.

Per un elenco delle metriche emesse dai canarini, vedi CloudWatch . CloudWatch metriche pubblicate da canaries

  • failedCanaryMetric (booleano): indica se emettere il parametro Failed (con la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • failedRequestsMetric (booleano): indica se emettere il parametro Failed requests (con la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • _2xxMetric (booleano): indica se emettere il parametro 2xx (con la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • _4xxMetric (booleano): indica se emettere il parametro 4xx (con la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • _5xxMetric (booleano): indica se emettere il parametro 5xx (con la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • stepDurationMetric (booleano): indica se emettere il parametro Step duration (con le dimensioni CanaryName StepName) per questo canary. Il valore predefinito è true.

  • stepSuccessMetric (booleano): indica se emettere il parametro Step success (con le dimensioni CanaryName StepName) per questo canary. Il valore predefinito è true.

  • aggregatedFailedCanaryMetric (booleano): indica se emettere il parametro Failed (senza la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • aggregatedFailedRequestsMetric (booleano): indica se emettere il parametro Failed Requests (senza la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • aggregated2xxMetric (booleano): indica se emettere il parametro 2xx (senza la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • aggregated4xxMetric (booleano): indica se emettere il parametro 4xx (senza la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • aggregated5xxMetric (booleano): indica se emettere il parametro 5xx (senza la dimensione CanaryName) per questo canary. Il valore predefinito è true.

  • visualMonitoringSuccessPercentMetric (booleano): indica se emettere il parametro visualMonitoringSuccessPercent per questo canary. Il valore predefinito è true.

  • visualMonitoringTotalComparisonsMetric (booleano): indica se emettere il parametro visualMonitoringTotalComparisons per questo canary. Il valore predefinito è false.

  • includeUrlPassword (booleano): indica se includere una password visualizzata nell'URL. Per impostazione predefinita, le password visualizzate negli URL vengono cancellate da log e report, per evitare la divulgazione di dati sensibili. Il valore predefinito è false.

  • restrictedUrlParameters (array): un elenco di parametri del percorso dell'URL o della query da oscurare. Si applica agli URL visualizzati nei log, nei report e negli errori. Il parametro prevede la distinzione tra lettere maiuscole e minuscole. Puoi passare un asterisco (*) come valore per oscurare tutti i valori dei parametri del percorso dell'URL e delle query. L'impostazione predefinita è una matrice vuota.

  • logRequest (booleano): indica se registrare ogni richiesta nei log del canary. Per i canary dell'interfaccia utente, registra ogni richiesta inviata dal browser. Il valore predefinito è true.

  • logResponse (booleano): indica se registrare ogni risposta nei log del canary. Per i canary dell'interfaccia utente, registra ogni risposta ricevuta dal browser. Il valore predefinito è true.

  • logRequestBody (booleano): indica se registrare i corpi delle richieste insieme alle richieste nei log dei canary. Questa configurazione si applica solo se logRequest è true. Il valore predefinito è false.

  • logResponseBody (booleano): indica se registrare i corpi delle risposte insieme alle risposte nei log dei canary. Questa configurazione si applica solo se logResponse è true. Il valore predefinito è false.

    Importante

    Se abiliti includeResponseBody o logResponseBody, l'oggetto dati non viene restituito nella risposta da alcune API, come i client aws-sdk v3. Ciò è dovuto a una limitazione Node.js e al tipo di oggetto di risposta utilizzato.

  • logRequestHeaders (booleano): indica se registrare le intestazioni delle richieste insieme alle richieste nei log dei canary. Questa configurazione si applica solo se logRequest è true. Il valore predefinito è false.

    Nota che includeRequestHeaders abilita le intestazioni negli artefatti.

  • logResponseHeaders (booleano): indica se registrare le intestazioni delle risposte insieme alle risposte nei log dei canary. Questa configurazione si applica solo se logResponse è true. Il valore predefinito è false.

    Nota che includeResponseHeaders abilita le intestazioni negli artefatti.

Nota

I parametri Duration e SuccessPercent vengono sempre emessi per ogni canary, sia con che senza il parametro CanaryName.

Metodi per abilitare o disabilitare i parametri

disabilita AggregatedRequestMetrics ()

Disabilita il canary dall'emettere tutti i parametri delle richieste emessi senza dimensione CanaryName.

disabilitare RequestMetrics ()

Disabilita tutti i parametri delle richieste, inclusi i parametri dei canary e i parametri aggregati in tutti i canary.

disabilitare StepMetrics ()

Disabilita tutti i parametri dei passaggi, inclusi sia quelli di riuscita che di durata.

abilitare AggregatedRequestMetrics ()

Consente al canary di emettere tutti i parametri della richiesta emessi senza la dimensione CanaryName.

abilitare RequestMetrics ()

Abilita tutti i parametri delle richieste, inclusi i parametri dei canary e i parametri aggregati in tutti i canary.

abilitare StepMetrics ()

Abilita tutti i parametri dei passaggi, inclusi sia quelli di riuscita che di durata.

get2xxMetric()

Indica se il canary emette un parametro 2xx con dimensione CanaryName.

get4xxMetric()

Indica se il canary emette un parametro 4xx con dimensione CanaryName.

get5xxMetric()

Indica se il canary emette un parametro 5xx con dimensione CanaryName.

getAggregated2xxMetric()

Indica se il canary emette un parametro 2xx senza dimensione.

getAggregated4xxMetric()

Indica se il canary emette un parametro 4xx senza dimensione.

ottenere AggregatedFailedCanaryMetric ()

Indica se il canary emette un parametro Failed senza dimensione.

ottenere AggregatedFailedRequestsMetric ()

Indica se il canary emette un parametro Failed requests senza dimensione.

getAggregated5xxMetric()

Indica se il canary emette un parametro 5xx senza dimensione.

ottenere FailedCanaryMetric ()

Indica se il canary emette un parametro Failed con dimensione CanaryName.

ottenere FailedRequestsMetric ()

Indica se il canary emette un parametro Failed requests con dimensione CanaryName.

ottenere StepDurationMetric ()

Indica se il canary emette un parametro Duration con dimensione CanaryName per questo canary.

ottenere StepSuccessMetric ()

Indica se il canary emette un parametro StepSuccess con dimensione CanaryName per questo canary.

with2xxMetric(_2xxMetric)

Accetta un argomento booleano, che specifica se emettere un parametro 2xx con dimensione CanaryName per questo canary.

with4xxMetric(_4xxMetric)

Accetta un argomento booleano, che specifica se emettere un parametro 4xx con dimensione CanaryName per questo canary.

with5xxMetric(_5xxMetric)

Accetta un argomento booleano, che specifica se emettere un parametro 5xx con dimensione CanaryName per questo canary.

withAggregated2xxMetric(aggregated2xxMetric)

Accetta un argomento booleano, che specifica se emettere un parametro 2xx senza alcuna dimensione per questo canary.

withAggregated4xxMetric(aggregated4xxMetric)

Accetta un argomento booleano, che specifica se emettere un parametro 4xx senza alcuna dimensione per questo canary.

withAggregated5xxMetric(aggregated5xxMetric)

Accetta un argomento booleano, che specifica se emettere un parametro 5xx senza alcuna dimensione per questo canary.

con AggregatedFailedCanaryMetric (aggregatoFailedCanaryMetric)

Accetta un argomento booleano, che specifica se emettere un parametro Failed senza alcuna dimensione per questo canary.

con AggregatedFailedRequestsMetric (aggregatoFailedRequestsMetric)

Accetta un argomento booleano, che specifica se emettere un parametro Failed requests senza alcuna dimensione per questo canary.

con FailedCanaryMetric (fallitoCanaryMetric)

Accetta un argomento booleano, che specifica se emettere un parametro Failed con dimensione CanaryName per questo canary.

con FailedRequestsMetric (fallitoRequestsMetric)

Accetta un argomento booleano, che specifica se emettere un parametro Failed requests con dimensione CanaryName per questo canary.

con StepDurationMetric (passoDurationMetric)

Accetta un argomento booleano, che specifica se emettere un parametro Duration con dimensione CanaryName per questo canary.

con StepSuccessMetric (passoSuccessMetric)

Accetta un argomento booleano, che specifica se emettere un parametro StepSuccess con dimensione CanaryName per questo canary.

Metodi per abilitare o disabilitare altre funzionalità

con HarFile ()

Accetta un argomento booleano, che specifica se creare un file HAR per questo canary.

con StepsReport ()

Accetta un argomento booleano, che specifica se segnalare un riepilogo dell'esecuzione delle fasi per questo canary.

con IncludeUrlPassword ()

Accetta un argomento booleano, che specifica se includere le password visualizzate negli URL nei log e nei report.

con RestrictedUrlParameters ()

Accetta una matrice di parametri del percorso dell'URL o della query da oscurare. Si applica agli URL visualizzati nei log, nei report e negli errori. Puoi passare un asterisco (*) come valore per oscurare tutti i valori dei parametri del percorso dell'URL e delle query

con LogRequest ()

Accetta un argomento booleano, che specifica se registrare ogni richiesta nei log del canary.

con LogResponse ()

Accetta un argomento booleano, che specifica se registrare ogni risposta nei log del canary.

con LogRequestBody ()

Accetta un argomento booleano, che specifica se registrare ogni corpo della richiesta nei log del canary.

con LogResponseBody ()

Accetta un argomento booleano, che specifica se registrare ogni corpo della risposta nei log del canary.

con LogRequestHeaders ()

Accetta un argomento booleano, che specifica se registrare ogni intestazione della richiesta nei log del canary.

con LogResponseHeaders ()

Accetta un argomento booleano, che specifica se registrare ogni intestazione della risposta nei log del canary.

ottenere HarFile ()

Restituisce se il canary crea un file HAR.

ottenere StepsReport ()

Restituisce se il canary segnala un riepilogo dell'esecuzione della fase.

ottenere IncludeUrlPassword ()

Restituisce se il canary include password visualizzate negli URL nei log e nei report.

ottenere RestrictedUrlParameters ()

Restituisce se il canary oscura i parametri del percorso dell'URL o della query.

ottenere LogRequest ()

Restituisce se il canary registra ogni richiesta nei log del canary.

ottenere LogResponse ()

Restituisce se il canary registra ogni risposta nei log del canary.

ottenere LogRequestBody ()

Restituisce se il canary registra ogni corpo della richiesta nei log del canary.

ottenere LogResponseBody ()

Restituisce se il canary registra ogni corpo della risposta nei log del canary.

ottenere LogRequestHeaders ()

Restituisce se il canary registra ogni intestazione della richiesta nei log del canary.

ottenere LogResponseHeaders ()

Restituisce se il canary registra ogni intestazione della risposta nei log del canary.

Funzioni per tutti i canary

  • withIncludeRequestHeaders(includereRequestHeaders)

  • withIncludeResponseHeaders(includereResponseHeaders)

  • withRestrictedHeaders(restrictedHeaders)

  • withIncludeRequestBody(includereRequestBody)

  • withIncludeResponseBody(includereResponseBody)

  • enableReportingOptions() — Abilita tutte le opzioni di reporting: include RequestHeaders ResponseHeaders, includeRequestBody, include e include ResponseBody,.

  • disableReportingOptions() — Disattiva tutte le opzioni di reporting: include RequestHeaders, include ResponseHeadersRequestBody, include e include ResponseBody,.

setConfig(options) per canary dell'interfaccia utente

Per i canary dell'interfaccia utente, setConfig può includere i seguenti parametri booleani:

  • continueOnStepFailure(boolean) — Indica se continuare a eseguire lo script canary dopo un passaggio fallito (si riferisce alla funzione ExecuteStep). Se le fasi hanno esito negativo, l'esecuzione del canary verrà comunque contrassegnata come fallita. Il valore predefinito è false.

  • harFile (booleano): indica se creare un file HAR. Il valore predefinito è True.

  • screenshotOnStepStart (booleano): indica se fare uno screenshot prima di iniziare una fase.

  • screenshotOnStepSuccess (booleano): indica se acquisire uno screenshot dopo aver completato una fase riuscita.

  • screenshotOnStepFailure (booleano): indica se acquisire uno screenshot dopo il fallimento di una fase.

Metodi per abilitare o disabilitare gli screenshot

disabilitare () StepScreenshots

Disattiva tutte le opzioni relative agli screenshot (screenshotOnStepStart, screenshot e screenshot)OnStepSuccess. OnStepFailure

abilitare () StepScreenshots

Abilita tutte le opzioni relative agli screenshot (screenshotOnStepStart, screenshot e screenshot)OnStepSuccess. OnStepFailure Per impostazione predefinita, tutti questi metodi sono abilitati.

ottenere ScreenshotOnStepFailure ()

Restituisce se il canary acquisisce uno screenshot dopo che una fase fallisce.

ottenere ScreenshotOnStepStart ()

Restituisce se il canary acquisisce uno screenshot prima di iniziare una fase.

ottenere ScreenshotOnStepSuccess ()

Restituisce se il canary acquisisce uno screenshot dopo aver completato correttamente una fase.

con ScreenshotOnStepStart (screenshot) OnStepStart

Accetta un argomento booleano, che indica se eseguire uno screenshot prima di iniziare una fase.

con ScreenshotOnStepSuccess (screenshotOnStepSuccess)

Accetta un argomento booleano, che indica se acquisire uno screenshot dopo aver completato correttamente una fase.

con ScreenshotOnStepFailure (screenshotOnStepFailure)

Accetta un argomento booleano, che indica se acquisire uno screenshot dopo il fallimento di una fase.

Utilizzo in canary dell'interfaccia utente

Innanzitutto, importa la dipendenza di Synthetics e recupera la configurazione.

// Import Synthetics dependency const synthetics = require('@aws/synthetics-puppeteer'); // Get Synthetics configuration const synConfig = synthetics.getConfiguration();

Quindi, imposta la configurazione per ogni opzione chiamando il metodo setConfig utilizzando una delle opzioni seguenti.

// Set configuration values synConfig.setConfig({ screenshotOnStepStart: true, screenshotOnStepSuccess: false, screenshotOnStepFailure: false });

Oppure

synConfig.withScreenshotOnStepStart(false).withScreenshotOnStepSuccess(true).withScreenshotOnStepFailure(true)

Per disabilitare tutti gli screenshot, utilizza la funzione disableStepScreenshots() come in questo esempio.

synConfig.disableStepScreenshots();

Puoi abilitare e disabilitare gli screenshot in qualsiasi punto del codice. Ad esempio, per disabilitare gli screenshot solo per una fase, disattivali prima di eseguire tale fase e quindi attivali dopo la fase.

setConfig(options) per canary dell'iAPI

Per i canary dell'API, setConfig può includere i seguenti parametri booleani:

  • continueOnHttpStepFailure(boolean) — Indica se continuare a eseguire lo script canary dopo un errore in un passaggio HTTP (si riferisce alla funzione execute). HttpStep Se le fasi hanno esito negativo, l'esecuzione del canary verrà comunque contrassegnata come fallita. Il valore predefinito è true.

Monitoraggio visivo

Il monitoraggio visivo confronta gli screenshot acquisiti durante un'esecuzione del canary con quelli acquisiti durante un'esecuzione del canary di riferimento. Se la discrepanza tra i due screenshot supera una percentuale di soglia, il canary fallisce e puoi vedere le aree con differenze di colore evidenziate nel report di esecuzione del canary. Il monitoraggio visivo è supportato nei canary che eseguono syn-puppeteer-node-3.2 e versione successiva. Attualmente non è supportato nei canary che eseguono Python e Selenium.

Per abilitare il monitoraggio visivo, aggiungi la seguente riga di codice allo script canary. Per ulteriori dettagli, consulta SyntheticsConfiguration classe.

syntheticsConfiguration.withVisualCompareWithBaseRun(true);

La prima volta che il canary viene eseguito correttamente dopo che questa riga è stata aggiunta allo script, utilizza gli screenshot acquisiti durante l'esecuzione come riferimento per il confronto. Dopo la prima esecuzione di Canary, puoi utilizzare la CloudWatch console per modificare il canary per eseguire una delle seguenti operazioni:

  • Imposta l'esecuzione successiva del canary come nuovo riferimento.

  • Disegna dei limiti sullo screenshot di riferimento corrente per designare le aree dello screenshot da ignorare durante i confronti visivi.

  • Rimuovi uno screenshot dall'utilizzo per il monitoraggio visivo.

Per ulteriori informazioni sull'utilizzo della CloudWatch console per modificare un canarino, consulta. Modifica o eliminazione di un canary

Altre opzioni per il monitoraggio visivo

sintetici (DesiredPercentageConfiguration.withVisualVarianceThresholdPercentage)

Imposta la percentuale accettabile per la varianza dello screenshot nei confronti visivi.

sintetici (» #fafa00 «Configuration.withVisualVarianceHighlightHexColor)

Imposta il colore di evidenziazione che designa le aree di varianza quando si esaminano i report di esecuzione del canary che utilizzano il monitoraggio visivo.

sintetici (FailCanaryConfiguration.withFailCanaryRunOnVisualVariance)

Imposta se il canary fallisce o meno quando vi è una differenza visiva superiore alla soglia. L'impostazione predefinita è far fallire il canary.

Synthetics logger

SyntheticsLogger scrive i log out sia sulla console che su un file di registro locale allo stesso livello di registro. Questo file di log viene scritto in entrambe le posizioni solo se il livello di log è pari o inferiore al livello di registrazione desiderato della funzione di log chiamata.

Le istruzioni di registrazione nel file di log locale sono precedute da "DEBUG: ", "INFO: " e così via per corrispondere al livello di log della funzione che è stata chiamata.

Puoi usare SyntheticsLogger, supponendo che tu voglia eseguire la Synthetics Library allo stesso livello di registro del tuo Synthetics Canary Logging.

L'utilizzo di non SyntheticsLogger è necessario per creare un file di registro da caricare nella posizione dei risultati S3. Puoi invece creare un file di log diverso nella cartella /tmp. Tutti i file creati nella cartella /tmp vengono caricati nella posizione dei risultati in S3 come artefatti.

Per utilizzare il logger della libreria Synthetics:

const log = require('@aws/synthetics-logger');

Definizioni utili delle funzioni:

log.debug (,); message ex

Parametri: message è il messaggio da registrare. exè l'eventuale eccezione da registrare.

Esempio:

log.debug("Starting step - login.");

log.error (message,); ex

Parametri: message è il messaggio da registrare. exè l'eventuale eccezione da registrare.

Esempio:

try { await login(); catch (ex) { log.error("Error encountered in step - login.", ex); }

log.info (message,ex);

Parametri: message è il messaggio da registrare. exè l'eventuale eccezione da registrare.

Esempio:

log.info("Successfully completed step - login.");

log.log (message,ex);

Questo è un alias per log.info.

Parametri: message è il messaggio da registrare. exè l'eventuale eccezione da registrare.

Esempio:

log.log("Successfully completed step - login.");

log.warn (,)message; ex

Parametri: message è il messaggio da registrare. exè l'eventuale eccezione da registrare.

Esempio:

log.warn("Exception encountered trying to publish CloudWatch Metric.", ex);

SyntheticsLogHelper classe

La classe SyntheticsLogHelper è disponibile nel runtime syn-nodejs-puppeteer-3.2 e nei runtime successivi. È già inizializzato nella libreria CloudWatch Synthetics ed è configurato con la configurazione Synthetics. È possibile aggiungerla come dipendenza nello script. Questa classe consente di sanificare URL, intestazioni e messaggi di errore per oscurare informazioni sensibili.

Nota

Synthetics sanifica tutti gli URL e i messaggi di errore registrati prima di includerli in registri, report, file HAR ed errori di esecuzione del canary in base all'impostazione di configurazione Synthetics restrictedUrlParameters. Devi usare getSanitizedUrl o getSanitizedErrorMessage solo se stai registrando URL o errori nello script. Synthetics non memorizza alcun artefatto canary tranne che per gli errori del canary generati dallo script. Gli artefatti di esecuzione del canary sono archiviati nel tuo account cliente. Per ulteriori informazioni, consulta Considerazioni sulla sicurezza per Canary Synthetics.

get SanitizedUrl (url, stepConfig = null)

Questa funzione è disponibile nella versione syn-nodejs-puppeteer-3.2 e versione successiva. Restituisce stringhe di URL sanificate in base alla configurazione. Puoi scegliere di oscurare parametri di URL sensibili ad esempio password e access_token impostando la proprietà restrictedUrlParameters. Per impostazione predefinita, le password negli URL vengono oscurate. Se necessario, puoi abilitare le password degli URL impostando includeUrlPassword su “true”.

Questa funzione genera un errore se l'URL passato non è un URL valido.

Parametri

  • urlè una stringa ed è l'URL da disinfettare.

  • stepConfig(Facoltativo) sovrascrive la configurazione globale di Synthetics per questa funzione. Se stepConfig non viene passato, la configurazione globale viene utilizzata per sanificare l'URL.

Esempio

In questo esempio viene utilizzato l'URL di esempio riportato di seguito: https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200. In questo esempio, access_token contiene le tue informazioni sensibili che non devono essere registrate. Ricorda che i servizi Synthetics non memorizzano alcun artefatto di esecuzione del canary. Artefatti ad esempio log, screenshot e report sono tutti memorizzati in un bucket Amazon S3 nel tuo account cliente.

La prima fase consiste nell'impostare la configurazione Synthetics.

// Import Synthetics dependency const synthetics = require('@aws/synthetics-puppeteer'); // Import Synthetics logger for logging url const log = require('@aws/synthetics-logger'); // Get Synthetics configuration const synConfig = synthetics.getConfiguration(); // Set restricted parameters synConfig.setConfig({ restrictedUrlParameters: ['access_token']; }); // Import SyntheticsLogHelper dependency const syntheticsLogHelper = require('@aws/synthetics-log-helper'); const sanitizedUrl = syntheticsLogHelper.getSanitizedUrl('URL'); const urlConfig = { restrictedUrlParameters = ['*'] }; const sanitizedUrl = syntheticsLogHelper.getSanitizedUrl('URL', urlConfig); logger.info('My example url is: ' + sanitizedUrl);

Quindi, sanifica e registra l'URL

// Import SyntheticsLogHelper dependency const syntheticsLogHelper = require('@aws/synthetics-log-helper'); const sanitizedUrl = syntheticsLogHelper.getSanitizedUrl('https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200');

Questa procedura registra quanto segue nel log del canary.

My example url is: https://example.com/learn/home?access_token=REDACTED&token_type=Bearer&expires_in=1200

Puoi ignorare la configurazione Synthetics per un URL passando un parametro facoltativo contenente le opzioni di configurazione Synthetics, come nell'esempio seguente.

const urlConfig = { restrictedUrlParameters = ['*'] }; const sanitizedUrl = syntheticsLogHelper.getSanitizedUrl('https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200', urlConfig); logger.info('My example url is: ' + sanitizedUrl);

Nell'esempio precedente vengono oscurati tutti i parametri di query e vengono registrati come segue:

My example url is: https://example.com/learn/home?access_token=REDACTED&token_type=REDACTED&expires_in=REDACTED

ottenere SanitizedErrorMessage

Questa funzione è disponibile nella versione syn-nodejs-puppeteer-3.2 e versione successiva. Restituisce stringhe di errore sanificate sanificando qualsiasi URL presente in base alla configurazione Synthetics. Puoi scegliere di sovrascrivere la configurazione Synthetics globale quando chiami questa funzione passando un parametro stepConfig.

Parametri

  • errorè l'errore da disinfettare. Può essere un oggetto Error o una stringa.

  • stepConfig(Facoltativo) sovrascrive la configurazione globale di Synthetics per questa funzione. Se stepConfig non viene passato, la configurazione globale viene utilizzata per sanificare l'URL.

Esempio

In questo esempio viene utilizzato l'errore seguente: Failed to load url: https://example.com/learn/home?access_token=12345&token_type=Bearer&expires_in=1200

La prima fase consiste nell'impostare la configurazione Synthetics.

// Import Synthetics dependency const synthetics = require('@aws/synthetics-puppeteer'); // Import Synthetics logger for logging url const log = require('@aws/synthetics-logger'); // Get Synthetics configuration const synConfig = synthetics.getConfiguration(); // Set restricted parameters synConfig.setConfig({ restrictedUrlParameters: ['access_token']; });

Quindi, sanifica e registra il messaggio di errore

// Import SyntheticsLogHelper dependency const syntheticsLogHelper = require('@aws/synthetics-log-helper'); try { // Your code which can throw an error containing url which your script logs } catch (error) { const sanitizedErrorMessage = syntheticsLogHelper.getSanitizedErrorMessage(errorMessage); logger.info(sanitizedErrorMessage); }

Questa procedura registra quanto segue nel log del canary.

Failed to load url: https://example.com/learn/home?access_token=REDACTED&token_type=Bearer&expires_in=1200

get SanitizedHeaders (headers, stepconfig=null)

Questa funzione è disponibile nella versione syn-nodejs-puppeteer-3.2 e versione successiva. Restituisce intestazioni sanificate in base alla proprietà restrictedHeaders di syntheticsConfiguration. Le intestazioni specificate nella proprietà restrictedHeaders vengono oscurate da log, file HAR e report.

Parametri

  • headersè un oggetto contenente le intestazioni da disinfettare.

  • stepConfig(Facoltativo) sovrascrive la configurazione globale di Synthetics per questa funzione. Se stepConfig non viene passato, la configurazione globale viene utilizzata per sanificare le intestazioni.

Node.js classi e funzioni di libreria che si applicano solo ai canari dell'interfaccia utente

Le seguenti funzioni della libreria CloudWatch Synthetics Node.js per sono utili solo per i canari dell'interfaccia utente.

Classe Synthetics

Le seguenti funzioni sono nella classe Synthetics.

async add UserAgent (pagina, utente); AgentString

Questa funzione si aggiunge userAgentString all'intestazione user-agent della pagina specificata.

Esempio:

await synthetics.addUserAgent(page, "MyApp-1.0");

Il risultato è che l'intestazione user-agent della pagina viene impostata su browsers-user-agent-header-valueMyApp-1.0

async executeStep (StepName, funzione, [stepConfig]); ToExecute

Esegue il passaggio fornito, inserendolo con start/pass /fail logging, /fail screenshot e metriche di durata. start/pass pass/fail

Nota

Se utilizzi il runtime syn-nodejs-2.1 o versione successiva, puoi configurare se e quando vengono acquisite le schermate. Per ulteriori informazioni, consulta SyntheticsConfiguration classe.

La funzione executeStep svolge anche le operazioni seguenti:

  • Registra che il passaggio è iniziato.

  • Acquisisce uno screenshot denominato <stepName>-starting.

  • Avvia un timer.

  • Esegue la funzione fornita.

  • Se la funzione viene restituita normalmente, conta come passaggio. Se la funzione genera, conta come errore.

  • Termina il timer.

  • Registra se il passaggio è riuscito o non è riuscito

  • Prende uno screenshot chiamato <stepName>-succeeded o <stepName>-failed.

  • Emette la metrica stepName SuccessPercent, 100 per passato o 0 per errore.

  • Genera il parametro stepName Duration con un valore basato sull'ora di inizio e di fine del passaggio.

  • Infine, restituisce ciò che il functionToExecute ha restituito o rigenera ciò che functionToExecute ha generato.

Se il canary usa il runtime syn-nodejs-2.0 o versioni successive, questa funzione aggiunge anche un riepilogo dell'esecuzione delle fasi al report del canary. Il riepilogo include dettagli su ogni passaggio, come ora di inizio, ora di fine, status (PASSED/FAILED), motivo dell'errore (se fallito) e schermate acquisite durante l'esecuzione di ogni passaggio.

Esempio:

await synthetics.executeStep('navigateToUrl', async function (timeoutInMillis = 30000) { await page.goto(url, {waitUntil: ['load', 'networkidle0'], timeout: timeoutInMillis});});

Risposta:

Restituisce ciò che functionToExecute restituisce.

Aggiornamenti con syn-nodejs-2.2

A partire dasyn-nodejs-2.2, puoi facoltativamente passare le configurazioni dei passaggi per sovrascrivere le configurazioni CloudWatch Synthetics a livello di passaggio. Per un elenco di opzioni che puoi trasferire a executeStep, consulta SyntheticsConfiguration classe.

L'esempio riportato di seguito sostituisce la configurazione false di default per continueOnStepFailure su true e specifica quando acquisire screenshot.

var stepConfig = { 'continueOnStepFailure': true, 'screenshotOnStepStart': false, 'screenshotOnStepSuccess': true, 'screenshotOnStepFailure': false } await executeStep('Navigate to amazon', async function (timeoutInMillis = 30000) { await page.goto(url, {waitUntil: ['load', 'networkidle0'], timeout: timeoutInMillis}); }, stepConfig);

ottieni (); DefaultLaunchOptions

La getDefaultLaunchOptions() funzione restituisce le opzioni di avvio del browser utilizzate da CloudWatch Synthetics. Per ulteriori informazioni, consulta Tipo di opzioni di avvio.

// This function returns default launch options used by Synthetics. const defaultOptions = await synthetics.getDefaultLaunchOptions();

getPage();

Restituisce la pagina corrente aperta come oggetto Puppeteer. Per ulteriori informazioni, consulta l'API Puppeteer v1.14.0.

Esempio:

let page = await synthetics.getPage();

Risposta:

La pagina (oggetto Puppeteer) attualmente aperta nella sessione corrente del browser.

ottenere RequestResponseLogHelper ();

Importante

Nei canary che usano il runtime syn-nodejs-puppeteer-3.2 o versione successiva, questa funzione è resa obsoleta insieme alla classe RequestResponseLogHelper. Qualsiasi utilizzo di questa funzione fa apparire un avviso nei log del canary. Questa funzione verrà rimossa nelle future versioni di runtime. Se utilizzi questa funzione, utilizza invece RequestResponseLogHelper classe.

Utilizza questa funzione come modello di builder per modificare i flag di registrazione della richiesta e della risposta.

Esempio:

synthetics.setRequestResponseLogHelper(getRequestResponseLogHelper().withLogRequestHeaders(false));;

Risposta:

{RequestResponseLogHelper}

launch(options)

Le opzioni per questa funzione sono disponibili solo nella versione di runtime syn-nodejs-2.1 o versioni successive.

Questa funzione è utilizzata solo per i canary dell'interfaccia utente. Chiude il browser esistente e ne avvia uno nuovo.

Nota

CloudWatch Synthetics avvia sempre un browser prima di iniziare a eseguire lo script. Non è necessario chiamare “launch()” a meno che non desideri avviare un nuovo browser con opzioni personalizzate.

(options) è un insieme configurabile di opzioni da impostare sul browser. Per ulteriori informazioni, consulta Tipi di opzioni di avvio.

Se chiami questa funzione senza “options”, Synthetics avvia un browser con argomenti predefiniti, executablePath e defaultViewport. La finestra di visualizzazione predefinita in CloudWatch Synthetics è 1920 x 1080.

È possibile sovrascrivere i parametri di avvio utilizzati da CloudWatch Synthetics e passare parametri aggiuntivi all'avvio del browser. Ad esempio, il seguente frammento di codice avvia un browser con argomenti predefiniti e un percorso eseguibile predefinito, ma con un'area di visualizzazione di 800 x 600.

await synthetics.launch({ defaultViewport: { "deviceScaleFactor": 1, "width": 800, "height": 600 }});

Il seguente codice di esempio aggiunge un nuovo ignoreHTTPSErrors parametro ai parametri di avvio di CloudWatch Synthetics:

await synthetics.launch({ ignoreHTTPSErrors: true });

Puoi disabilitare la sicurezza web aggiungendo un --disable-web-security flag ad args nei parametri di avvio di CloudWatch Synthetics:

// This function adds the --disable-web-security flag to the launch parameters const defaultOptions = await synthetics.getDefaultLaunchOptions(); const launchArgs = [...defaultOptions.args, '--disable-web-security']; await synthetics.launch({ args: launchArgs });

RequestResponseLogHelper classe

Importante

Nei canary che usano il runtime syn-nodejs-puppeteer-3.2 o versioni successive, questa classe è resa obsoleta. Qualsiasi uso di questa classe fa apparire un avviso nei log del canary. Questa funzione verrà rimossa nelle future versioni di runtime. Se utilizzi questa funzione, utilizza invece RequestResponseLogHelper classe.

Gestisce la configurazione granulare e la creazione di rappresentazioni di stringa di payload di richiesta e risposta.

class RequestResponseLogHelper { constructor () { this.request = {url: true, resourceType: false, method: false, headers: false, postData: false}; this.response = {status: true, statusText: true, url: true, remoteAddress: false, headers: false}; } withLogRequestUrl(logRequestUrl); withLogRequestResourceType(logRequestResourceType); withLogRequestMethod(logRequestMethod); withLogRequestHeaders(logRequestHeaders); withLogRequestPostData(logRequestPostData); withLogResponseStatus(logResponseStatus); withLogResponseStatusText(logResponseStatusText); withLogResponseUrl(logResponseUrl); withLogResponseRemoteAddress(logResponseRemoteAddress); withLogResponseHeaders(logResponseHeaders);

Esempio:

synthetics.setRequestResponseLogHelper(getRequestResponseLogHelper() .withLogRequestPostData(true) .withLogRequestHeaders(true) .withLogResponseHeaders(true));

Risposta:

{RequestResponseLogHelper}

set RequestResponseLogHelper ();

Importante

Nei canary che usano il runtime syn-nodejs-puppeteer-3.2 o versione successiva, questa funzione è resa obsoleta insieme alla classe RequestResponseLogHelper. Qualsiasi utilizzo di questa funzione fa apparire un avviso nei log del canary. Questa funzione verrà rimossa nelle future versioni di runtime. Se utilizzi questa funzione, utilizza invece RequestResponseLogHelper classe.

Utilizza questa funzione come modello di builder per impostare i flag di registrazione richiesta e risposta.

Esempio:

synthetics.setRequestResponseLogHelper().withLogRequestHeaders(true).withLogResponseHeaders(true);

Risposta:

{RequestResponseLogHelper}

async takeScreenshot(name, suffix);

Acquisisce uno screenshot (.PNG) della pagina corrente con nome e suffisso (opzionale).

Esempio:

await synthetics.takeScreenshot("navigateToUrl", "loaded")

Questo esempio acquisisce e carica uno screenshot denominato 01-navigateToUrl-loaded.png nel bucket S3 del canary.

Puoi acquisire uno screenshot per una particolare fase del canary passando stepName come primo parametro. Gli screenshot sono collegati alla fase del canary nei report, per aiutarti a tenere traccia di ogni fase durante il debug.

CloudWatch Synthetics canaries acquisisce automaticamente gli screenshot prima di iniziare un passaggio (executeStepla funzione) e dopo il completamento del passaggio (a meno che non si configuri il canary per disabilitare gli screenshot). Puoi acquisire più screenshot passando il nome della fase nella funzione takeScreenshot.

L'esempio seguente acquisisce screenshot con signupForm come valore di stepName. Lo screenshot sarà chiamato 02-signupForm-address e sarà collegato alla fase denominata signupForm nel report del canary.

await synthetics.takeScreenshot('signupForm', 'address')

BrokenLinkCheckerReport classe

Questa classe offre metodi per aggiungere un collegamento Synthetics. È supportata solo sui canary che utilizzano la versione syn-nodejs-2.0-beta del runtime o versioni successive.

Per utilizzare BrokenLinkCheckerReport, includi le seguenti righe nello script:

const BrokenLinkCheckerReport = require('@aws/synthetics-broken-link-checker-report'); const brokenLinkCheckerReport = new BrokenLinkCheckerReport();

Definizioni utili delle funzioni:

addLink (syntheticsLink, isBroken)

syntheticsLink è un SyntheticsLink che rappresenta un collegamento. Questa funzione aggiunge il collegamento in base al codice di stato. Per impostazione predefinita, considera un collegamento interrotto se il codice di stato non è disponibile o se il codice di stato è 400 o superiore. Puoi ignorare questo comportamento predefinito passando il parametro opzionale isBrokenLink con un valore di true o false.

Questa funzione non ha un valore di restituzione.

getLinks()

Questa funzione restituisce una matrice di oggetti SyntheticsLink inclusi nel report di controllo del collegamento interrotto.

ottenere TotalBrokenLinks ()

Questa funzione restituisce un numero che rappresenta il numero totale di collegamenti interrotti.

ottenere TotalLinksChecked ()

Questa funzione restituisce un numero che rappresenta il numero totale di collegamenti inclusi nel report.

Come usare BrokenLinkCheckerReport

Il seguente frammento di codice di script canary mostra un esempio di spostamento a un collegamento e aggiunta al report di controllo del collegamento interrotto.

  1. Importa SyntheticsLink, BrokenLinkCheckerReport e Synthetics.

    const BrokenLinkCheckerReport = require('@aws/synthetics-broken-link-checker-report'); const SyntheticsLink = require('@aws/synthetics-link'); // Synthetics dependency const synthetics = require('@aws/synthetics-puppeteer');
  2. Per aggiungere un collegamento al report, crea un'istanza di BrokenLinkCheckerReport.

    let brokenLinkCheckerReport = new BrokenLinkCheckerReport();
  3. Passa all'URL e aggiungilo al report di controllo del collegamento interrotto.

    let url = "https://amazon.com"; let syntheticsLink = new SyntheticsLink(url); // Navigate to the url. let page = await synthetics.getPage(); // Create a new instance of Synthetics Link let link = new SyntheticsLink(url) try { const response = await page.goto(url, {waitUntil: 'domcontentloaded', timeout: 30000}); } catch (ex) { // Add failure reason if navigation fails. link.withFailureReason(ex); } if (response) { // Capture screenshot of destination page let screenshotResult = await synthetics.takeScreenshot('amazon-home', 'loaded'); // Add screenshot result to synthetics link link.addScreenshotResult(screenshotResult); // Add status code and status description to the link link.withStatusCode(response.status()).withStatusText(response.statusText()) } // Add link to broken link checker report. brokenLinkCheckerReport.addLink(link);
  4. Aggiungi il report a Synthetics. Questa procedura crea un file JSON denominato BrokenLinkCheckerReport.json nel bucket S3 per ogni esecuzione del canary. Puoi visualizzare un report dei collegamenti nella console per ogni esecuzione del canary insieme a screenshot, log e file HAR.

    await synthetics.addReport(brokenLinkCheckerReport);

Questa classe offre metodi per impacchettare le informazioni. È supportata solo sui canary che utilizzano la versione syn-nodejs-2.0-beta del runtime o versioni successive.

Per utilizzare SyntheticsLink, includi le seguenti righe nello script:

const SyntheticsLink = require('@aws/synthetics-link'); const syntheticsLink = new SyntheticsLink("https://www.amazon.com");

Questa funzione restituisce syntheticsLinkObject

Definizioni utili delle funzioni:

con URL () url

url è una stringa URL. Questa funzione restituisce syntheticsLinkObject

con testo () text

text è una stringa che rappresenta il testo di ancoraggio. Questa funzione restituisce syntheticsLinkObject. Aggiunge il testo di ancoraggio corrispondente al collegamento.

con ParentUrl () parentUrl

parentUrl è una stringa che rappresenta l'URL principale (pagina di origine). Questa funzione restituisce syntheticsLink Object

con StatusCode (statusCode)

statusCode è una stringa che rappresenta il codice di stato. Questa funzione restituisce syntheticsLinkObject

con FailureReason (failureReason)

failureReason è una stringa che rappresenta il motivo dell'errore. Questa funzione restituisce syntheticsLink Object

aggiungi ScreenshotResult (screenshotResult)

screenshotResult è un oggetto. Si tratta di un'istanza di ScreenshotResult restituita dalla funzione takeScreenshot di Synthetics. L'oggetto include i seguenti elementi:

  • fileName: una stringa che rappresenta screenshotFileName

  • pageUrl (facoltativo)

  • error (facoltativo)

Node.js classi e funzioni di libreria che si applicano solo ai canari API

Le seguenti CloudWatch funzioni della libreria Synthetics Node.js per sono utili solo per i canari API.

execute HttpStep (StepName, requestOptions, [callback], [StepConfig])

Esegue la richiesta HTTP fornita come passaggio e pubblica () e metriche. SuccessPercent pass/fail Duration

execute HttpStep utilizza funzioni native HTTP o HTTPS predefinite, a seconda del protocollo specificato nella richiesta.

Questa funzione aggiunge anche un riepilogo dell'esecuzione delle fasi al report del canary. Il riepilogo include dettagli su ogni richiesta HTTP, ad esempio:

  • Ora di inizio

  • Ora di fine

  • Stato (PASSED/FAILED)

  • Motivo dell'errore, se non è riuscita

  • Dettagli della chiamata HTTP come request/response header, body, codice di stato, messaggio di stato e tempi delle prestazioni.

Parameters

StepName () String

Specifica il nome della fase. Questo nome viene utilizzato anche per pubblicare le CloudWatch metriche relative a questo passaggio.

requestOptions () Object or String

Il valore di questo parametro può essere un URL, una stringa URL o un oggetto. Se si tratta di un oggetto, deve essere un insieme di opzioni configurabili per effettuare una richiesta HTTP. Supporta tutte le opzioni in http.request (options [, callback]) nella documentazione. Node.js

Oltre a queste Node.js opzioni, RequestOptions supporta il parametro aggiuntivo. body Puoi utilizzare il parametro body per trasferire i dati come corpo della richiesta.

callback () response

(Facoltativo) Questa è una funzione utente che viene richiamata con la risposta HTTP. La risposta è del tipo Class: http. IncomingMessage.

StepConfig () object

(Facoltativo) Utilizza questo parametro per sostituire le configurazioni Synthetics globali con una configurazione diversa per questa fase.

Esempi di utilizzo di execute HttpStep

La seguente serie di esempi si basa l'uno sull'altro per illustrare i vari usi di questa opzione.

Questo primo esempio configura i parametri della richiesta. Puoi passare un URL come RequestOptions:

let requestOptions = 'https://www.amazon.com';

Oppure puoi trasferire una serie di opzioni:

let requestOptions = { 'hostname': 'myproductsEndpoint.com', 'method': 'GET', 'path': '/test/product/validProductName', 'port': 443, 'protocol': 'https:' };

L'esempio seguente crea una funzione di callback che accetta una risposta. Per impostazione predefinita, se non si specifica il callback, CloudWatch Synthetics verifica che lo stato sia compreso tra 200 e 299 inclusi.

// Handle validation for positive scenario const callback = async function(res) { return new Promise((resolve, reject) => { if (res.statusCode < 200 || res.statusCode > 299) { throw res.statusCode + ' ' + res.statusMessage; } let responseBody = ''; res.on('data', (d) => { responseBody += d; }); res.on('end', () => { // Add validation on 'responseBody' here if required. For ex, your status code is 200 but data might be empty resolve(); }); }); };

L'esempio successivo crea una configurazione per questo passaggio che sovrascrive la configurazione globale di Synthetics CloudWatch . La configurazione dei passaggi in questo esempio consente le intestazioni di richiesta, le intestazioni di risposta, il corpo della richiesta (dati di post) e il corpo della risposta nel rapporto e limita i valori di intestazione «» e «AutorizzazioneX-Amz-Security-Token». Per impostazione predefinita, questi valori non vengono inclusi nel report per motivi di sicurezza. Se scegli di includerli, i dati vengono archiviati solo nel bucket S3.

// By default headers, post data, and response body are not included in the report for security reasons. // Change the configuration at global level or add as step configuration for individual steps let stepConfig = { includeRequestHeaders: true, includeResponseHeaders: true, restrictedHeaders: ['X-Amz-Security-Token', 'Authorization'], // Restricted header values do not appear in report generated. includeRequestBody: true, includeResponseBody: true };

Questo ultimo esempio passa la richiesta di esecuzione HttpStep e assegna un nome al passaggio.

await synthetics.executeHttpStep('Verify GET products API', requestOptions, callback, stepConfig);

Con questo set di esempi, CloudWatch Synthetics aggiunge i dettagli di ogni passaggio del rapporto e produce metriche per ogni passaggio utilizzando StepName.

Vedrai i parametri successPercent e duration per la fase Verify GET products API. Puoi monitorare le prestazioni delle API monitorando i parametri per le fasi delle chiamate API.

Per uno script completo di esempio che utilizza queste funzioni, consulta Multi-step API canarie.