Creare uno strumento di verifica dei link inaccessibili

Questo documento descrive come configurare un test periodico del i link contenuti in un URI creando un monitoraggio sintetico. Devi specificare per il test, ad esempio URI di origine, numero di link testati e il numero di nuovi tentativi, ed eseguire il deployment di una Cloud Function 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 controllo dei link inaccessibili verifica i link in modo seriale e c'è una copertura complessiva sintetico, 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 riceve una risposta, l'utilità di controllo verifica che Lo stato della risposta HTTP è 200 e indica che la risposta è riuscita. Il controllo non esegue nuovi tentativi.

Tu specifichi 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 di controllo dei link inaccessibili per attendere la comparsa di un selettore.

I controlli dei link inaccessibili utilizzano broken-links-ok modello. La configurazione di un controllo dei link inaccessibili è specificata dal Oggetto options del file index.js. Se crei la pedina usando il nella console Google Cloud, ti viene chiesta ogni opzione di configurazione la funzione Cloud Function viene aggiornata automaticamente. Tuttavia, se utilizzi API Cloud Monitoring o Terraform, devi completare questo oggetto.

Dopo aver creato un controllo dei link inaccessibili, per modificare la configurazione, aggiorna l'oggetto options ed eseguire nuovamente il deployment della Cloud Function.

Prima di iniziare

  1. Per ottenere le autorizzazioni necessarie per visualizzare e modificare i monitoraggi sintetici utilizzando la console Google Cloud, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

    Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

  2. Abilita le API Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API.

    Abilita le API

  3. Verifica che il progetto Google Cloud contenga il Compute Engine predefinito l'account di servizio. 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:

    Vai ad Account di servizio

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

    Se l'account di servizio Compute Engine predefinito non esiste, fai clic su Crea account di servizio e completa la finestra di dialogo.

  4. Assicurati che l'account di servizio Compute Engine predefinito o creato dall'account di servizio ha ricevuto il ruolo di Editor (roles/editor).

    Per visualizzare i ruoli concessi al tuo account di servizio:

    1. Nella console Google Cloud, vai alla pagina IAM:

      Vai a IAM

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

    2. Seleziona Includi concessioni dei ruoli fornite da Google.
    3. Se l'account di servizio utilizzato dal monitoraggio sintetico non è nell'elenco o se non gli è stato concesso un ruolo che include le autorizzazioni nel ruolo dell'agente Cloud Trace (roles/cloudtrace.agent), quindi concedi questo ruolo a al tuo account di servizio.
  5. Configura i canali di notifica che vuoi utilizzare per la ricezione notifiche. Ti consigliamo di creare più tipi di notifiche canali. Per ulteriori informazioni, vedi Creare e gestire canali di notifica e Creare e gestire canali di notifica in base all'API.

Creare uno strumento di verifica dei link inaccessibili

Console

