Crear un verificador de vínculos rotos

En este documento, se describe cómo configurar una prueba periódica del los vínculos contenidos en un URI creando un monitor sintético. Especificas el opciones para la prueba, como el URI de origen, el número de vínculos probados, y la cantidad de reintentos, y, luego, implementar una Cloud Function preconfigurada. Para respaldar tus iniciativas de depuración y solución de problemas, los monitores sintéticos guardan información adicional sobre cada prueba, incluidas las capturas de pantalla. Las capturas de pantalla te permiten ver la respuesta exacta de los clientes de tu aplicación.

Para obtener más información sobre los supervisores sintéticos, consulta Acerca de los supervisores sintéticos.

Acerca de los verificadores de vínculos rotos

Cada verificador de vínculos rotos prueba los vínculos en serie tiempo de espera sintético, que se puede configurar.

De forma predeterminada, un verificador de vínculos rotos hace lo siguiente:

  • Busca el URI de origen en busca de elementos de anclaje HTML con atributos href.
  • Prueba los primeros 10 vínculos que se encuentran en el URI de origen.
  • Para cada vínculo, el verificador emite una solicitud y, luego, espera como máximo 30 segundos para una respuesta. Cuando se recibe una respuesta, el verificador verifica que el El estado de la respuesta HTTP es 200, lo que indica que la respuesta fue exitosa. El verificador no realiza reintentos.

Debes especificar el URI de origen. Puedes configurar qué elementos HTML el verificador de vínculos rotos, la cantidad máxima de elementos probados, el tiempo de espera por prueba y si se realizan reintentos. También puedes configurar verificadores de vínculos rotos que esperen a que aparezca un selector.

Los verificadores de vínculos rotos usan broken-links-ok plantilla. La configuración de un verificador de vínculos rotos se especifica mediante el Objeto options del archivo index.js Si creas tu comprobador con el de la consola de Google Cloud, se te solicitará cada opción de configuración y la Cloud Function se actualiza automáticamente. Sin embargo, si utilizas la API de Cloud Monitoring o Terraform, debes propagar este objeto.

Luego de crear un verificador de vínculos rotos, actualiza la configuración el objeto options y vuelve a implementar la Cloud Function.

Antes de comenzar

  1. A fin de obtener los permisos que necesitas para ver y modificar monitores sintéticos con la consola de Google Cloud, solicita a tu administrador que te otorgue el los siguientes roles de IAM en tu proyecto:

    Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

  2. Habilita las API de Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API.

    Habilita las API

  3. Verifica que tu proyecto de Google Cloud contenga la instancia predeterminada de Compute Engine cuenta de servicio. Esta cuenta de servicio se crea cuando habilitas el API de Compute Engine y tiene un nombre similar al 12345-compute@developer.gserviceaccount.com.

    En la consola de Google Cloud, ve a la página Cuentas de servicio:

    Ir a Cuentas de servicio

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

    Si la cuenta de servicio predeterminada de Compute Engine no existe, haz clic en Crear cuenta de servicio y completa el cuadro de diálogo.

  4. Asegúrate de que la cuenta de servicio predeterminada de Compute Engine o cuenta de servicio que creaste, se a los que se les otorgó el rol de editor (roles/editor).

    Para ver los roles otorgados a tu cuenta de servicio, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página IAM:

      Ir a IAM

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

    2. Selecciona Incluir asignaciones de roles proporcionadas por Google.
    3. Si la cuenta de servicio que usa el monitor sintético no aparece en la lista o si No se le otorgó un rol que incluya permisos en el rol del agente de Cloud Trace (roles/cloudtrace.agent) y, luego, otorga este rol tu cuenta de servicio.
  5. Configura los canales de notificaciones que deseas usar para recibir notificaciones. Te recomendamos crear varios tipos de notificaciones canales. Para obtener más información, consulta Crear y administrar canales de notificaciones y Crea y administra canales de notificaciones por API.

Crear un verificador de vínculos rotos

Console

