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.
Mappage des cibles pour une automatisation
Utilisez le paramètre Targets
afin de définir rapidement quelles ressources de votre flotte peuvent exécuter une automatisation. Par exemple, si vous souhaitez exécuter une automatisation qui redémarre vos instances gérées, au lieu de sélectionner manuellement des dizaines d'instances IDs dans la console ou de les saisir dans une commande, vous pouvez cibler les instances en spécifiant des balises Amazon Elastic Compute Cloud (AmazonEC2) avec le Targets
paramètre.
Lorsque vous exécutez une automatisation qui utilise une cible, AWS Systems Manager crée une automatisation auxiliaire pour chaque cible. Par exemple, si vous ciblez des volumes Amazon Elastic Block Store (AmazonEBS) en spécifiant des balises et que ces balises sont résolues en 100 EBS volumes Amazon, Systems Manager crée 100 automatisations dérivées. L'automatisation parent est terminée lorsque toutes les automatisations enfants atteignent un état final.
Note
Toutes les valeurs input parameters
que vous spécifiez au moment de l'exécution (dans la section Input Parameters (Paramètres d'entrée) de la console ou à l'aide de l'option parameters
de l'interface de ligne de commande) sont automatiquement traitées par toutes les automatisations.
Pour cibler des ressources pour une automatisation, vous pouvez utiliser des balises, des groupes de ressources et des valeurs des paramètres. De plus, vous pouvez utiliser l'option TargetMaps
pour cibler plusieurs valeurs de paramètre à l'aide de l'interface de ligne de commande ou d'un fichier. La section suivante décrit chacune de ces options de ciblage en détail.
Ciblage d'une balise
Vous pouvez spécifier une seule balise comme cible d'une automatisation. De nombreuses AWS ressources prennent en charge les balises, notamment les instances Amazon Elastic Compute Cloud (AmazonEC2) et Amazon Relational Database Service (RDSAmazon), les volumes et instantanés Amazon Elastic Block Store (EBSAmazon), les Resource Groups et les compartiments Amazon Simple Storage Service (Amazon S3), pour n'en citer que quelques-unes. Vous pouvez automatiser rapidement vos AWS ressources en ciblant un tag. Une balise est une paire clé-valeur, telle que Operating_System:Linux (Système_Exploitation:Linux) ou Department:Finance (Service:Finances). Si vous affectez un nom spécifique à une ressource, vous pouvez également utiliser le mot « Nom » en tant que clé et le nom de la ressource comme valeur.
Lorsque vous spécifiez une balise en tant que cible d'une automatisation, vous pouvez également spécifier un paramètre cible. Le paramètre cible utilise l'option TargetParameterName
. En choisissant un paramètre cible, vous définissez le type de ressource sur lequel automatisation s'exécute. Le paramètre cible que vous spécifiez avec la balise doit être un paramètre valide défini dans le runbook. Par exemple, si vous souhaitez cibler des dizaines d'EC2instances à l'aide de balises, choisissez le paramètre InstanceId
cible. En choisissant ce paramètre, vous définissez les instances comme type de ressource pour l'automatisation. Lors de la création d'un runbook personnalisé, vous devez définir le type de cible sur /AWS::EC2::Instance
, de sorte que seules les instances soient utilisées. Dans le cas contraire, toutes les ressources portant la même balise seront ciblées. Lorsque vous ciblez des instances avec une balise, les instances résiliées peuvent être incluses.
La capture d'écran suivante utilise le runnbook AWS-DetachEBSVolume
. Le paramètre cible logique est VolumeId
.
Le runbook AWS-DetachEBSVolume
inclut également une propriété spéciale appelée Target type (Type de cible), qui est définie sur /AWS::EC2::Volume
. Cela signifie que si la paire tag-clé Finance:TestEnv
renvoie différents types de ressources (par exemple, des EC2 instances, des EBS volumes Amazon, des EBS instantanés Amazon), seuls les EBS volumes Amazon seront utilisés.
Important
Les noms de paramètre cible sont sensibles à la casse. Si vous exécutez des automatisations en utilisant le AWS Command Line Interface (AWS CLI) ou AWS Tools for Windows PowerShell, vous devez saisir le nom du paramètre cible exactement tel qu'il est défini dans le runbook. Dans le cas contraire, le système renvoie une erreur InvalidAutomationExecutionParametersException
. Vous pouvez utiliser cette DescribeDocumentAPIopération pour voir des informations sur les paramètres cibles disponibles dans un runbook spécifique. Voici un exemple de commande AWS CLI qui fournit des informations sur le document AWS-DeleteSnapshot
.
aws ssm describe-document \ --name AWS-DeleteSnapshot
Voici quelques exemples de AWS CLI commandes qui ciblent les ressources à l'aide d'une balise.
Exemple 1 : Cibler une balise à l'aide d'une paire clé-valeur pour redémarrer des instances Amazon EC2
Cet exemple redémarre toutes les EC2 instances Amazon étiquetées avec la clé Department et la valeur de HumanResources. Le paramètre cible utilise le InstanceIdparamètre du runbook. L'exemple utilise un paramètre supplémentaire pour exécuter Automation à l'aide d'un rôle de service Automation (également appelé rôle responsable).
aws ssm start-automation-execution \ --document-name AWS-RestartEC2Instance \ --targets Key=tag:Department,Values=HumanResources \ --target-parameter-name InstanceId \ --parameters "AutomationAssumeRole=arn:aws:iam::111122223333:role/AutomationServiceRole"
Exemple 2 : Cibler une balise à l'aide d'une paire clé-valeur pour supprimer des instantanés Amazon EBS
L'exemple suivant utilise le runbook AWS-DeleteSnapshot
pour supprimer tous les instantanés avec la clé Name (Nom) et la valeur January2018Backups. Le paramètre cible utilise le VolumeIdparamètre.
aws ssm start-automation-execution \ --document-name AWS-DeleteSnapshot \ --targets Key=tag:Name,Values=January2018Backups \ --target-parameter-name VolumeId
Ciblage AWS Resource Groups
Vous pouvez spécifier un seul groupe de AWS ressources comme cible d'une automatisation. Systems Manager crée une automatisation enfant pour chaque objet du groupe de ressources cible.
Supposons, par exemple, que l'un de vos Resource Groups s'appelle atchedAMIs P. Ce groupe de ressources inclut une liste de 25 Amazon Machine Images (AMIs) Windows auxquelles des correctifs sont appliqués régulièrement. Si vous exécutez une automatisation qui utilise le runbook AWS-CreateManagedWindowsInstance
et ciblez ce groupe de ressources, Systems Manager crée une automatisation enfant pour chacun des 25 AMIs. Cela signifie qu'en ciblant le groupe de atchedAMIs ressources P, l'automatisation crée 25 instances à partir d'une liste de correctifsAMIs. L'automatisation parent se termine lorsque toutes les automatisations enfants arrivent au terme du traitement ou atteignent un état final.
La AWS CLI commande suivante s'applique à l'exemple de groupe de atchAMIs ressources P. La commande prend le AmiIdparamètre de l'--target-parameter-name
option. Cette commande n'inclut pas d'autres paramètres pour définir le type d'instance à créer à partir de chaque AMI. Le AWS-CreateManagedWindowsInstance
runbook utilise par défaut le type d'instance t2.medium. Cette commande créera donc 25 instances Amazon t2.medium pour. EC2 Windows Server
aws ssm start-automation-execution \ --document-name AWS-CreateManagedWindowsInstance \ --targets Key=ResourceGroup,Values=PatchedAMIs \ --target-parameter-name AmiId
L'exemple de console suivant utilise un groupe de ressources appelé t2-micro-instances.
Ciblage des paramètres de valeur
Vous pouvez également cibler une valeur de paramètre. Saisissez ParameterValues
comme clé, puis la valeur de ressource spécifique où vous voulez que l'automatisation soit exécutée. Si vous spécifiez plusieurs valeurs, Systems Manager exécute une automatisation sur chaque valeur spécifiée.
Par exemple, supposons que le runbook comporte un paramètre InstanceID. Si vous ciblez les valeurs du paramètre InstanceID lorsque vous exécutez l'automatisation, Systems Manager exécute une automatisation enfant pour chaque valeur d'ID d'instance spécifiée. L'automatisation parent se termine lorsque l'automatisation a exécuté chaque instance spécifiée ou si l'exécution échoue. Vous pouvez cibler un maximum de 50 valeurs de paramètre.
L'exemple suivant utilise le runbook AWS-CreateImage
. Le nom du paramètre cible spécifié est InstanceId. Les principales utilisations ParameterValues. Les valeurs sont deux EC2 instances AmazonIDs. Cette commande crée une automatisation pour chaque instance, ce qui génère une AMI à partir de chaque instance.
aws ssm start-automation-execution --document-name AWS-CreateImage \ --target-parameter-name InstanceId \ --targets Key=ParameterValues,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE
Note
AutomationAssumeRole
n'est pas un paramètre valide. Ne sélectionnez pas cet élément lors de l'exécution d'automatisation qui ciblent une valeur de paramètre.
Ciblage des mappages de valeurs des paramètres
L'option TargetMaps
élargit votre capacité à cibler ParameterValues
. Vous pouvez entrer une liste de valeurs de paramètres en utilisant TargetMaps
au niveau de la ligne de commande. Vous pouvez spécifier un maximum de 50 valeurs de paramètre dans la ligne de commande. Si vous souhaitez exécuter des commandes qui spécifient plus de 50 valeurs de paramètres, vous pouvez les saisir dans un JSON fichier. Vous pouvez ensuite appeler ce fichier à partir de la ligne de commande.
Note
L'option TargetMaps
n'est pas prise en charge dans la console.
Utilisez le format suivant pour spécifier plusieurs valeurs de paramètre en utilisant l'option TargetMaps
dans une commande. Remplacez chacun example resource placeholder
avec vos propres informations.
aws ssm start-automation-execution \ --document-name
runbook name
\ --target-maps “parameter
=value
,parameter 2
=value
,parameter 3
=value
” “parameter 4
=value
,parameter 5
=value
,parameter 6
=value
”
Si vous souhaitez entrer plus de 50 valeurs de paramètres pour l'TargetMaps
option, spécifiez-les dans un fichier en utilisant le JSON format suivant. L'utilisation d'un JSON fichier améliore également la lisibilité lorsque vous fournissez plusieurs valeurs de paramètres.
[ {“parameter”: "value", “parameter 2”: "value", “parameter 3”: "value"}, {“parameter 4”: "value", “parameter 5”: "value", "parameter 6": "value"} ]
Enregistrez le fichier avec l'extension de fichier .json. Vous pouvez appeler le fichier en utilisant la commande suivante. Remplacez chacun example resource
placeholder
avec vos propres informations.
aws ssm start-automation-execution \ --document-name
runbook name
\ –-parametersinput parameters
\ --target-mapspath to file/file name
.json
Vous pouvez également télécharger le fichier à partir d'un compartiment Amazon Simple Storage Service (Amazon S3), dans la mesure où vous avez l'autorisation de lire les données de ce compartiment. Utilisez le format de commande suivant. Remplacez chacun example resource placeholder
avec vos propres informations.
aws ssm start-automation-execution \ --document-name
runbook name
\ --target-maps http://amzn-s3-demo-bucket.s3.amazonaws.com/file_name
.json
Voici un exemple de scénario qui peut vous aider à comprendre l'option TargetMaps
. Dans ce scénario, un utilisateur souhaite créer des EC2 instances Amazon de différents types à partir de différents typesAMIs. Pour effectuer cette tâche, l'utilisateur crée un runbook nommé AMI _Testing. Ce runbook définit deux paramètres d'entrée : instanceType
et imageId
.
{ "description": "AMI Testing", "schemaVersion": "0.3", "assumeRole": "{{assumeRole}}", "parameters": { "assumeRole": { "type": "String", "description": "Role under which to run the automation", "default": "" }, "instanceType": { "type": "String", "description": "Type of EC2 Instance to launch for this test" }, "imageId": { "type": "String", "description": "Source AMI id from which to run instance" } }, "mainSteps": [ { "name": "runInstances", "action": "aws:runInstances", "maxAttempts": 1, "onFailure": "Abort", "inputs": { "ImageId": "{{imageId}}", "InstanceType": "{{instanceType}}", "MinInstanceCount": 1, "MaxInstanceCount": 1 } } ], "outputs": [ "runInstances.InstanceIds" ] }
L'utilisateur spécifie ensuite les valeurs de paramètres cibles suivantes dans un fichier nommé AMI_instance_types.json
.
[ { "instanceType" : ["t2.micro"], "imageId" : ["ami-b70554c8"] }, { "instanceType" : ["t2.small"], "imageId" : ["ami-b70554c8"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] } ]
L'utilisateur peut exécuter l'automatisation et créer les cinq EC2 instances définies dans en AMI_instance_types.json
exécutant la commande suivante.
aws ssm start-automation-execution \ --document-name AMI_Testing \ --target-parameter-name imageId \ --target-maps file:///home/TestUser/workspace/runinstances/AMI_instance_types.json
Cibler toutes les EC2 instances Amazon
Vous pouvez exécuter une automatisation sur toutes les EC2 instances Amazon en cours Compte AWS
et en Région AWS choisissant Toutes les instances dans la liste des cibles. Par exemple, si vous souhaitez redémarrer toutes les EC2 instances Amazon, les vôtres Compte AWS et les instances actuelles Région AWS, vous pouvez choisir le AWS-RestartEC2Instance
runbook, puis toutes les instances dans la liste des cibles.
Après que vous avez choisi All instances (Toutes les instances), Systems Manager remplit le champ Instance avec un astérisque (*) et empêche la modification de ce champ (qui est alors grisé). Systems Manager rend également le InstanceIdchamp du champ Paramètres d'entrée indisponible pour les modifications. Rendre ces champs indisponibles pour empêcher leur modification est le comportement attendu si vous choisissez de cibler toutes les instances.