Escrever um script do canário
As seções a seguir explicam como escrever um script de canário e como integrar um canário a outros serviços da AWS e com dependências e bibliotecas externas.
Tópicos
Gravar um script de canário Node.js usando o runtime do Playwright
Gravar um script de canário Node.js usando o runtime do Puppeteer
Alterar um script existente do Selenium para ser usado como canário do Synthetics
Como alterar um script existente do Puppeteer Synthetics para autenticar certificados não padrão
Alterar um script existente do Selenium para ser usado como canário do Synthetics
É possível modificar rapidamente um script existente para Python e Selenium a ser usado como canário. Para obter mais informações sobre o Selenium, consulte www.selenium.dev/
Neste exemplo, começaremos com o seguinte script 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()
As etapas de conversão são as seguintes.
Para converter um script Selenium para ser usado como canário
Altere a instrução
import
para usar o Selenium a partir do móduloaws_synthetics
:from aws_synthetics.selenium import synthetics_webdriver as webdriver
O módulo Selenium a partir de
aws_synthetics
garante que o canário poderá emitir métricas e logs, gerar um arquivo HAR e trabalhar com outros recursos do CloudWatch Synthetics.Crie uma função de manipulador e chame seu método Selenium. O manipulador é a função de ponto de entrada para o script.
Se estiver usando
syn-python-selenium-1.0
, a função do manipulador deverá ser nomeadahandler
. Se estiver usandosyn-python-selenium-1.1
ou posterior, a função poderá ter qualquer nome, mas deverá ser o mesmo nome usado no script. Além disso, se você estiver usandosyn-python-selenium-1.1
ou posterior, poderá armazenar scripts em qualquer pasta e especificar essa pasta como parte do nome do manipulador.def handler(event, context): basic_selenium_script()
Agora, o script é atualizado para ser um canário do CloudWatch Synthetics. Veja a seguir o script atualizado:
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()
Como alterar um script existente do Puppeteer Synthetics para autenticar certificados não padrão
Um caso de uso importante dos canários Synthetics é monitorar seus próprios endpoints. Se você quiser monitorar um endpoint que não esteja pronto para tráfego externo, esse monitoramento poderá, às vezes, significar que você não tenha um certificado adequado assinado por uma autoridade de certificação terceirizada confiável.
Duas soluções possíveis para esse cenário são as seguintes:
Para autenticar um certificado de cliente, consulte Como validar a autenticação usando o Amazon CloudWatch Synthetics – Parte 2
. Para autenticar um certificado autoassinado, consulte Como validar a autenticação com certificados autoassinados no Amazon CloudWatch Synthetics
Você não está limitado a essas duas opções ao usar os canários CloudWatch Synthetics. Você pode estender esses recursos e adicionar sua lógica de negócios estendendo o código canário.
nota
Os canários Synthetics executados em runtimes do Python têm o sinalizador --ignore-certificate-errors
habilitado de forma inata, portanto, esses canários não devem ter problemas para acessar sites com configurações de certificado não padrão.