Escritura de un script de valor controlado - Amazon CloudWatch

Escritura de un script de valor controlado

En las siguientes secciones, se explica cómo escribir un script de canario y cómo integrar un canario con otros servicios de AWS y con bibliotecas y dependencias externas.

Cambio de un script de Puppeteer existente para usarlo como un valor controlado de Synthetics

Se puede modificar rápidamente un script existente para Python y Selenium para ser utilizado como un valor controlado. Para obtener más información acerca de Selenium, consulte www.selenium.dev/.

Para este ejemplo comenzaremos con el siguiente script de Selenium:

from selenium import webdriver def basic_selenium_script(): browser = webdriver.Chrome() browser.get('https://example.com') browser.save_screenshot('loaded.png') basic_selenium_script()

Los pasos de conversión son los siguientes:

Para convertir un script de Selenio para ser utilizado como un valor controlado
  1. Cambie la instrucción import para usar Selenium del módulo aws_synthetics:

    from aws_synthetics.selenium import synthetics_webdriver as webdriver

    El módulo Selenium de aws_synthetics garantiza que el valor controlado pueda emitir métricas y registros, generar un archivo HAR y trabajar con otras características de CloudWatch Synthetics.

  2. Cree una función de controlador y llame al método de Selenium. El controlador es la función de punto de entrada para el script.

    Si utiliza syn-python-selenium-1.0, la función del controlador debe denominarse handler. Si utiliza syn-python-selenium-1.1 o uno posterior, la función puede tener cualquier nombre, pero debe ser el mismo nombre que se usa en el script. Además, si utiliza syn-python-selenium-1.1 o uno posterior, puede almacenar los scripts en cualquier carpeta y especificar dicha carpeta como parte del nombre del controlador.

    def handler(event, context): basic_selenium_script()

El script ahora se ha actualizado para ser un valor controlado de CloudWatch Synthetics. Aquí está el script actualizado:

from aws_synthetics.selenium import synthetics_webdriver as webdriver def basic_selenium_script(): browser = webdriver.Chrome() browser.get('https://example.com') browser.save_screenshot('loaded.png') def handler(event, context): basic_selenium_script()

Cambio de un script existente de Puppeteer Synthetics para autenticar certificados no estándar

Un caso de uso importante de canarios de Synthetics es poder supervisar sus propios puntos de conexión. Si quiere supervisar un punto de conexión que no está preparado para el tráfico externo, esta supervisión puede significar a veces que no dispone de un certificado adecuado firmado por una autoridad de certificación externa de confianza.

Dos posibles soluciones para este escenario son las siguientes:

No solo tiene estas dos opciones cuando utiliza canarios de CloudWatch Synthetics. Puede ampliar estas características y agregar su lógica empresarial mediante la ampliación del código del canario.

nota

Los canarios de Synthetics que se ejecutan en tiempos de ejecución de Python tienen la marca --ignore-certificate-errors habilitada de forma innata, por lo que esos canarios no deberían tener problemas para llegar a sitios con configuraciones de certificados no estándar.