Scrivere uno script canary - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scrivere uno script canary

Le sezioni seguenti spiegano come scrivere uno script canarino e come integrare un canary con altri AWS servizi e con dipendenze e librerie esterne.

Modifica di uno script Selenium esistente da utilizzare come canary di Synthetics

Puoi modificare rapidamente uno script esistente per Python e Selenium da utilizzare come canary. Per ulteriori informazioni su Selenium, consulta www.selenium.dev/.

Per questo esempio, inizieremo con il seguente 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()

Le fasi di conversione sono le seguenti.

Per convertire uno script selenio da usare come canary
  1. Modifica l'istruzione import per utilizzare Selenium dal modulo aws_synthetics:

    from aws_synthetics.selenium import synthetics_webdriver as webdriver

    Il modulo Selenium di aws_synthetics assicura che il canarino possa emettere metriche e registri, generare un file HAR e funzionare con altre funzionalità di Synthetics. CloudWatch

  2. Crea una funzione del gestore e chiama il tuo metodo Selenium. Il gestore è la funzione del punto di ingresso per lo script.

    Se utilizzi un tempo syn-python-selenium-1.0, la funzione del gestore deve essere denominata handler. Se utilizzi un tempo syn-python-selenium-1.1 o successivo, la funzione può avere un nome qualsiasi, purché corrisponda a quello utilizzato nello script. Inoltre, se utilizzi un tempo syn-python-selenium-1.1 o successivo, puoi archiviare gli script in qualsiasi cartella e definire quest'ultima nel nome del gestore.

    def handler(event, context): basic_selenium_script()

Lo script è ora aggiornato per essere un canarino CloudWatch Synthetics. Ecco lo script aggiornato:

webdriverÈ un'istanza della classe SyntheticsWebDrivere il browser restituito da webdriver.Chrome() è un'istanza di. SyntheticsBrowser

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()

Modifica di uno script Puppeteer Synthetics esistente per autenticare certificati non standard

Un caso d'uso importante per Synthetics canaries è il monitoraggio dei propri endpoint. Se volete monitorare un endpoint che non è pronto per il traffico esterno, questo monitoraggio a volte può significare che non avete un certificato adeguato firmato da un'autorità di certificazione terza affidabile.

Le due possibili soluzioni a questo scenario sono le seguenti:

Non sei limitato a queste due opzioni quando usi i canarini CloudWatch Synthetics. Puoi estendere queste funzionalità e aggiungere la tua logica aziendale estendendo il codice canarino.

Nota

I canary Synthetics in esecuzione su runtime Python hanno per natura il flag abilitato, quindi non dovrebbero --ignore-certificate-errors avere problemi a raggiungere siti con configurazioni di certificati non standard.