Cuando creas un monitor sintético con la consola de Google Cloud, se crea Cloud Function (2ª gen..) y se crea el supervisor de esa Cloud Function. No puedes crear un monitor sintético que supervise un una Cloud Function existente.

  1. Asegúrate de haber habilitado los las APIs requeridas que contiene tu proyecto una cuenta de servicio predeterminada de Compute Engine tener el rol de editor (roles/editor). Para obtener más información, consulta Antes de comenzar.
  2. En la consola de Google Cloud, ve a  Supervisión sintética:

    Ir a Supervisión sintética

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  3. Selecciona Crear monitor sintético.
  4. En la plantilla, selecciona Verificador de vínculos rotos.
  5. Ingresa un nombre para el monitor sintético.
  6. Actualiza el Tiempo de espera de respuesta, la Frecuencia de verificación (opcional) y agregar etiquetas definidas por el usuario.

  7. Configura el URI y los elementos que se probarán:

    1. Haz clic en URI de origen y, luego, ingresa un URI que quieras probar. El valor que ingreses debe ser un extremo HTTP o HTTPS. Por ejemplo: puedes ingresar https://mywebsite.example.com.

    2. Opcional: En Número de vínculos que se deben seguir, actualiza el máximo la cantidad de vínculos que se prueban. El valor predeterminado de este campo es 10.

    3. Opcional: En el campo Selector de elementos HTML, ingresa el código HTML. elemento que deseas que coincida, como una lista separada por comas. El valor que ingreses se convertirá en una cadena y, luego, se pasará a Usa el método Document: querySelectorAll().

      De forma predeterminada, este campo se establece en a, que coincide con los anclas. Tú puedes ingresar valores como a, img, cuando quieras hacer coincidir ambas anclas imágenes.

    4. Opcional: En el campo Atributos HTML que se deben seguir, ingresa el Los atributos HTML que quieres que coincidan. Los valores separados por comas que ingresas son de forma individual Se pasan al método getAttribute().

      De forma predeterminada, este campo se establece en href, que especifica el URI para el vínculo. Puedes ingresar varios atributos, por ejemplo, ingresa href, src. En este ejemplo, el código busca el atributo href y, luego, busca el atributo src.

    5. Opcional: Configura la espera para el selector, el tiempo de espera por URI, los reintentos y códigos de estado esperados:

      1. Haz clic en Mostrar más opciones.
      2. Para configurar el verificador de vínculos rotos de modo que espere a que llegue un mensaje selector para que aparezca en el URI antes de que se extraiga cualquier vínculo, ingresa el Selectores CSS en la Campo Esperar por el selector de elementos. El valor que se ingresa se convierte en una cadena y luego se pasa al page.waitForSelector().

        Si el selector no aparece antes de que venza el tiempo de espera, se registra en los registros.

      3. Actualiza el orden en que se seleccionan los vínculos para las pruebas.

      4. Configura los reintentos.

        De forma predeterminada, se envía una solicitud a cada vínculo y, si la la solicitud falla por algún motivo. Por ejemplo, si se agota el tiempo de espera del comando o el código de estado HTTP no es 200, entonces el vínculo se marca como con errores.

        Este campo especifica la cantidad de veces que el verificador de vínculos rotos puede emitir una solicitud HTTP a un vínculo antes de marcarlo como con errores.

      5. Configura un tiempo de espera que se aplique a cada URI. De forma predeterminada, este valor está establecido en 30 segundos.

      6. Para especificar el código de estado esperado y agotar el tiempo de espera de un URI específico, sigue estos pasos: Haz clic en Add per-link option y completa el cuadro de diálogo.

  8. Opcional: Configura si se deben recopilar capturas de pantalla de las respuestas y guardado. Si utilizas la configuración predeterminada, las capturas de pantalla no se guardarán. Si habilitas la recopilación de capturas de pantalla, puedes recopilar capturas de pantalla de para todas las pruebas o solo para las fallidas. Cloud Monitoring usa la siguiente convención para asignar un nombre al bucket de Cloud Storage:

    gcm-PROJECT_ID-synthetics-LOCATION
    

    En la expresión anterior:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • LOCATION: Es la ubicación del bucket de Cloud Storage.

    Tienes la opción de usar un bucket de Cloud Storage existente.

  9. Revisa tu configuración y asegúrate de que sea correcta y esté completa. Luego, crea tu Cloud Function:

    1. Haz clic en Crear función.

      Los valores en los campos de configuración del URI se copian en el objeto Options del archivo index.js cuando haces clic Crear función. Después de hacer clic en Crear función, para cambiar la configuración, edita el objeto Options.

    2. Ingresa un nombre visible y selecciona una región. Los nombres deben ser únicos en cada región.

    3. En la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad, haz lo siguiente: haz lo siguiente:

      • En la pestaña Conexiones, asegúrate de que la opción Permitir todo el tráfico esté seleccionado.

      • Revisa la configuración predeterminada y actualízala cuando sea necesario.

      • En el campo Cuenta de servicio del entorno de ejecución, selecciona una cuenta de servicio.

    4. Haz clic en Aplicar función.

  10. Configura la política de alertas:

    1. Opcional: Actualiza el nombre de la política de alertas y la duración de la falla antes de que se envíen las notificaciones.

    2. Agrega los canales de notificación.

  11. Haz clic en Crear.

    La Cloud Function que definiste se compila e implementa como y se crea el monitor sintético.

API

