Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Écriture d'un script Canary Python
Ce script est transmis comme une exécution réussie et renvoie une chaîne. Pour voir à quoi ressemble un script Canary en échec, remplacez fail = False par 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()
Empaqueter vos fichiers Python Canary
Si vous avez plusieurs fichiers .py ou une dépendance à votre script, vous pouvez les regrouper dans un seul fichier ZIP. Si vous utilisez l'exécution syn-python-selenium-1.1
, le fichier ZIP doit contenir votre fichier .py canary principal dans un dossier python
, tel que python/my_canary_filename.py
. Si vous utilisez syn-python-selenium-1.1
ou une version ultérieure, vous pouvez éventuellement utiliser un autre dossier, tel que python/myFolder/my_canary_filename.py
.
Ce fichier ZIP doit contenir tous les dossiers et fichiers nécessaires, mais les autres fichiers n'ont pas besoin de se trouver dans le dossier python
.
Assurez-vous de définir le point d'entrée de votre script Canary de sorte que my_canary_filename.functionName
corresponde au nom du fichier et de la fonction du point d'entrée de votre script. Si vous utilisez une exécution syn-python-selenium-1.0
, alors functionName
doit être handler
. Si vous utilisez syn-python-selenium-1.1
ou une version ultérieure, cette restriction du nom du gestionnaire ne s'applique pas et vous pouvez également stocker le script Canary dans un dossier séparé tel que python/myFolder/my_canary_filename.py
. Si vous le stockez dans un dossier séparé, spécifiez ce chemin dans le point d'entrée de votre script, tel que myFolder/my_canary_filename.functionName
.
Modification d'un script Selenium existant pour l'utiliser en tant que script Canary Synthetics
Vous pouvez rapidement modifier un script existant pour Python et Selenium pour l'utiliser comme script Canary. Pour de plus amples informations sur Selenium, consultez www.selenium.dev/
Pour cet exemple, nous commencerons par le script Selenium suivant :
from selenium import webdriver def basic_selenium_script(): browser = webdriver.Chrome() browser.get('https://example.com') browser.save_screenshot('loaded.png') basic_selenium_script()
Les étapes de conversion sont les suivantes.
Pour convertir un script Selenium à utiliser comme script Canary
Modifier l'instruction
import
pour utiliser Selenium à partir du moduleaws_synthetics
:from aws_synthetics.selenium import synthetics_webdriver as webdriver
Le module Selenium de
aws_synthetics
garantit que le Canary peut émettre des métriques et des journaux, générer un fichier HAR et fonctionner avec d'autres fonctionnalités de CloudWatch Synthetics.Créez une fonction de gestionnaire et appelez votre méthode Selenium. Le gestionnaire est la fonction de point d'entrée du script.
Si vous utilisez
syn-python-selenium-1.0
, la fonction du gestionnaire doit être nomméehandler
. Si vous utilisezsyn-python-selenium-1.1
ou une version ultérieure, la fonction peut porter n'importe quel nom, mais il doit être identique à celui utilisé dans le script. De plus, si vous utilisezsyn-python-selenium-1.1
ou une version ultérieure, vous pouvez stocker vos scripts dans n'importe quel dossier et spécifier ce dossier dans le nom du gestionnaire.def handler(event, context): basic_selenium_script()
Le script est maintenant mis à jour pour devenir un canari CloudWatch Synthetics. Voici le script mis à jour :
webdriver
Il s'agit d'une instance de la classe SyntheticsWebDriveret le navigateur renvoyé par webdriver.Chrome()
est une instance de 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()
Modification d'un script Puppeteer Synthetics existant pour authentifier des certificats non standard
L'un des principaux cas d'utilisation des canaris Synthetics est de vous permettre de surveiller vos propres terminaux. Si vous souhaitez surveiller un point de terminaison qui n'est pas prêt pour le trafic externe, cette surveillance peut parfois signifier que vous ne disposez pas d'un certificat approprié signé par une autorité de certification tierce de confiance.
Les deux solutions possibles à ce scénario sont les suivantes :
Pour authentifier un certificat client, consultez Comment valider l'authentification à l'aide d'Amazon CloudWatch Synthetics — Partie 2
. Pour authentifier un certificat auto-signé, consultez Comment valider l'authentification à l'aide de certificats auto-signés dans
Amazon Synthetics CloudWatch
Vous n'êtes pas limité à ces deux options lorsque vous utilisez les canaris CloudWatch Synthetics. Vous pouvez étendre ces fonctionnalités et ajouter votre logique métier en étendant le code Canary.
Note
L'indicateur est activé par défaut pour les canaris Synthetics exécutés sur des environnements d'exécution Python. Ces canaris ne devraient donc pas --ignore-certificate-errors
avoir de problèmes pour accéder à des sites dont les configurations de certificats ne sont pas standard.