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.
Exécutez des scripts Python à partir de GitHub
Cette section inclut des procédures pour vous aider à exécuter des scripts Python à partir de GitHub en utilisant la AWS Systems Manager console ou le AWS Command Line Interface (AWS CLI).
Exécutez un script Python à partir de GitHub (console)
Exécutez un script Python à partir de GitHub
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. Dans le volet de navigation, choisissez Run Command.
-
Sélectionnez Run Command (Exécuter la commande).
-
In the Command document (Document de commande), sélectionnez
AWS-RunRemoteScript
. -
Dans Command parameters (Paramètres de la commande), procédez comme suit :
-
Dans Type de source, sélectionnez GitHub.
-
Dans la zone Source Info (Informations sur la source), saisissez les informations requises pour accéder à la source en respectant le format suivant.
{ "owner": "
owner_name
", "repository": "repository_name
", "getOptions": "branch:branch_name
", "path": "path_to_document
", "tokenInfo": "{{ssm-secure:SecureString_parameter_name
}}" }Par exemple, le répertoire suivant télécharge un répertoire de scripts nommé complex-script.
{ "owner": "TestUser1", "repository": "SSMTestDocsRepo", "getOptions": "branch:myBranch", "path": "scripts/python/complex-script", "tokenInfo": "{{ssm-secure:myAccessTokenParam}}" }
Note
"branch"
n'est requis que si vos scripts sont stockés dans une branche autre quemaster
.Pour utiliser la version de vos scripts qui se trouvent dans un commit particulier de votre référentiel, utilisez
commitID
avecgetOptions
au lieu debranch
. Par exemple :"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
-
Dans le champ Command Line (Ligne de commande), saisissez les paramètres pour l'exécution du script. Voici un exemple.
mainFile.py argument-1 argument-2
Cet exemple exécute
mainFile.py
, qui peut ensuite exécuter d'autres scripts du répertoirecomplex-script
. -
(Facultatif) Dans le champ Working Directory (Répertoire de travail), saisissez le nom d'un répertoire du nœud dans lequel vous souhaitez télécharger et exécuter le script.
-
(Facultatif) Pour Délai d'exécution, précisez le nombre de secondes durant lesquelles le système doit attendre avant de mettre en échec l'exécution de la commande de script.
-
Dans la section Targets (Cibles), sélectionnez les nœuds gérés sur lesquels vous souhaitez exécuter cette opération en spécifiant des balises, en sélectionnant des instances ou des appareils de périphérie manuellement ou en spécifiant un groupe de ressources.
Astuce
Si, contrairement à vos attentes, un nœud géré ne figure pas dans la liste, consultez Résolution des problèmes de disponibilité des nœuds gérés pour obtenir des conseils de dépannage.
Pour Autres paramètres :
-
Pour Comment (Commentaire), saisissez des informations à propos de cette commande.
-
Pour Délai (secondes), précisez le nombre de secondes durant lesquelles le système doit attendre avant de mettre en échec l'exécution de la commande globale.
-
Pour Rate control (Contrôle de débit) :
-
Dans Concurrency (Simultanéité), spécifiez un nombre ou un pourcentage de nœuds gérés sur lesquels exécuter simultanément la commande.
Note
Si vous avez sélectionné des cibles en spécifiant les balises appliquées aux nœuds gérés ou en spécifiant des groupes de ressources AWS , et que vous n'êtes pas certain du nombre de nœuds gérés ciblés, limitez le nombre de cibles autorisées à exécuter simultanément le document en indiquant un pourcentage.
-
Dans Error threshold (Seuil d'erreur), indiquez quand arrêter l'exécution de la commande sur les autres nœuds gérés après l'échec de celle-ci sur un certain nombre ou un certain pourcentage de nœuds. Si, par exemple, vous spécifiez trois erreurs, Systems Manager cesse d'envoyer la commande à la réception de la quatrième erreur. Les nœuds gérés sur lesquels la commande est toujours en cours de traitement peuvent également envoyer des erreurs.
-
(Facultatif) Pour Output options (Options de sortie), pour enregistrer la sortie de la commande dans un fichier, cochez la case Write command output to an S3 bucket (Écrire la sortie de commande vers un compartiment S3). Saisissez les noms de compartiment et de préfixe (dossier) dans les zones.
Note
Les autorisations S3 qui permettent d'écrire les données dans un compartiment S3 sont celles du profil d'instance (pour les EC2 instances) ou du rôle de IAM service (machines activées par des hybrides) attribué à l'instance, et non celles de l'IAMutilisateur effectuant cette tâche. Pour plus d'informations, consultez Configurer les autorisations d'instance requises pour Systems Manager ou Créer un rôle de IAM service pour un environnement hybride. En outre, si le compartiment S3 spécifié se trouve dans un autre compartiment Compte AWS, assurez-vous que le profil d'instance ou le rôle de IAM service associé au nœud géré dispose des autorisations nécessaires pour écrire dans ce compartiment.
Dans la section SNSdes notifications, si vous souhaitez que des notifications soient envoyées concernant le statut de l'exécution de la commande, cochez la case Activer SNS les notifications.
Pour plus d'informations sur la configuration des SNS notifications Amazon pour Run Command, voir Surveillance des changements de statut de Systems Manager à l'aide SNS des notifications Amazon.
-
Cliquez sur Exécuter.
Exécutez un script Python à partir de GitHub en utilisant le AWS CLI
Installez et configurez le AWS Command Line Interface (AWS CLI), si ce n'est pas déjà fait.
Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l' AWS CLI.
-
Exécutez la commande suivante pour télécharger et exécuter un script depuis GitHub.
aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "
instance-IDs
" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name
\", \"repository\":\"repository_name
\", \"path\": \"path_to_script_or_directory
"}"],"commandLine":["commands_to_run
"]}'Voici un exemple.
aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
Cet exemple télécharge un répertoire de scripts nommé
complex-script
. L'entréecommandLine
exécutemainFile.py
, qui peut ensuite exécuter d'autres scripts du répertoirecomplex-script
.