El proceso de crear un verificador de vínculos rotos mediante el uso de La API de Cloud Monitoring es igual al proceso de crear cualquier otra monitor sintético. Para obtener información sobre el uso de la API de Cloud Monitoring para crear un monitor sintético, consulta Crea un monitor sintético y selecciona el Pestaña Cloud Monitoring.

Los verificadores de vínculos rotos usan broken-links-ok plantilla. La configuración de un verificador de vínculos rotos se especifica mediante el Objeto options del archivo index.js

Cuando se define la estructura options.screenshot_options, se el verificador de vínculos rotos recopila capturas de pantalla y las guarda en un bucket de Cloud Storage. Si el campo screenshot_options.storage_location no está definido o si las es una cadena vacía, Monitoring crea El bucket de Cloud Storage y las capturas de pantalla se guardan en ese bucket. Monitoring usa la siguiente convención para nombrar Bucket de Cloud Storage:

gcm-PROJECT_ID-synthetics-LOCATION

En la expresión anterior:

  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • LOCATION: Es la ubicación del bucket de Cloud Storage.

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform. Para obtener más información, consulta la documentación de referencia del proveedor de Terraform.

El proceso de crear un verificador de vínculos rotos mediante el uso de Terraform es idéntico al proceso de crear cualquier otra monitor sintético. Si necesitas información sobre cómo usar Terraform para crear un monitor sintético, consulta Crea un monitor sintético y selecciona el la pestaña de Terraform.

Los verificadores de vínculos rotos usan broken-links-ok plantilla. La configuración de un verificador de vínculos rotos se especifica mediante el Objeto options del archivo index.js

Cuando se define la estructura options.screenshot_options, se el verificador de vínculos rotos recopila capturas de pantalla y las guarda en un bucket de Cloud Storage. Si el campo screenshot_options.storage_location no está definido o si las es una cadena vacía, Monitoring crea El bucket de Cloud Storage y las capturas de pantalla se guardan en ese bucket. Monitoring usa la siguiente convención para nombrar Bucket de Cloud Storage:

gcm-PROJECT_ID-synthetics-LOCATION

En la expresión anterior:

  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • LOCATION: Es la ubicación del bucket de Cloud Storage.

Explorar resultados

Para cada ejecución, un verificador de vínculos rotos hace lo siguiente:

  • Genera una tabla, en la que cada fila proporciona información sobre la prueba de un URI específico. La información de resumen incluye el URI de destino, la latencia estado y el identificador del elemento HTML. Por ejemplo, esta columna enumera a cuando se prueba un elemento de anclaje HTML Cuando la fila corresponde a el URI de origen, el valor del identificador del elemento HTML es -.

  • Recopila métricas, datos de seguimiento y datos de registro.

  • Recopila capturas de pantalla cuando se configuran.

Para obtener más información sobre cómo explorar los datos recopilados, consulta Explora los resultados del monitor sintético.

Solucionar problemas

En esta sección, se proporciona información que puedes usar para solucionar problemas los verificadores de vínculos rotos.

No se puede editar la configuración de un verificador de vínculos rotos

Creaste un verificador de vínculos rotos con la consola de Google Cloud y quieres para cambiar los elementos HTML que se prueban o si deseas el tiempo de espera del URI, los reintentos, la espera del selector y las opciones por vínculo. Sin embargo, cuando editas el verificador de vínculos rotos, la consola de Google Cloud no mostrar los campos de configuración.

Para solucionar este error, haz lo siguiente:

  1. En la consola de Google Cloud, ve a  Supervisión sintética:

    Ir a Supervisión sintética

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Busca el monitor sintético que quieres editar. Haz clic en Más opciones y, luego, selecciona Editar.
  3. Haz clic en Editar función.
  4. Edita el objeto options en el archivo index.js y, luego, Haz clic en Aplicar función.

    Para obtener información sobre los campos y la sintaxis de este objeto, consulta broken-links-ok/index.js.

  5. Haz clic en Guardar.

Pantallas de la consola de Google Cloud que fallan cuando se guardan las capturas de pantalla

Creaste un verificador de vínculos rotos y lo configuraste para guardar capturas de pantalla. Sin embargo, la consola de Google Cloud muestra una de las siguientes advertencias junto con información más detallada:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Para solucionar estos errores, intenta lo siguiente:

  • Si ves el mensaje InvalidStorageLocation, verifica la existencia. del bucket de Cloud Storage especificado en el campo llamado options.screenshot_options.storage_location

  • Visualiza los registros relacionados con tu Cloud Function. Para obtener más información, consulta Busca registros.

  • Verifica que la cuenta de servicio que se usa en el Cloud Function tiene un rol de Identity and Access Management que le permite crear, acceder a los buckets de Cloud Storage y escribir en ellos.

¿Qué sigue?