Questo documento descrive come configurare un test periodico del i link contenuti in un URI creando un monitoraggio sintetico. Specifichi le opzioni per il test, ad esempio l'URI di origine, il numero di link testati e il numero di tentativi di nuovo invio, quindi esegui il deployment di una funzione Cloud Run preconfigurata. Per supportare le attività di risoluzione dei problemi e debug, i monitor sintetici salvano informazioni su ogni test, inclusi screenshot. Gli screenshot ti consentono di visualizzare la risposta esatta visualizzata dai clienti della tua applicazione.
Per scoprire di più sui monitoraggi sintetici, consulta Informazioni sui monitoraggi sintetici.
Informazioni sui controlli dei link inaccessibili
Ogni strumento di controllo dei link interrotti testa i link in serie ed è presente un timeout sintetico complessivo, che è configurabile.
Per impostazione predefinita, un controllo dei link inaccessibili:
- Cerca l'URI di origine degli elementi anchor HTML con attributi
href
. - Testa i primi 10 link trovati nell'URI di origine.
- Per ogni link, il controllo emette una richiesta e poi attende al massimo
30 secondi per una risposta. Quando viene ricevuta una risposta, lo strumento di controllo verifica che lo stato della risposta HTTP sia
200
, il che indica una risposta positiva. Il controllo non esegue nuovi tentativi.
Specifica l'URI di origine. Puoi configurare quali elementi HTML devono la verifica dei link inaccessibili, il numero massimo di elementi testati il timeout per test e se vengono eseguiti nuovi tentativi. Puoi anche configurare i controlli dei link interrotti in modo che aspettino l'apparizione di un selettore.
I controlli dei link inaccessibili utilizzano broken-links-ok
modello. La configurazione di un controllore dei link interrotti è specificata dall'oggetto options
del file index.js
. Se crei il tuo controllore utilizzando la console Google Cloud, ti viene chiesto di specificare ogni opzione di configurazione e la funzione Cloud Run viene aggiornata automaticamente. Tuttavia, se utilizzi l'API Cloud Monitoring o Terraform, devi compilare questo oggetto.
Dopo aver creato un controllo dei link inaccessibili, per modificare la configurazione, aggiorna
l'oggetto options
ed eseguire nuovamente il deployment della funzione Cloud Run.
Prima di iniziare
-
Per ottenere le autorizzazioni necessarie per visualizzare e modificare i monitor sintetici utilizzando la console Google Cloud, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
-
Editor di monitoraggio (
roles/monitoring.editor
) -
Sviluppatore Cloud Functions (
roles/cloudfunctions.developer
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
-
Editor di monitoraggio (
-
Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.
Verifica che il tuo progetto Google Cloud contenga l'account di servizio Compute Engine predefinito. Questo account di servizio viene creato quando abiliti la dell'API Compute Engine e ha un nome simile
12345-compute@developer.gserviceaccount.com
.Nella console Google Cloud, vai alla pagina Account di servizio:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.
Se l'account di servizio Compute Engine predefinito non esiste, fai clic su Crea account di servizio e completa la finestra di dialogo.
Assicurati che all'account di servizio Compute Engine predefinito o all'account di servizio che hai creato sia stato assegnato il ruolo Editor (
roles/editor
).Per visualizzare i ruoli concessi al tuo account di servizio:
-
Nella console Google Cloud, vai alla pagina IAM:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.
- Seleziona Includi concessioni dei ruoli fornite da Google.
- Se l'account di servizio utilizzato dal monitor sintetico non è elencato o se
non gli è stato concesso un ruolo che includa le autorizzazioni nel ruolo
di Agente Cloud Trace (
roles/cloudtrace.agent
), concedi questo ruolo al tuo account di servizio.
-
- Configura i canali di notifica che vuoi utilizzare per ricevere le notifiche. Ti consigliamo di creare più tipi di notifiche i canali di notifica. Per saperne di più, consulta Creare e gestire i canali di notifica e Creare e gestire i canali di notifica tramite API.
Creare un controllo dei link interrotti
Console
Quando crei un monitoraggio sintetico utilizzando la console Google Cloud, viene Funzione Cloud Run (2ª generazione.) viene eseguito il deployment e viene creato il monitoraggio per quella funzione Cloud Run. Non puoi creare un monitoraggio sintetico per monitorare un funzione Cloud Run esistente.
- Assicurati di aver attivato le API richieste, che il progetto contenga un account di servizio Compute Engine predefinito e che a questo account sia stato concesso il ruolo Editor (
roles/editor
). Per ulteriori informazioni, consulta Prima di iniziare. -
Nella console Google Cloud, vai alla pagina Monitoraggio sintetico:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Seleziona Crea monitoraggio sintetico.
- Per il modello, seleziona Verifica link non funzionanti.
- Inserisci un nome per il monitor sintetico.
(Facoltativo) Aggiorna Timeout risposta, Frequenza controllo e aggiungi etichette definite dall'utente.
Configura l'URI e gli elementi da testare:
Fai clic su URI origine e inserisci un URI da testare. Il valore specificato deve essere un endpoint HTTP o HTTPS. Ad esempio, potresti inserire
https://mywebsite.example.com
.(Facoltativo) In Numero di link da seguire, aggiorna il numero massimo di link testati. Il valore predefinito di questo campo è 10.
(Facoltativo) Nel campo Selettore di elementi HTML, inserisci il codice HTML dell'elemento che vuoi far corrispondere, sotto forma di elenco separato da virgole. Il valore inserito viene convertito in una stringa e poi passato al metodo
Document: querySelectorAll()
.Per impostazione predefinita, questo campo è impostato su
a
, che corrisponde agli ancoraggi. Tu puoi inserire valori comea, img
, se vuoi abbinare entrambi gli ancoraggi e immagini.(Facoltativo) Nel campo Attributi HTML da seguire, inserisci gli attributi HTML di cui vuoi che venga trovata una corrispondenza. I valori separati da virgole che inserisci vengono passati singolarmente al metodo
getAttribute()
.Per impostazione predefinita, questo campo è impostato su
href
, che specifica l'URI per il link. Puoi inserire più attributi, ad esempio puoi inserirehref, src
. In questo esempio, il codice cerca l'attributohref
, quindi cerca l'attributosrc
.(Facoltativo) Configura l'attesa per il selettore, il timeout per URI, i nuovi tentativi e codici di stato previsti:
- Fai clic su Mostra altre opzioni.
Per configurare lo strumento di verifica dei link inaccessibili affinché aspetti che venga visualizzato nell'URI prima dell'estrazione di eventuali link, inserisci Selettori CSS: Attendi il campo del selettore elementi. Il valore inserito viene convertito in una stringa e poi passato al valore-chiave
page.waitForSelector()
.Se il selettore non viene visualizzato prima della scadenza del timeout, l'errore viene registrato nei log.
Aggiorna l'ordine in cui vengono selezionati i link per i test.
Configura i nuovi tentativi.
Per impostazione predefinita, a ogni collegamento viene inviata una richiesta e, se la richiesta iniziale non va a buon fine per qualsiasi motivo, ad esempio il comando scade o il codice di stato HTTP non è
200
, il collegamento viene contrassegnato come non riuscito.Questo campo specifica il numero di volte che lo strumento di controllo dei link interrotti può inviare una richiesta HTTP a un link prima di contrassegnarlo come non riuscito.
Configura un timeout da applicare a ogni URI. Per impostazione predefinita, questo valore sia impostato su 30 secondi.
Per specificare il codice di stato e il timeout previsti per un URI specifico, fai clic su Aggiungi opzione per link e completa la finestra di dialogo.
(Facoltativo) Configura se gli screenshot delle risposte devono essere raccolti e salvati. Se utilizzi le impostazioni predefinite, gli screenshot non vengono salvati. Se attivi la raccolta di screenshot, puoi raccogliere screenshot per tutti i test o solo per i test non riusciti. Cloud Monitoring utilizza la seguente convenzione per assegnare un nome al bucket Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
Nell'espressione precedente:
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
- LOCATION: la località del bucket Cloud Storage.
Puoi scegliere di utilizzare un bucket Cloud Storage esistente.
Rivedi la configurazione e assicurati che sia corretta e completa, quindi crea la funzione Cloud Run:
Fai clic su Crea funzione.
I valori nei campi Configurazione URI vengono copiati nell'oggetto
Options
nel fileindex.js
quando fai clic su Crea funzione. Dopo aver fatto clic su Crea funzione, per modificare il modifica l'oggettoOptions
.Inserisci un nome visualizzato e seleziona una regione. I nomi devono essere univoci all'interno di un regione.
Nella sezione Impostazioni runtime, build, connessioni e sicurezza, segui questi passaggi:
Nella scheda Connessioni, assicurati che l'opzione Consenti tutto il traffico sia selezionato.
Rivedi le impostazioni predefinite e aggiornale quando necessario.
Nel campo Account di servizio di runtime, seleziona un account di servizio.
Fai clic su Applica funzione.
Configura il criterio di avviso:
(Facoltativo) Aggiorna il nome del criterio di avviso e la durata dell'errore prima dell'invio delle notifiche.
Aggiungi i canali di notifica.
Fai clic su Crea.
La funzione Cloud Run che hai definito viene creata e ne viene eseguito il deployment È stato creato il monitoraggio sintetico di 2ª generazione.
API
La procedura per creare un controllore dei link interrotti utilizzando l'API Cloud Monitoring è identica alla procedura per creare qualsiasi altro monitor sintetico. Per informazioni sull'utilizzo dell'API Cloud Monitoring per creare un monitoraggio sintetico, consulta Crea un monitoraggio sintetico e seleziona il scheda Cloud Monitoring.
I controlli dei link interrotti utilizzano il modello broken-links-ok
. La configurazione di un controllo dei link inaccessibili è specificata dal
Oggetto options
del file index.js
.
Quando la struttura options.screenshot_options
è definita, la classe
lo strumento di verifica dei link inaccessibili raccoglie screenshot e li salva in un
nel bucket Cloud Storage.
Se il campo screenshot_options.storage_location
non è definito o se il
è una stringa vuota, Monitoring crea un
Il bucket Cloud Storage e gli screenshot vengono salvati in quel bucket.
Il monitoraggio utilizza la seguente convenzione per assegnare un nome
Bucket Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
Nell'espressione precedente:
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
- LOCATION: la posizione del bucket Cloud Storage.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base. Per ulteriori informazioni, consulta Terraform documentazione di riferimento del fornitore.
La procedura per creare un controllore dei link interrotti utilizzando Terraform è identica alla procedura per creare qualsiasi altro monitor sintetico. Per informazioni sull'utilizzo di Terraform per creare un monitoraggio sintetico, consulta Creare un monitoraggio sintetico e seleziona la scheda Terraform.
I controlli dei link interrotti utilizzano il modello broken-links-ok
. La configurazione di un controllo dei link inaccessibili è specificata dal
Oggetto options
del file index.js
.
Quando la struttura options.screenshot_options
è definita, la classe
lo strumento di verifica dei link inaccessibili raccoglie screenshot e li salva in un
nel bucket Cloud Storage.
Se il campo screenshot_options.storage_location
non è definito o se il
è una stringa vuota, Monitoring crea un
Il bucket Cloud Storage e gli screenshot vengono salvati in quel bucket.
Il monitoraggio utilizza la seguente convenzione per assegnare un nome
Bucket Cloud Storage:
gcm-PROJECT_ID-synthetics-LOCATION
Nell'espressione precedente:
- PROJECT_ID: l'ID del tuo progetto Google Cloud.
- LOCATION: la posizione del bucket Cloud Storage.
Esplora i risultati
Per ogni esecuzione, un controllo link inaccessibile esegue le seguenti operazioni:
Genera una tabella in cui ogni riga fornisce informazioni sul test un URI specifico. Le informazioni di riepilogo includono l'URI target, la latenza, lo stato e l'identificatore dell'elemento HTML. Ad esempio, questa colonna elenca a quando viene testato un elemento di ancoraggio HTML. Quando la riga corrisponde all'URI di origine, il valore dell'identificatore dell'elemento HTML è -.
Raccoglie metriche, dati traccia e dati log.
Raccoglie gli screenshot, se configurato.
Per saperne di più su come esplorare i dati raccolti, consulta Esplora i risultati del monitoraggio sintetico.
Risoluzione dei problemi
Questa sezione fornisce informazioni che puoi utilizzare per risolvere i problemi relativi ai controlli dei link interrotti.
Impossibile modificare la configurazione di un controllore dei link interrotti
Hai creato un programma di verifica dei link inaccessibili utilizzando la console Google Cloud e vuoi per cambiare gli elementi HTML testati o se desideri modificare il timeout dell'URI, i nuovi tentativi, l'attesa del selettore e le opzioni per link. Tuttavia, quando modifichi lo strumento di controllo dei link interrotti, la console Google Cloud non visualizza i campi di configurazione.
Per risolvere questo errore:
-
Nella console Google Cloud, vai alla pagina Monitoraggio sintetico:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Individua il monitoraggio sintetico da modificare, fai clic su more_vert Altre opzioni e poi seleziona Modifica.
- Fai clic su Modifica funzione.
Modifica l'oggetto
options
nel fileindex.js
e poi fai clic su Applica funzione.Per informazioni sui campi e sulla sintassi di questo oggetto, consulta
broken-links-ok/index.js
Fai clic su Salva.
La console Google Cloud indica che i salvataggi degli screenshot non vanno a buon fine
Hai creato un controllo dei link interrotti e lo hai configurato per salvare gli screenshot. Tuttavia, nella console Google Cloud viene visualizzato uno dei seguenti avvisi messaggi insieme a informazioni più dettagliate:
InvalidStorageLocation
StorageValidationError
BucketCreationError
ScreenshotFileUploadError
Per risolvere questi errori, prova quanto segue:
Se viene visualizzato il messaggio
InvalidStorageLocation
, verifica l'esistenza del bucket Cloud Storage specificato nel campooptions.screenshot_options.storage_location
.Visualizza i log relativi alla funzione Cloud Run. Per ulteriori informazioni, consulta Trovare i log.
Verifica che l'account di servizio utilizzato nella funzione Cloud Run corrispondente abbia un ruolo Identity and Access Management che gli consenta di creare, accedere e scrivere nei bucket Cloud Storage.
Passaggi successivi
- Campioni per monitoraggi sintetici
- Gestire i monitoraggi sintetici
- Esplorare i risultati del monitoraggio sintetico