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 Python
Questo script passa come esecuzione riuscita e restituisce una stringa. Per vedere come appare un canary fallito, passare “fail = False” a “fail = True”
def basic_custom_script(): # Insert your code here # Perform multi-step pass/fail check # Log decisions made and results to /tmp # Be sure to wait for all your code paths to complete # before returning control back to Synthetics. # In that way, your canary will not finish and report success # before your code has finished executing fail = False if fail: raise Exception("Failed basicCanary check.") return "Successfully completed basicCanary checks." def handler(event, context): return basic_custom_script()
Impacchettizzazione dei file canary in Python
Se disponi di più di un file .py o lo script ha una dipendenza, puoi raggrupparli tutti in un unico file ZIP. Se utilizzi il runtime syn-python-selenium-1.1
, il file ZIP deve contenere il file del canary principale con estensione py all'interno di una cartella python
, ad esempio python/my_canary_filename.py
. Se utilizzi un tempo syn-python-selenium-1.1
o successivo, puoi utilizzare una cartella diversa, ad·esempio python/myFolder/my_canary_filename.py
.
Questo file ZIP deve contenere tutte le cartelle e i file necessari, ma gli altri file non devono essere presenti nella cartella python
.
Assicurati di impostare il punto di ingresso dello script del tuo canary in modo che my_canary_filename.functionName
corrisponda al nome del file e al nome della funzione del punto di ingresso dello script. Se utilizzi il runtime syn-python-selenium-1.0
, functionName
deve corrispondere·a handler
. Se utilizzi un tempo syn-python-selenium-1.1
o successivo, questa limitazione del nome del gestore non si applica e puoi anche archiviare il canary in una cartella separata, ad esempio python/myFolder/my_canary_filename.py
. Se lo archivi in una cartella separata, definisci il percorso nel punto di ingresso dello script, ad esempio myFolder/my_canary_filename.functionName
.
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
Modifica l'istruzione
import
per utilizzare Selenium dal moduloaws_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. CloudWatchCrea 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 denominatahandler
. Se utilizzi un temposyn-python-selenium-1.1
o successivo, la funzione può avere un nome qualsiasi, purché corrisponda a quello utilizzato nello script. Inoltre, se utilizzi un temposyn-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:
Per autenticare un certificato client, consulta Come convalidare l'autenticazione utilizzando Amazon Synthetics CloudWatch
— Parte 2. Per autenticare un certificato autofirmato, consulta Come convalidare l'autenticazione con certificati autofirmati
in Amazon Synthetics CloudWatch
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.