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.
Testez un canari localement
Cette section explique comment modifier, tester et déboguer les canaries CloudWatch Synthetics directement dans Microsoft Visual Studio éditeur de code ou JetBrains IDE éditeur de code. L'environnement de débogage local utilise un conteneur Serverless Application Model (SAM) pour simuler une fonction Lambda afin d'émuler le comportement d'un Canary Synthetics.
Note
Il n'est pas pratique de réaliser des canaris de débogage locaux qui reposent sur une surveillance visuelle. La surveillance visuelle repose sur la capture de captures d'écran de base lors d'une première exécution, puis sur la comparaison de ces captures d'écran avec les captures d'écran des exécutions suivantes. Dans un environnement de développement local, les exécutions ne sont ni stockées ni suivies, et chaque itération est une exécution indépendante et autonome. En l'absence d'historique des canaris, il n'est pas pratique de déboguer des canaris qui dépendent d'une surveillance visuelle.
Prérequis
Choisissez ou créez un compartiment Amazon S3 à utiliser pour stocker des artefacts issus des tests Canary locaux, tels que des HAR fichiers et des captures d'écran. Cela nécessite que vous soyez approvisionné enIAM. Si vous ne configurez pas les buckets Amazon S3, vous pouvez toujours tester votre Canary localement, mais vous verrez un message d'erreur concernant le bucket manquant et vous n'aurez pas accès aux artefacts Canary.
Si vous utilisez un compartiment Amazon S3, nous vous recommandons de définir le cycle de vie du compartiment de manière à supprimer les objets au bout de quelques jours, afin de réduire les coûts. Pour plus d'informations, voir Gestion du cycle de vie de votre stockage.
Configurez un AWS profil par défaut pour votre AWS compte. Pour plus d'informations, consultez Configuration et paramètres des fichiers d'identification.
Définissez la AWS région par défaut de l'environnement de débogage sur votre région préférée, telle que
us-west-2
.Installez le AWS SAM CLI. Pour plus d’informations, consultez Installing the AWS SAM CLI (Installation de).
Installation Visual Studio Code Editor or JetBrains IDEPour de plus amples informations, veuillez consulter . Visual Studio Code
ou JetBrains IDE Installation Docker pour travailler avec le AWS SAM CLI. Assurez-vous de démarrer le daemon docker. Pour plus d'informations, voir Installation Docker à utiliser avec le AWS SAM CLI.
Vous pouvez également installer d'autres logiciels de gestion de conteneurs tels que Rancher, tant qu'il utilise le Docker temps d'exécution.
Installez une extension de AWS boîte à outils pour votre éditeur préféré. Pour plus d'informations, voir Installation du AWS Toolkit for Visual Studio Code ou Installation du AWS Toolkit for JetBrains.
Rubriques
Configuration de l'environnement de test et de débogage
Tout d'abord, clonez le dépôt Github qui le AWS fournit en saisissant la commande suivante. Le référentiel contient des exemples de code pour les canaries Node.js et les canaries Python.
git clone https://github.com/aws-samples/synthetics-canary-local-debugging-sample.git
Effectuez ensuite l'une des opérations suivantes, en fonction de la langue de vos canaris.
Pour les canaris Node.js
Accédez au répertoire source Canary de Node.js en saisissant la commande suivante.
cd synthetics-canary-local-debugging-sample/nodejs-canary/src
Entrez la commande suivante pour installer Canary Dependencies.
npm install
Pour les canaris en Python
Accédez au répertoire source de Python Canary en saisissant la commande suivante.
cd synthetics-canary-local-debugging-sample/python-canary/src
Entrez la commande suivante pour installer Canary Dependencies.
pip3 install -r requirements.txt -t .
Utiliser Visual Studio Code IDE
Le Visual Studio le fichier de configuration de lancement se trouve à l'adresse.vscode/launch.json
. Il contient des configurations permettant au fichier modèle d'être découvert par V.isual
Studio code. Il définit une charge utile Lambda avec les paramètres requis pour invoquer le canari avec succès. Voici la configuration de lancement d'un canari Node.js :
{ ... ... "lambda": { "payload": { "json": { // Canary name. Provide any name you like. "canaryName": "LocalSyntheticsCanary", // Canary artifact location "artifactS3Location": { "s3Bucket": "cw-syn-results-123456789012-us-west-2", "s3Key": "local-run-artifacts", }, // Your canary handler name "customerCanaryHandlerName": "heartbeat-canary.handler" } }, // Environment variables to pass to the canary code "environmentVariables": {} } } ] }
Vous pouvez également éventuellement fournir les champs suivants dans la charge utile JSON :
s3EncryptionMode
Valeurs valides :SSE_S3
|SSE_KMS
s3KmsKeyArn
Valeur valide :KMS Key ARN
activeTracing
Valeurs valides :true
|false
canaryRunId
Valeur valide :UUID
Ce paramètre est obligatoire si le suivi actif est activé.
Pour déboguer le canari dans Visual Studio, ajoutez des points d'arrêt dans le code Canary où vous souhaitez suspendre l'exécution. Pour ajouter un point d'arrêt, choisissez la marge de l'éditeur et passez en mode Exécution et débogage dans l'éditeur. Lancez le canari en cliquant sur le bouton Play. Lorsque le canary s'exécute, les journaux sont enregistrés dans la console de débogage, vous fournissant des informations en temps réel sur le comportement du canari. Si vous avez ajouté des points d'arrêt, l'exécution de Canary s'interrompt à chaque point d'arrêt, ce qui vous permet de parcourir le code et d'inspecter les valeurs des variables, les méthodes d'instance, les attributs des objets et la pile d'appels de fonctions.
L'exécution et le débogage des canaris en local sont gratuits, à l'exception des artefacts stockés dans le compartiment Amazon S3 et des CloudWatch métriques générées par chaque exécution locale.
Utiliser JetBrains IDE
Une fois l' AWS Toolkit for JetBrains extension installée, assurez-vous que le plug-in et le JavaScript débogueur Node.js sont activés pour s'exécuter, si vous déboguez un canari Node.js. Procédez comme suit.
Déboguer un canari en utilisant JetBrains IDE
Dans le volet de navigation de gauche de JetBrains IDE, choisissez Lambda, puis choisissez le modèle de configuration local.
Entrez un nom pour la configuration d'exécution, tel que
LocalSyntheticsCanary
Choisissez À partir du modèle, choisissez le navigateur de fichiers dans le champ du modèle, puis sélectionnez le fichier template.yml dans le projet, soit dans le répertoire nodejs, soit dans le répertoire python.
Dans la section Entrée, entrez la charge utile du canari comme indiqué dans l'écran suivant.
{ "canaryName": "LocalSyntheticsCanary", "artifactS3Location": { "s3Bucket": "cw-syn-results-123456789012-us-west-2", "s3Key": "local-run-artifacts" }, "customerCanaryHandlerName": "heartbeat-canary.handler" }
Vous pouvez également définir d'autres variables d'environnement dans la charge utileJSON, comme indiqué dansUtiliser Visual Studio Code IDE.
Dirigez un canari localement avec le SAM CLI
Utilisez l'une des procédures suivantes pour exécuter votre Canary localement à l'aide du modèle d'application sans serveur (SAM). CLI Assurez-vous de spécifier votre propre nom de compartiment Amazon S3 pour s3Bucket
event.json
Pour utiliser le SAM CLI pour exécuter un canari Node.js
Accédez au répertoire source en saisissant la commande suivante.
cd synthetics-canary-local-debugging-sample/nodejs-canary
Entrez les commandes suivantes :
sam build sam local invoke -e ../event.json
Pour utiliser le SAM CLI pour exécuter un canari Python
Accédez au répertoire source en saisissant la commande suivante.
cd synthetics-canary-local-debugging-sample/python-canary
Entrez les commandes suivantes :
sam build sam local invoke -e ../event.json
Intégrez votre environnement de test local dans un package Canary existant
Vous pouvez intégrer le débogage Canary local dans votre package Canary existant en copiant trois fichiers :
Copiez le
template.yml
fichier dans la racine de votre package Canary. Assurez-vous de modifier le chemin pour qu'CodeUri
il pointe vers le répertoire où se trouve votre code Canary.Si vous travaillez avec un canari Node.js, copiez le
cw-synthetics.js
fichier dans votre répertoire source Canary. Si vous travaillez avec un canari Python, copiez-le danscw-synthetics.py
votre répertoire source Canary.Copiez le fichier de configuration de lancement.
vscode/launch.json
dans la racine du package. Assurez-vous de le mettre dans le.vscode
répertoire ; créez-le s'il n'existe pas déjà.
Modifier le runtime de CloudWatch Synthetics
Dans le cadre de votre débogage, vous pouvez essayer d'exécuter un canary avec un environnement d'exécution CloudWatch Synthetics différent, au lieu du dernier environnement d'exécution. Pour ce faire, recherchez le moteur d'exécution que vous souhaitez utiliser dans l'un des tableaux suivants. Assurez-vous de sélectionner le runtime pour la bonne région. Collez ensuite le fichier ARN correspondant à cet environnement d'exécution à l'endroit approprié de votre template.yml
fichier, puis lancez le canari.
Environnements d’exécution Node.js
ARNspour syn-nodejs-puppeteer -7,0
Le tableau suivant répertorie les versions ARNs à utiliser du moteur syn-nodejs-puppeteer-7.0
d'exécution CloudWatch Synthetics dans AWS chaque région où il est disponible.
Région | ARN |
---|---|
USA Est (Virginie du Nord) |
|
USA Est (Ohio) |
|
USA Ouest (Californie du Nord) |
|
USA Ouest (Oregon) |
|
Afrique (Le Cap) |
|
Asie-Pacifique (Hong Kong) |
|
Asie-Pacifique (Hyderabad) |
|
Asie-Pacifique (Jakarta) |
|
Asie-Pacifique (Melbourne) |
|
Asie-Pacifique (Mumbai) |
|
Asie-Pacifique (Osaka) |
|
Asia Pacific (Seoul) |
|
Asie-Pacifique (Singapour) |
|
Asie-Pacifique (Sydney) |
|
Asie-Pacifique (Tokyo) |
|
Canada (Centre) |
|
Canada Ouest (Calgary) |
|
Chine (Beijing) |
|
Chine (Ningxia) ; |
|
Europe (Francfort) |
|
Europe (Irlande) |
|
Europe (Londres) |
|
Europe (Milan) |
|
Europe (Paris) |
|
Europe (Espagne) |
|
Europe (Stockholm) |
|
Europe (Zurich) |
|
Israël (Tel Aviv) |
|
Moyen-Orient (Bahreïn) |
|
Moyen-Orient (UAE) |
|
Amérique du Sud (São Paulo) |
|
AWS GovCloud (USA Est) |
|
AWS GovCloud (US-Ouest) |
|
ARNspour syn-nodejs-puppeteer -6,2
Le tableau suivant répertorie les versions ARNs à utiliser du moteur syn-nodejs-puppeteer-6.2
d'exécution CloudWatch Synthetics dans AWS chaque région où il est disponible.
Région | ARN |
---|---|
USA Est (Virginie du Nord) |
|
USA Est (Ohio) |
|
USA Ouest (Californie du Nord) |
|
USA Ouest (Oregon) |
|
Afrique (Le Cap) |
|
Asie-Pacifique (Hong Kong) |
|
Asie-Pacifique (Hyderabad) |
|
Asie-Pacifique (Jakarta) |
|
Asie-Pacifique (Melbourne) |
|
Asie-Pacifique (Mumbai) |
|
Asie-Pacifique (Osaka) |
|
Asia Pacific (Seoul) |
|
Asie-Pacifique (Singapour) |
|
Asie-Pacifique (Sydney) |
|
Asie-Pacifique (Tokyo) |
|
Canada (Centre) |
|
Canada Ouest (Calgary) |
|
Chine (Beijing) |
|
Chine (Ningxia) ; |
|
Europe (Francfort) |
|
Europe (Irlande) |
|
Europe (Londres) |
|
Europe (Milan) |
|
Europe (Paris) |
|
Europe (Espagne) |
|
Europe (Stockholm) |
|
Europe (Zurich) |
|
Israël (Tel Aviv) |
|
Moyen-Orient (Bahreïn) |
|
Moyen-Orient (UAE) |
|
Amérique du Sud (São Paulo) |
|
AWS GovCloud (USA Est) |
|
AWS GovCloud (US-Ouest) |
|
ARNspour syn-nodejs-puppeteer -5,2
Le tableau suivant répertorie les versions ARNs à utiliser du moteur syn-nodejs-puppeteer-5.2
d'exécution CloudWatch Synthetics dans AWS chaque région où il est disponible.
Région | ARN |
---|---|
USA Est (Virginie du Nord) |
|
USA Est (Ohio) |
|
USA Ouest (Californie du Nord) |
|
USA Ouest (Oregon) |
|
Afrique (Le Cap) |
|
Asie-Pacifique (Hong Kong) |
|
Asie-Pacifique (Hyderabad) |
|
Asie-Pacifique (Jakarta) |
|
Asie-Pacifique (Melbourne) |
|
Asie-Pacifique (Mumbai) |
|
Asie-Pacifique (Osaka) |
|
Asia Pacific (Seoul) |
|
Asie-Pacifique (Singapour) |
|
Asie-Pacifique (Sydney) |
|
Asie-Pacifique (Tokyo) |
|
Canada (Centre) |
|
Canada Ouest (Calgary) |
|
Chine (Beijing) |
|
Chine (Ningxia) ; |
|
Europe (Francfort) |
|
Europe (Irlande) |
|
Europe (Londres) |
|
Europe (Milan) |
|
Europe (Paris) |
|
Europe (Espagne) |
|
Europe (Stockholm) |
|
Europe (Zurich) |
|
Israël (Tel Aviv) |
|
Moyen-Orient (Bahreïn) |
|
Moyen-Orient (UAE) |
|
Amérique du Sud (São Paulo) |
|
AWS GovCloud (USA Est) |
|
AWS GovCloud (US-Ouest) |
|
Environnements d’exécution Python
ARNspour syn-python-selenium -3.0
Le tableau suivant répertorie les versions ARNs à utiliser du moteur syn-python-selenium-3.0
d'exécution CloudWatch Synthetics dans AWS chaque région où il est disponible.
Région | ARN |
---|---|
USA Est (Virginie du Nord) |
|
USA Est (Ohio) |
|
USA Ouest (Californie du Nord) |
|
USA Ouest (Oregon) |
|
Afrique (Le Cap) |
|
Asie-Pacifique (Hong Kong) |
|
Asie-Pacifique (Hyderabad) |
|
Asie-Pacifique (Jakarta) |
|
Asie-Pacifique (Melbourne) |
|
Asie-Pacifique (Mumbai) |
|
Asie-Pacifique (Osaka) |
|
Asia Pacific (Seoul) |
|
Asie-Pacifique (Singapour) |
|
Asie-Pacifique (Sydney) |
|
Asie-Pacifique (Tokyo) |
|
Canada (Centre) |
|
Canada Ouest (Calgary) |
|
Chine (Beijing) |
|
Chine (Ningxia) ; |
|
Europe (Francfort) |
|
Europe (Irlande) |
|
Europe (Londres) |
|
Europe (Milan) |
|
Europe (Paris) |
|
Europe (Espagne) |
|
Europe (Stockholm) |
|
Europe (Zurich) |
|
Israël (Tel Aviv) |
|
Moyen-Orient (Bahreïn) |
|
Moyen-Orient (UAE) |
|
Amérique du Sud (São Paulo) |
|
AWS GovCloud (USA Est) |
|
AWS GovCloud (US-Ouest) |
|
ARNspour syn-python-selenium -2,1
Le tableau suivant répertorie les versions ARNs à utiliser du moteur syn-python-selenium-2.1
d'exécution CloudWatch Synthetics dans AWS chaque région où il est disponible.
Région | ARN |
---|---|
USA Est (Virginie du Nord) |
|
USA Est (Ohio) |
|
USA Ouest (Californie du Nord) |
|
USA Ouest (Oregon) |
|
Afrique (Le Cap) |
|
Asie-Pacifique (Hong Kong) |
|
Asie-Pacifique (Hyderabad) |
|
Asie-Pacifique (Jakarta) |
|
Asie-Pacifique (Melbourne) |
|
Asie-Pacifique (Mumbai) |
|
Asie-Pacifique (Osaka) |
|
Asia Pacific (Seoul) |
|
Asie-Pacifique (Singapour) |
|
Asie-Pacifique (Sydney) |
|
Asie-Pacifique (Tokyo) |
|
Canada (Centre) |
|
Canada Ouest (Calgary) |
|
Chine (Beijing) |
|
Chine (Ningxia) ; |
|
Europe (Francfort) |
|
Europe (Irlande) |
|
Europe (Londres) |
|
Europe (Milan) |
|
Europe (Paris) |
|
Europe (Espagne) |
|
Europe (Stockholm) |
|
Europe (Zurich) |
|
Israël (Tel Aviv) |
|
Moyen-Orient (Bahreïn) |
|
Moyen-Orient (UAE) |
|
Amérique du Sud (São Paulo) |
|
AWS GovCloud (USA Est) |
|
AWS GovCloud (US-Ouest) |
|
Erreurs courantes
Erreur : l'exécution de AWS SAM projets en local nécessite Docker. L'avez-vous installé et en cours d'exécution ?
Assurez-vous de commencer Docker sur votre ordinateur.
SAMéchec de l'appel local : une erreur s'est produite (ExpiredTokenException) lors de l'appel de l' GetLayerVersion opération : le jeton de sécurité inclus dans la demande a expiré
Assurez-vous que le profil AWS par défaut est configuré.
Erreurs les plus courantes
Pour plus d'informations sur les erreurs courantes liées auSAM, consultez la section AWS SAMCLIRésolution des problèmes.