Quando crei un monitoraggio sintetico utilizzando la console Google Cloud, viene Cloud Function Functions (2ª generazione.) viene eseguito il deployment e viene creato il monitoraggio per quella Cloud Function. Non puoi creare un monitoraggio sintetico per monitorare un una funzione Cloud Function esistente.

  1. Assicurati di avere attivato le API richieste, che il progetto contiene un account di servizio Compute Engine predefinito e che questo account abbia ha ricevuto il ruolo di Editor (roles/editor). Per ulteriori informazioni, vedi Prima di iniziare.
  2. Nella console Google Cloud, vai alla Pagina Monitoraggio sintetico:

    Vai a Monitoraggio sintetico

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  3. Seleziona Crea monitoraggio sintetico.
  4. Per il modello, seleziona Verifica link non funzionanti.
  5. Inserisci un nome per il monitoraggio sintetico.
  6. (Facoltativo) Aggiorna il Timeout risposta, la Frequenza di controllo e aggiungere etichette definite dall'utente.

  7. Configura l'URI e gli elementi da testare:

    1. Fai clic su URI di origine e inserisci un URI che vuoi testare. Il valore specificato deve essere un endpoint HTTP o HTTPS. Ad esempio: potresti inserire https://mywebsite.example.com.

    2. (Facoltativo) In Numero di link da seguire, aggiorna il valore massimo di link testati. Il valore predefinito di questo campo è 10.

    3. (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 a il metodo Document: querySelectorAll().

      Per impostazione predefinita, questo campo è impostato su a, che corrisponde agli ancoraggi. Tu puoi inserire valori come a, img, se vuoi abbinare entrambi gli ancoraggi e immagini.

    4. (Facoltativo) Nel campo Attributi HTML da seguire, inserisci Attributi HTML che vuoi che corrispondano. I valori separati da virgole che che inserisci singolarmente passato al metodo getAttribute().

      Per impostazione predefinita, questo campo è impostato su href, che specifica l'URI per il link. Puoi inserire più attributi, ad esempio è possibile inserisci href, src. In questo esempio, il codice cerca l'attributo href, quindi cerca l'attributo src.

    5. (Facoltativo) Configura l'attesa per il selettore, il timeout per URI, i nuovi tentativi e codici di stato previsti:

      1. Fai clic su Mostra altre opzioni.
      2. 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.

      3. Aggiorna l'ordine in cui vengono selezionati i link per i test.

      4. Configura i nuovi tentativi.

        Per impostazione predefinita, viene inviata una richiesta a ogni collegamento e, se il valore non riesce per qualsiasi motivo, ad esempio, il comando scade o il codice di stato HTTP non è 200, il link viene contrassegnato come non riuscito.

        Questo campo specifica il numero di volte in cui il controllo dei link inaccessibili può inviare una richiesta HTTP a un link prima di contrassegnarlo come non riuscito.

      5. Configura un timeout che si applichi a ogni URI. Per impostazione predefinita, questo valore sia impostato su 30 secondi.

      6. Per specificare il codice di stato previsto e il timeout per un URI specifico, Fai clic su Aggiungi opzione per link e completa la finestra di dialogo.

  8. (Facoltativo) Configura se raccogliere screenshot delle risposte e salvate. 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.

  9. Rivedi la configurazione e assicurati che sia corretta e completa. e quindi creerai la tua Cloud Function:

    1. Fai clic su Crea funzione.

      I valori nei campi Configurazione URI vengono copiati nell'oggetto Options nel file index.js quando fai clic Crea funzione. Dopo aver fatto clic su Crea funzione, per modificare il modifica l'oggetto Options.

    2. Inserisci un nome visualizzato e seleziona una regione. I nomi devono essere univoci all'interno di un regione.

    3. Nella sezione Impostazioni runtime, build, connessioni e sicurezza, procedi nel seguente modo:

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

    4. Fai clic su Applica funzione.

  10. Configura il criterio di avviso:

    1. (Facoltativo) Aggiorna il nome del criterio di avviso e la durata dell'errore prima dell'invio delle notifiche.

    2. Aggiungi i canali di notifica.

  11. Fai clic su Crea.

    La funzione Cloud Functions che hai definito viene creata e ne viene eseguito il deployment È stato creato il monitoraggio sintetico di 2ª generazione.

API

La procedura di creazione di una verifica di link inaccessibili utilizzando la proprietà L'API Cloud Monitoring è identica alla procedura di creazione di qualsiasi altra monitoraggio sintetico. Per informazioni sull'utilizzo dell'API Cloud Monitoring per creare un monitoraggio sintetico, consulta Creare un monitoraggio sintetico e seleziona il scheda Cloud Monitoring.

I controlli dei link inaccessibili utilizzano broken-links-ok modello. 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 località 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 provider.

La procedura di creazione di una funzione di verifica dei link inaccessibili utilizzando Terraform è identico al processo di creazione di qualsiasi altro progetto. monitoraggio sintetico. Per informazioni sull'uso di Terraform per creare un monitoraggio sintetico, consulta Creare un monitoraggio sintetico e seleziona il Scheda Terraform.

I controlli dei link inaccessibili utilizzano broken-links-ok modello. 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 località del bucket Cloud Storage.

Esplora i risultati

Per ogni esecuzione, un controllo di link inaccessibili 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 di destinazione, la latenza e l'identificatore dell'elemento HTML. Ad esempio, questa colonna elenca a quando viene testato un elemento anchor HTML. Quando la riga corrisponde a l'URI di origine, il valore dell'identificatore dell'elemento HTML è -.

  • Raccoglie metriche, dati di traccia e dati di log.

  • Raccoglie screenshot, se configurati.

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 possono aiutarti a risolvere i problemi i controlli dei link inaccessibili.

Impossibile modificare la configurazione di uno strumento di verifica dei link inaccessibili

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 il controllo dei link inaccessibili, la console Google Cloud vengono visualizzati i campi di configurazione.

Per risolvere l'errore:

  1. Nella console Google Cloud, vai alla Pagina Monitoraggio sintetico:

    Vai a Monitoraggio sintetico

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoraggio.

  2. Individua il monitor sintetico che vuoi modificare. fai clic su Altre opzioni, poi seleziona Modifica.
  3. Fai clic su Modifica funzione.
  4. Modifica l'oggetto options nel file index.js, poi fai clic su Applica funzione.

    Per informazioni sui campi e sulla sintassi di questo oggetto, consulta broken-links-ok/index.js.

  5. Fai clic su Salva.

Visualizza la console Google Cloud che non riesce a salvare screenshot

Hai creato uno strumento di verifica dei link inaccessibili e l'hai configurato in modo da 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 a procedere nel seguente modo:

  • Se vedi il messaggio InvalidStorageLocation, verifica che esista del bucket Cloud Storage specificato nel campo denominato options.screenshot_options.storage_location.

  • Visualizza i log relativi alla tua Cloud Function. Per ulteriori informazioni, consulta Trovare i log.

  • Verifica che l'account di servizio in uso nella query La Cloud Function ha un ruolo Identity and Access Management che le consente di creare, e scrivere nei bucket Cloud Storage.

Passaggi successivi