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.
Temas
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
Cambie la instrucción
import
para usar Selenium del móduloaws_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.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 denominarsehandler
. Si utilizasyn-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 utilizasyn-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:
Para autenticar un certificado de cliente, consulte How to validate authentication using Amazon CloudWatch Synthetics – Part 2
. Para autenticar un certificado autofirmado, consulte How to validate authentication with self-signed certificates in Amazon CloudWatch Synthetics
.
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.