

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la [documentation Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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.

# Référence sur les actions Systems Manager Automation
<a name="automation-actions"></a>

Cette référence décrit les actions Automation que vous pouvez spécifier dans un runbook Automation. Automation est un outil d’ AWS Systems Manager. Ces actions ne peuvent pas être utilisées dans d'autres types de documents Systems Manager (SSM). Pour de plus amples informations sur les plug-ins pour d'autres types de documents SSM, veuillez consulter [Référence de plug-in de document Command](documents-command-ssm-plugin-reference.md).

Systems Manager Automation exécute les étapes définies dans les runbooks Automation. Chaque étape est associée à une action spécifique. L'action détermine les entrées, le comportement et les sorties de l'étape. Les étapes sont définies dans la section `mainSteps` de votre runbook.

Vous n'avez pas besoin de spécifier les sorties d'une action ou d'une étape. Les sorties sont prédéterminées par l'action associée à l'étape. Lorsque vous spécifiez des entrées d'étape dans vos runbooks, vous pouvez référencer une ou plusieurs sorties d'une étape précédente. Par exemple, vous pouvez rendre la sortie d'`aws:runInstances` disponible pour une action `aws:runCommand` suivante. Vous pouvez également référencer des sorties d'étapes précédentes dans la section `Output` du runbook. 

**Important**  
Si vous exécutez un flux de travail d'automatisation qui appelle d'autres services à l'aide d'un rôle de service Gestion des identités et des accès AWS (IAM), le rôle de service doit être configuré avec l'autorisation d'appeler ces services. Cette exigence s'applique à tous les runbooks AWS Automation (`AWS-*`runbooks) tels que, et `AWS-RestartEC2Instance` runbooks `AWS-ConfigureS3BucketLogging``AWS-CreateDynamoDBBackup`, pour n'en nommer que quelques-uns. Cette exigence s'applique également à tous les runbooks d'automatisation personnalisés que vous créez et qui invoquent d'autres services Services AWS en utilisant des actions qui appellent d'autres services. Par exemple, si vous utilisez les actions `aws:executeAwsApi`, `aws:createStack` ou `aws:copyImage`, vous devez configurer le rôle de service avec l'autorisation d'appeler ces services. Vous pouvez octroyer des autorisations à d'autres Services AWS en ajoutant une politique IAM en ligne au rôle. Pour de plus amples informations, veuillez consulter [(Facultatif) Ajoutez une politique d'automatisation en ligne ou une politique gérée par le client pour invoquer d'autres Services AWS](automation-setup-iam.md#add-inline-policy).

**Topics**
+ [Propriétés partagées par toutes les actions](#automation-common)
+ [`aws:approve` - Suspendre une automatisation pour approbation manuelle](automation-action-approve.md)
+ [`aws:assertAwsResourceProperty`— Affirme un état de AWS ressource ou un état d'événement](automation-action-assertAwsResourceProperty.md)
+ [`aws:branch` – exécuter les étapes d'automatisation conditionnelle](automation-action-branch.md)
+ [`aws:changeInstanceState` - Modifier ou affirmer le statut de l'instance](automation-action-changestate.md)
+ [`aws:copyImage` - Copier ou chiffrer une Amazon Machine Image](automation-action-copyimage.md)
+ [`aws:createImage` – supprimer une Amazon Machine Image](automation-action-create.md)
+ [`aws:createStack`— Crée une CloudFormation pile](automation-action-createstack.md)
+ [`aws:createTags`— Crée des tags pour les AWS ressources](automation-action-createtag.md)
+ [`aws:deleteImage` - Supprimer une Amazon Machine Image](automation-action-delete.md)
+ [`aws:deleteStack`— Supprime une CloudFormation pile](automation-action-deletestack.md)
+ [`aws:executeAutomation` - Exécuter une autre automatisation](automation-action-executeAutomation.md)
+ [`aws:executeAwsApi`— Appelez et exécutez des opérations AWS d'API](automation-action-executeAwsApi.md)
+ [`aws:executeScript` - Exécuter un script](automation-action-executeScript.md)
+ [`aws:executeStateMachine`— Lance une machine à AWS Step Functions états](automation-action-executeStateMachine.md)
+ [`aws:invokeWebhook` : appeler une intégration de webhook Automation](invoke-webhook.md)
+ [`aws:invokeLambdaFunction`— Invoque une AWS Lambda fonction](automation-action-lamb.md)
+ [`aws:loop` : itérer les étapes d’une automatisation](automation-action-loop.md)
+ [`aws:pause` - Suspendre une automatisation](automation-action-pause.md)
+ [`aws:runCommand` - Exécuter une commande sur une instance gérée](automation-action-runcommand.md)
+ [`aws:runInstances` – lancer une instance Amazon EC2](automation-action-runinstance.md)
+ [`aws:sleep` - Retarder une automatisation](automation-action-sleep.md)
+ [`aws:updateVariable` : met à jour la valeur d’une variable runbook](automation-action-update-variable.md)
+ [`aws:waitForAwsResourceProperty`— Attendre sur une propriété AWS de ressource](automation-action-waitForAwsResourceProperty.md)
+ [Variables système Automation](automation-variables.md)

## Propriétés partagées par toutes les actions
<a name="automation-common"></a>

Les propriétés communes sont des paramètres ou des options qui se trouvent dans toutes les actions. Certaines options définissent le comportement d'une étape, par exemple, le temps d'attente pour qu'une étape se termine et ce qu'il faut faire en cas d'échec de l'étape. Les propriétés suivantes sont communes à toutes les actions.

[description](#descriptProp)  
Informations que vous fournissez pour décrire l'objectif d'un runbook ou d'une étape.  
Type : chaîne  
Obligatoire : non

[name](#nameProp)  
Identifiant qui doit être unique pour tous les noms d'étape dans le runbook.  
Type : String  
Modèle autorisé : [a-zA-Z0-9\$1]\$1\$1  
Obligatoire : oui

[action](#actProp)  
Nom de l'action que l'étape doit exécuter. [`aws:runCommand` - Exécuter une commande sur une instance gérée](automation-action-runcommand.md) est un exemple d'action que vous pouvez spécifier ici. Ce document fournit des informations détaillées sur toutes les actions disponibles.  
Type : String  
Obligatoire : oui

[maxAttempts](#maxProp)  
Nombre de fois où l'étape doit être réessayée en cas de défaillance. Si la valeur est supérieure à 1, l'étape n'est pas considérée comme ayant échoué tant que toutes les tentatives n'ont pas échoué. La valeur par défaut est 1.  
Type : entier  
Obligatoire : non

[timeoutSeconds](#timeProp)  
Valeur du délai d'exécution de l'étape. Si le délai est expiré et que la valeur de `maxAttempts` est supérieure à 1, alors l'étape n'est pas considérée comme ayant expiré tant que toutes les tentatives n'ont pas été effectuées.  
Type : entier  
Obligatoire : non

[onFailure](#failProp)  
Indique si l'automatisation doit être arrêtée, poursuivie ou changer d'étape en cas d'échec. La valeur par défaut de cette option est abort.  
Type : String  
Valeurs valides : Abandonner \$1 Continuer \$1 Étape : *step\$1name*  
Obligatoire : non

[onCancel](#canProp)  
Indique quelle étape l'automatisation doit atteindre si un utilisateur annule l'automatisation. Automation exécute le flux d'annulation pendant un maximum de deux minutes.  
Type : String  
Valeurs valides : Abort \$1 étape : *step\$1name*  
Obligatoire : non  
La propriété `onCancel` ne prend pas en charge le déplacement vers les actions suivantes :  
+ `aws:approve`
+ `aws:copyImage`
+ `aws:createImage`
+ `aws:createStack`
+ `aws:createTags`
+ `aws:loop`
+ `aws:pause`
+ `aws:runInstances`
+ `aws:sleep`

[isEnd](#endProp)  
Cette option arrête une exécution d'automatisation à la fin d'une étape spécifique. L'automatisation s'arrête si l'étape a échoué ou réussi. La valeur par défaut est false.  
Type : booléen  
Valeurs valides : true \$1 false  
Obligatoire : non

[nextStep](#nextProp)  
Spécifie l'étape de l'automatisation à traiter immédiatement après la fin d'une étape.  
Type : chaîne  
Obligatoire : non

[isCritical](#critProp)  
Désigne une étape comme étant critique pour la réussite de l'exécution d'Automation. Si une étape portant cette désignation échoue, Automation signale l'état final de l'automatisation comme Échouée. Cette propriété est évaluée uniquement si vous la définissez explicitement dans votre étape. Si la propriété `onFailure` est définie sur `Continue` dans une étape, la valeur par défaut est FAUX. Sinon, la valeur par défaut de cette option est true.  
Type : booléen  
Valeurs valides : true \$1 false  
Obligatoire : non

[inputs](#inProp)  
Propriétés spécifiques à l'action.  
Type : carte  
Obligatoire : oui

### Exemple
<a name="automation-demo"></a>

```
---
description: "Custom Automation Example"
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Required) The ARN of the role that allows Automation to perform
      the actions on your behalf. If no role is specified, Systems Manager Automation
      uses your IAM permissions to run this runbook."
    default: ''
  InstanceId:
      type: String
      description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
      default: ''
mainSteps:
- name: getInstanceDetails
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
    - Name: availabilityZone
      Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
      Type: String
    - Name: rootDeviceName
      Selector: "$.Reservations[0].Instances[0].RootDeviceName"
      Type: String
  nextStep: getRootVolumeId
- name: getRootVolumeId
  action: aws:executeAwsApi
  maxAttempts: 3
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    -  Name: attachment.device
       Values: ["{{ getInstanceDetails.rootDeviceName }}"]
    -  Name: attachment.instance-id
       Values: ["{{ InstanceId }}"]
  outputs:
    - Name: rootVolumeId
      Selector: "$.Volumes[0].VolumeId"
      Type: String
  nextStep: getSnapshotsByStartTime
- name: getSnapshotsByStartTime
  action: aws:executeScript
  timeoutSeconds: 45
  onFailure: Abort
  inputs:
    Runtime: python3.8
    Handler: getSnapshotsByStartTime
    InputPayload:
      rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
    Script: |-
      def getSnapshotsByStartTime(events,context):
        import boto3

        #Initialize client
        ec2 = boto3.client('ec2')
        rootVolumeId = events['rootVolumeId']
        snapshotsQuery = ec2.describe_snapshots(
          Filters=[
            {
              "Name": "volume-id",
              "Values": [rootVolumeId]
            }
          ]
        )
        if not snapshotsQuery['Snapshots']:
          noSnapshotFoundString = "NoSnapshotFound"
          return { 'noSnapshotFound' : noSnapshotFoundString }
        else:
          jsonSnapshots = snapshotsQuery['Snapshots']
          sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
          latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
          return { 'latestSnapshotId' : latestSortedSnapshotId }
  outputs:
  - Name: Payload
    Selector: $.Payload
    Type: StringMap
  - Name: latestSnapshotId
    Selector: $.Payload.latestSnapshotId
    Type: String
  - Name: noSnapshotFound
    Selector: $.Payload.noSnapshotFound
    Type: String 
  nextStep: branchFromResults
- name: branchFromResults
  action: aws:branch
  onFailure: Abort
  onCancel: step:startInstance
  inputs:
    Choices:
    - NextStep: createNewRootVolumeFromSnapshot
      Not:
        Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
        StringEquals: "NoSnapshotFound"
  isEnd: true
- name: createNewRootVolumeFromSnapshot
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: CreateVolume
    AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
    SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
  outputs:
    - Name: newRootVolumeId
      Selector: "$.VolumeId"
      Type: String
  nextStep: stopInstance
- name: stopInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StopInstances
    InstanceIds:
    - "{{ InstanceId }}"
  nextStep: verifyVolumeAvailability
- name: verifyVolumeAvailability
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: verifyInstanceStopped
- name: verifyInstanceStopped
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
    PropertySelector: "$.Reservations[0].Instances[0].State.Name"
    DesiredValues:
    - "stopped"
  nextStep: detachRootVolume
- name: detachRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  isCritical: true
  inputs:
    Service: ec2
    Api: DetachVolume
    VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
  nextStep: verifyRootVolumeDetached
- name: verifyRootVolumeDetached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ getRootVolumeId.rootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: attachNewRootVolume
- name: attachNewRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: AttachVolume
    Device: "{{ getInstanceDetails.rootDeviceName }}"
    InstanceId: "{{ InstanceId }}"
    VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
  nextStep: verifyNewRootVolumeAttached
- name: verifyNewRootVolumeAttached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].Attachments[0].State"
    DesiredValues:
    - "attached"
  nextStep: startInstance
- name: startInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StartInstances
    InstanceIds:
    - "{{ InstanceId }}"
```

# `aws:approve` - Suspendre une automatisation pour approbation manuelle
<a name="automation-action-approve"></a>

Interrompt temporairement une automatisation jusqu'à ce que les principaux désignés aient approuvé ou rejeté l'action. Une fois le nombre d'approbations requises atteint, l'automatisation reprend. Vous pouvez insérer l'étape d'approbation n'importe où dans la section `mainSteps` de votre runbook. 

**Note**  
Cette action ne prend pas en charge les automations multi-comptes et régionales. Le délai d'attente par défaut pour cette action est de 7 jours (604 800 secondes) et la valeur maximale est de 30 jours (2 592 000 secondes). Vous pouvez limiter ou étendre le délai d'attente en spécifiant le paramètre `timeoutSeconds` pour une étape `aws:approve`.

Dans l'exemple suivant, l'action `aws:approve` interrompt temporairement l'automatisation jusqu'à ce qu'un approbateur accepte ou rejette l'automatisation. Après approbation, l'automatisation exécute une PowerShell commande simple. 

------
#### [ YAML ]

```
---
description: RunInstancesDemo1
schemaVersion: '0.3'
assumeRole: "{{ assumeRole }}"
parameters:
  assumeRole:
    type: String
  message:
    type: String
mainSteps:
- name: approve
  action: aws:approve
  timeoutSeconds: 1000
  onFailure: Abort
  inputs:
    NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval
    Message: "{{ message }}"
    MinRequiredApprovals: 1
    Approvers:
    - arn:aws:iam::12345678901:user/AWS-User-1
- name: run
  action: aws:runCommand
  inputs:
    InstanceIds:
    - i-1a2b3c4d5e6f7g
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - date
```

------
#### [ JSON ]

```
{
   "description":"RunInstancesDemo1",
   "schemaVersion":"0.3",
   "assumeRole":"{{ assumeRole }}",
   "parameters":{
      "assumeRole":{
         "type":"String"
      },
      "message":{
         "type":"String"
      }
   },
   "mainSteps":[
      {
         "name":"approve",
         "action":"aws:approve",
         "timeoutSeconds":1000,
         "onFailure":"Abort",
         "inputs":{
            "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval",
            "Message":"{{ message }}",
            "MinRequiredApprovals":1,
            "Approvers":[
               "arn:aws:iam::12345678901:user/AWS-User-1"
            ]
         }
      },
      {
         "name":"run",
         "action":"aws:runCommand",
         "inputs":{
            "InstanceIds":[
               "i-1a2b3c4d5e6f7g"
            ],
            "DocumentName":"AWS-RunPowerShellScript",
            "Parameters":{
               "commands":[
                  "date"
               ]
            }
         }
      }
   ]
}
```

------

Vous pouvez approuver ou refuser des automatisations en attente d'approbation dans la console.

**Pour approuver ou rejeter des automatisations en attente**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation de gauche, sélectionnez **Automation** (Automatisation).

1. Sélectionnez l'option en regard d'un flux de travail Automation avec le statut **En attente**.  
![\[Accès à la page Approve/Deny Automatisation\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/images/automation-approve-action-aws.png)

1. Sélectionnez **Approve/Deny** (Approuver/Refuser).

1. Vérifiez les détails de l'automatisation.

1. Sélectionnez **Approuver** ou **Refuser**, saisissez un commentaire facultatif, puis sélectionnez **Soumettre**.

**Exemple d’entrée**

------
#### [ YAML ]

```
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest
Message: Please approve this step of the Automation.
MinRequiredApprovals: 3
Approvers:
- IamUser1
- IamUser2
- arn:aws:iam::12345678901:user/IamUser3
- arn:aws:iam::12345678901:role/IamRole
```

------
#### [ JSON ]

```
{
   "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest",
   "Message":"Please approve this step of the Automation.",
   "MinRequiredApprovals":3,
   "Approvers":[
      "IamUser1",
      "IamUser2",
      "arn:aws:iam::12345678901:user/IamUser3",
      "arn:aws:iam::12345678901:role/IamRole"
   ]
}
```

------

NotificationArn  
La rubrique Amazon Resource Name (ARN d'un Amazon Simple Notification Service (Amazon SNS) pour les approbations Automation. Lorsque vous spécifiez une étape `aws:approve` dans un runbook, Automation envoie un message à cette rubrique, permettant aux principaux de savoir qu'ils doivent approuver ou rejeter une étape d'automatisation. Le titre de la rubrique Amazon SNS doit avoir un préfixe contenant « Automation ».  
Type : chaîne  
Obligatoire : non

Message  
Les informations que vous souhaitez inclure dans la rubrique Amazon SNS lorsque la requête d'approbation est envoyée. Le message peut contenir un nombre maximum de 4 096 caractères.   
Type : chaîne  
Obligatoire : non

MinRequiredApprovals  
Le nombre minimum d'approbations requises pour que l'automatisation reprenne. Si vous ne spécifiez aucune valeur, le système en établit une par défaut. La valeur de ce paramètre doit être un nombre positif. La valeur de ce paramètre ne peut pas dépasser le nombre d'approbateurs défini par le paramètre `Approvers`.   
Type : Integer  
Obligatoire : non

Approbateurs  
Liste des principaux AWS authentifiés qui sont en mesure d'approuver ou de rejeter l'action. Le nombre maximum d'approbateurs est de 10. Vous pouvez spécifier des principaux à l'aide des formats suivants :  
+ Un nom d'utilisateur
+ Un ARN d'utilisateur
+ Un ARN de rôle IAM
+ Un ARN de rôle de responsable IAM
Type : StringList  
Obligatoire : oui

EnhancedApprovals  
Cette entrée n’est utilisée que pour les modèles Change Manager. Une liste de principaux authentifiés AWS qui sont en mesure d’approuver ou de rejeter l’action, le type de principal IAM et le nombre minimum d’approbateurs. Voici un exemple :  

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
    - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
        Message: Please approve this change request
        MinRequiredApprovals: 3
        EnhancedApprovals:
        Approvers:
            - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
            - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
            - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
            - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
```
Type : StringList  
Obligatoire : oui

**Sortie**

ApprovalStatus  
L'état d'approbation de l'étape. L'état peut avoir les valeurs suivantes : Approuvé, Rejeté ou En attente. En attente signifie qu'Automation attend la saisie des approbateurs.  
Type : Chaîne

ApproverDecisions  
Une carte JSON incluant la décision d'approbation de chaque approbateur.  
Type : MapList

# `aws:assertAwsResourceProperty`— Affirme un état de AWS ressource ou un état d'événement
<a name="automation-action-assertAwsResourceProperty"></a>

L'action `aws:assertAwsResourceProperty` vous permet d'imposer un état de ressource ou d'événement spécifique pour une étape d'automatisation.

**Note**  
L’action `aws:assertAwsResourceProperty` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

Pour plus d'exemples sur l'utilisation de cette action, veuillez consulter la rubrique [Exemples supplémentaires de runbook](automation-document-examples.md).

**Input**  
Les entrées sont définies par l'opération d'API que vous sélectionnez. 

------
#### [ YAML ]

```
action: aws:assertAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property values
```

------
#### [ JSON ]

```
{
  "action": "aws:assertAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property values"
    ]
  }
}
```

------

Service  
L'espace de Service AWS noms qui contient l'opération d'API que vous souhaitez exécuter. Par exemple, l'espace de noms pour Systems Manager est `ssm`. L'espace de noms pour Amazon EC2 est `ec2`. Vous pouvez voir la liste des espaces de noms Service AWS pris en charge dans la section [Available Services](https://docs.aws.amazon.com/cli/latest/reference/#available-services) (Services disponibles) de la *Référence AWS CLI Command*.  
Type : Chaîne  
Obligatoire : oui

Api  
Le nom de l'opération d'API que vous voulez exécuter. Vous pouvez afficher les opérations d'API (également appelées méthodes) en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les opérations d'API (méthodes) pour Amazon Relational Database Service (Amazon RDS) sont répertoriées à la page suivante : [Méthodes pour Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Type : Chaîne  
Obligatoire : oui

Entrées d'opérations d'API  
Une ou plusieurs entrées d'opérations d'API. Vous pouvez afficher les entrées disponibles (également appelées paramètres) en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les méthodes pour Amazon RDS sont répertoriées sur la page suivante : [Méthodes Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ****Choisissez la méthode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) et faites défiler la page vers le bas pour voir les paramètres disponibles, tels que l'**DBInstanceidentifiant**, le nom et les valeurs.**** Utilisez le format suivant pour spécifier plusieurs entrées.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Type : déterminé par l'opération d'API choisie  
Obligatoire : oui

PropertySelector  
Le JSONPath vers un attribut spécifique dans l'objet de réponse. Vous pouvez afficher les objets de réponse en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les méthodes pour Amazon RDS sont répertoriées sur la page suivante : [Méthodes Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Choisissez la méthode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) et faites défiler la page jusqu'à la section Structure de réponse.** **DBInstances**est répertorié en tant qu'objet de réponse.  
Type : Chaîne  
Obligatoire : oui

DesiredValues  
État attendu ou état à partir duquel l'automatisation se poursuit. Si vous spécifiez une valeur booléenne, vous devez utiliser une majuscule, comme True ou False.  
Type : StringList  
Obligatoire : oui

# `aws:branch` – exécuter les étapes d'automatisation conditionnelle
<a name="automation-action-branch"></a>

L'action `aws:branch` vous permet de créer une automatisation dynamique qui évalue plusieurs options en une seule étape, puis passe à une autre étape dans le runbook en fonction des résultats de cette évaluation. 

Lorsque vous spécifiez l'action `aws:branch` pour une étape, vous définissez des `Choices` que l'automatisation doit évaluer. Les `Choices` peuvent se baser sur une valeur que vous avez spécifiée dans la section `Parameters` du runbook ou sur une valeur dynamique générée comme sortie à partir de l'étape précédente. L'automatisation évalue chaque choix à l'aide d'une expression booléenne. Si le premier choix est true, l'automatisation passe à l'étape désignée pour ce choix. Si le premier choix est false, l'automatisation évalue le choix suivant. L'automatisation continue d'évaluer chaque choix jusqu'à ce qu'il traite un choix défini sur true. L'automatisation accède ensuite à l'étape désignée correspondant au choix défini sur true.

Si aucun des choix n'est true, l'automatisation vérifie si l'étape contient une valeur `default`. La valeur par défaut définit une étape à laquelle l'automatisation doit passer si aucun des choix n'est défini sur true. Si aucune valeur `default` n'est spécifiée pour l'étape, l'automatisation traite l'étape suivante du runbook.

L'action `aws:branch` prend en charge les évaluations de choix complexes à l'aide d'une combinaison d'opérateurs `And`, `Not` et `Or`. Pour de plus amples informations sur l'utilisation d'`aws:branch`, y compris des exemples de runbooks et des exemples utilisant différents opérateurs, veuillez consulter [Utilisation d'instructions conditionnelles dans les runbooks](automation-branch-condition.md).

**Input**  
Spécifiez un ou plusieurs `Choices` dans une étape. Les `Choices` peuvent se baser sur une valeur que vous avez spécifiée dans la section `Parameters` du runbook ou sur une valeur dynamique générée comme sortie à partir de l'étape précédente. Voici un exemple de fichier YAML qui évalue un paramètre.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: linux
    Default:
      sleep3
```

Voici un exemple de fichier YAML qui évalue la sortie d'une étape précédente.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Linux
    Default:
      sleep3
```

Choix  
Une ou plusieurs expressions qu'Automation doit évaluer pour déterminer l'étape suivante à traiter. L'évaluation des choix repose sur une expression booléenne. Chaque choix doit définir les options suivantes :  
+ **NextStep**: étape suivante du runbook à traiter si le choix indiqué est vrai.
+ **Variable** : spécifiez le nom d'un paramètre qui est défini dans la section `Parameters` du runbook. Vous pouvez également spécifier un objet de sortie d'une étape précédente dans le runbook. Pour de plus amples informations sur la création de variables pour `aws:branch`, veuillez consulter [À propos de la création de la variable de sortie](automation-branch-condition.md#branch-action-output).
+ **Opération** : critères utilisés pour évaluer le choix. L'action `aws:branch` prend en charge les opérations suivantes :

**Opérations de chaîne**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Contains

**Opérations numériques**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Opération booléenne**
  + BooleanEquals
**Important**  
Lorsque vous créez un runbook, le système valide chaque opération dans le runbook. Si une opération n'est pas prise en charge, le système renvoie une erreur lorsque vous tentez de créer le runbook.

Par défaut  
Nom d'une étape à laquelle l'automatisation doit passer si aucun des `Choices` n'est true.  
Type : chaîne  
Obligatoire : non

**Note**  
L'action `aws:branch` prend en charge les opérateurs `And`, `Or` et `Not`. Pour obtenir des exemples `aws:branch` qui utilisent des opérateurs, veuillez consulter [Utilisation d'instructions conditionnelles dans les runbooks](automation-branch-condition.md).

# `aws:changeInstanceState` - Modifier ou affirmer le statut de l'instance
<a name="automation-action-changestate"></a>

Modifie ou affirme l'état de l'instance.

Cette action peut être utilisée en mode déclaration (n'exécute pas l'API pour modifier l'état, mais vérifie que l'instance affiche l'état souhaité.) Pour utiliser le mode assert, définissez le paramètre `CheckStateOnly` sur true. Ce mode est utile lorsque vous exécutez la commande Sysprep sous Windows Server, une commande asynchrone qui peut être exécutée en arrière-plan pendant longtemps. Vous pouvez veiller à ce que l'instance soit arrêtée avant de créer une Amazon Machine Image (AMI).

**Note**  
La valeur de délai d'expiration par défaut pour cette action est de 3600 secondes (une heure). Vous pouvez limiter ou étendre le délai d'attente en spécifiant le paramètre `timeoutSeconds` pour une étape `aws:changeInstanceState`.

**Note**  
L’action `aws:changeInstanceState` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Entrée**

------
#### [ YAML ]

```
name: stopMyInstance
action: aws:changeInstanceState
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  InstanceIds:
  - i-1234567890abcdef0
  CheckStateOnly: true
  DesiredState: stopped
```

------
#### [ JSON ]

```
{
    "name":"stopMyInstance",
    "action": "aws:changeInstanceState",
    "maxAttempts": 3,
    "timeoutSeconds": 3600,
    "onFailure": "Abort",
    "inputs": {
        "InstanceIds": ["i-1234567890abcdef0"],
        "CheckStateOnly": true,
        "DesiredState": "stopped"
    }
}
```

------

InstanceIds  
Les IDs instances.  
Type : StringList  
Obligatoire : oui

CheckStateOnly  
Si la valeur est false, définit l'état de l'instance sur l'état souhaité. Si la valeur est true, déclare l'état souhaité à l'aide de l'interrogation.  
Valeur par défaut : `false`  
Type : booléen  
Obligatoire : non

DesiredState  
État souhaité. Lorsqu'elle est définie sur `running`, cette action attend que l'état Amazon EC2 indique `Running`, que le statut d'instance soit `OK` et que le statut système corresponde à `OK` avant de se terminer.  
Type : Chaîne  
Valeurs valides : `running` \$1 `stopped` \$1 `terminated`  
Obligatoire : oui

Force  
Si ce paramètre est défini, il oblige les instances à s'arrêter. Les instances n'ont pas la possibilité de vider les caches du système de fichiers ou les métadonnées du système de fichiers. Si vous utilisez cette option, vous devez effectuer un contrôle du système de fichiers et des procédures de réparation. Cette option n'est pas recommandée pour les instances EC2 pour Windows Server.  
Type : booléen  
Obligatoire : non

AdditionalInfo  
Instances réservées.  
Type : chaîne  
Obligatoire : non

**Output**  
Aucune

# `aws:copyImage` - Copier ou chiffrer une Amazon Machine Image
<a name="automation-action-copyimage"></a>

Copie un Amazon Machine Image (AMI) à partir de n'importe quel élément Région AWS dans la région actuelle. Cette action peut également chiffrer la nouvelle AMI.

**Note**  
L’action `aws:copyImage` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
Cette action prend en charge la plupart des paramètres `CopyImage`. Pour de plus amples informations, veuillez consulter [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).

L'exemple suivant crée une copie d'une AMI dans la région de Séoul (`SourceImageID`: ami-0fe10819. `SourceRegion`: ap-northeast-2). La nouvelle AMI est copiée dans la région dans laquelle vous avez lancé l'action d'automatisation. L'AMI copiée sera chiffrée, car l'indicateur `Encrypted` facultatif est défini sur `true`.

------
#### [ YAML ]

```
name: createEncryptedCopy
action: aws:copyImage
maxAttempts: 3
onFailure: Abort
inputs:
  SourceImageId: ami-0fe10819
  SourceRegion: ap-northeast-2
  ImageName: Encrypted Copy of LAMP base AMI in ap-northeast-2
  Encrypted: true
```

------
#### [ JSON ]

```
{   
    "name": "createEncryptedCopy",
    "action": "aws:copyImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "SourceImageId": "ami-0fe10819",
        "SourceRegion": "ap-northeast-2",
        "ImageName": "Encrypted Copy of LAMP base AMI in ap-northeast-2",
        "Encrypted": true
    }   
}
```

------

SourceRegion  
Région dans laquelle l'AMI source existe actuellement.  
Type : Chaîne  
Obligatoire : oui

SourceImageId  
ID d'AMI à copier à partir de la région source.  
Type : Chaîne  
Obligatoire : oui

ImageName  
Nom de la nouvelle image.  
Type : Chaîne  
Obligatoire : oui

ImageDescription  
Description de l'image cible.  
Type : chaîne  
Obligatoire : non

Encrypted  
Chiffrement de l'AMI cible.  
Type : booléen  
Obligatoire : non

KmsKeyId  
Nom complet de la ressource Amazon (ARN) AWS KMS key à utiliser lors du chiffrement des instantanés d'une image lors d'une opération de copie. Pour de plus amples informations, veuillez consulter [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Type : chaîne  
Obligatoire : non

ClientToken  
Identifiant unique, sensible à la casse, que vous devez fournir afin de garantir l'idempotence de la demande. Pour de plus amples informations, veuillez consulter [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Type : chaîne  
Obligatoire : nonOutput

ImageId  
ID de l'image copiée.

ImageState  
État de l'image copiée.  
Valeurs valides : `available` \$1 `pending` \$1 `failed`

# `aws:createImage` – supprimer une Amazon Machine Image
<a name="automation-action-create"></a>

Crée une Amazon Machine Image (AMI) depuis une instance qui est soit en cours d’exécution, soit en cours d’arrêt, soit arrêtée, et demande à ce que le `ImageState` soit `available`.

**Note**  
L’action `aws:createImage` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
Cette action prend en charge les paramètres `CreateImage` suivants. Pour de plus amples informations, veuillez consulter [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

------
#### [ YAML ]

```
name: createMyImage
action: aws:createImage
maxAttempts: 3
onFailure: Abort
inputs:
  InstanceId: i-1234567890abcdef0
  ImageName: AMI Created on{{global:DATE_TIME}}
  NoReboot: true
  ImageDescription: My newly created AMI
```

------
#### [ JSON ]

```
{
    "name": "createMyImage",
    "action": "aws:createImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "InstanceId": "i-1234567890abcdef0",
        "ImageName": "AMI Created on{{global:DATE_TIME}}",
        "NoReboot": true,
        "ImageDescription": "My newly created AMI"
    }
}
```

------

InstanceId  
ID de l’instance.  
Type : Chaîne  
Obligatoire : oui

ImageName  
Nom de l'image.  
Type : Chaîne  
Obligatoire : oui

ImageDescription  
Description de l'image.  
Type : chaîne  
Obligatoire : non

NoReboot  
Littéral booléen.  
Par défaut, Amazon Elastic Compute Cloud (Amazon EC2) tente d'arrêter et redémarrer l'instance avant de créer l'image. Si l'option **No Reboot (Pas de redémarrage)** est définie sur `true`, Amazon EC2 n'arrête pas l'instance avant de créer l'image. Une fois cette option utilisée, l'intégrité du système de fichiers sur l'image créée ne peut pas être garantie.   
Si vous ne souhaitez pas que l'instance s'exécute après avoir créé une instance AMI à partir de celle-ci, utilisez d'abord l'[`aws:changeInstanceState` - Modifier ou affirmer le statut de l'instance](automation-action-changestate.md)action pour arrêter l'instance, puis utilisez cette `aws:createImage` action avec l'**NoReboot**option définie sur`true`.  
Type : booléen  
Obligatoire : non

BlockDeviceMappings  
Périphériques de stockage en mode bloc pour l'instance.  
Type: carte (map)  
Obligatoire : nonOutput

ImageId  
ID de l'image nouvellement créée.  
Type : Chaîne

ImageState  
État actuel de l'image. Si l'état est disponible, l'image est enregistrée avec succès et peut être utilisée pour lancer une instance.  
Type : Chaîne

# `aws:createStack`— Crée une CloudFormation pile
<a name="automation-action-createstack"></a>

Crée une AWS CloudFormation pile à partir d'un modèle.

**Note**  
L’action `aws:createStack` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

Pour plus d'informations sur la création de CloudFormation piles, consultez la référence [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)de l'*AWS CloudFormation API*. 

**Entrée**

------
#### [ YAML ]

```
name: makeStack
action: aws:createStack
maxAttempts: 1
onFailure: Abort
inputs:
  Capabilities:
  - CAPABILITY_IAM
  StackName: myStack
  TemplateURL: http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate
  TimeoutInMinutes: 5
  Parameters:
    - ParameterKey: LambdaRoleArn
      ParameterValue: "{{LambdaAssumeRole}}"
    - ParameterKey: createdResource
      ParameterValue: createdResource-{{automation:EXECUTION_ID}}
```

------
#### [ JSON ]

```
{
    "name": "makeStack",
    "action": "aws:createStack",
    "maxAttempts": 1,
    "onFailure": "Abort",
    "inputs": {
        "Capabilities": [
            "CAPABILITY_IAM"
        ],
        "StackName": "myStack",
        "TemplateURL": "http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate",
        "TimeoutInMinutes": 5,
        "Parameters": [
          {
            "ParameterKey": "LambdaRoleArn",
            "ParameterValue": "{{LambdaAssumeRole}}"
          },
          {
            "ParameterKey": "createdResource",
            "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}"
          }
    }
}
```

------

Fonctionnalités  
Une liste de valeurs que vous avez spécifiées auparavant CloudFormation peut créer certaines piles. Certains modèles de pile incluent des ressources qui peuvent affecter les autorisations de votre Compte AWS. Pour ces piles, vous devez explicitement reconnaître leurs capacités en spécifiant ce paramètre.   
Les valeurs valides sont `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM` et `CAPABILITY_AUTO_EXPAND`.   
**CAPABILITY\$1IAM et CAPABILITY\$1NAMED\$1IAM**  
Si vous disposez de ressources IAM, vous pouvez spécifier l’une ou l’autre de ces capacités. Si vous disposez de ressources IAM avec des noms personnalisés, vous devez spécifier `CAPABILITY_NAMED_IAM`. Si vous ne spécifiez pas ce paramètre, cette action renvoie une erreur `InsufficientCapabilities`. Les ressources suivantes exigent que vous spécifiiez `CAPABILITY_IAM` ou `CAPABILITY_NAMED_IAM`.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
Si votre modèle de pile contient ces ressources, nous vous recommandons de vérifier toutes les autorisations qui y sont associées et de les modifier, si nécessaire.   
Pour plus d'informations, voir [Reconnaissance des ressources IAM dans les CloudFormation modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).   
**CAPABILITY\$1AUTO\$1EXPAND**  
Certains modèles contiennent des macros. Les macros effectuent un traitement personnalisé sur les modèles ; cela peut inclure des actions simples telles que des find-and-replace opérations ou des transformations étendues de modèles entiers. De ce fait, les utilisateurs créent généralement un jeu de modifications à partir du modèle traité, afin de pouvoir examiner les modifications résultant des macros avant de créer réellement la pile. Si votre modèle de pile contient une ou plusieurs macros et que vous choisissez de créer une pile directement à partir du modèle traité, sans examiner au préalable les modifications qui en résultent dans un jeu de modifications, vous devez reconnaître cette fonctionnalité. 
Pour plus d'informations, consultez la section [Utilisation de AWS CloudFormation macros pour effectuer un traitement personnalisé sur des modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) dans le *Guide de AWS CloudFormation l'utilisateur*.  
Type : tableau de chaînes  
Valeurs valides : `CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
Obligatoire : non

ClientRequestToken  
Identifiant unique pour cette CreateStack demande. Spécifiez ce jeton si vous définissez maxAttempts dans cette étape sur une valeur supérieure à 1. En spécifiant ce jeton CloudFormation , vous savez que vous n'essayez pas de créer une nouvelle pile portant le même nom.  
Type : chaîne  
Obligatoire : non  
Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 128.  
Modèle : [a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
Définir sur `true` pour désactiver la restauration de la pile si la création de pile a échoué.  
Conditionnel : Vous pouvez spécifier le paramètre `DisableRollback` ou le paramètre `OnFailure`, mais pas les deux.   
Valeur par défaut : `false`  
Type : booléen  
Obligatoire : non

Notification ARNs  
 ARNs Rubrique Amazon Simple Notification Service (Amazon SNS) consacrée à la publication d'événements liés à la pile. [Vous pouvez accéder à la rubrique SNS à ARNs l'aide de la console https://console.aws.amazon.com/sns/ Amazon SNS, v3/home.](https://console.aws.amazon.com/sns/v3/home)   
Type : tableau de chaînes  
Membres du tableau : Nombre maximum de 5 éléments.  
Obligatoire : non

OnFailure  
Détermine l'action à mener si la création de pile a échoué. Vous devez spécifier `DO_NOTHING`, `ROLLBACK` ou `DELETE`.  
Conditionnel : Vous pouvez spécifier le paramètre `OnFailure` ou le paramètre `DisableRollback`, mais pas les deux.   
Valeur par défaut : `ROLLBACK`  
Type : chaîne  
Valeurs valides :` DO_NOTHING | ROLLBACK | DELETE`  
Obligatoire : non

Parameters  
Une liste de structures `Parameter` qui spécifie les paramètres d'entrée pour la pile. Pour plus d'informations, consultez le type de données [Paramètre](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html).   
Type : tableau d'objets [Paramètre](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)   
Obligatoire : non

ResourceTypes  
Les types de ressource du modèle avec lesquels vous avez l'autorisation de travailler pour cette action de création de pile. Par exemple : `AWS::EC2::Instance`, `AWS::EC2::*` ou `Custom::MyCustomInstance`. Utilisez la syntaxe suivante pour décrire les types de ressource du modèle.  
+ Pour toutes les AWS ressources :

  ```
  AWS::*
  ```
+ Pour toutes les ressources personnalisées :

  ```
  Custom::*
  ```
+ Pour une ressource personnalisée spécifique :

  ```
  Custom::logical_ID
  ```
+ Pour toutes les ressources d'un Service AWS spécifique :

  ```
  AWS::service_name::*
  ```
+ Pour une AWS ressource spécifique :

  ```
  AWS::service_name::resource_logical_ID
  ```
Si la liste de types de ressources n'inclut pas la ressource que vous êtes en train de créer, la création de pile échoue. Par défaut, CloudFormation accorde des autorisations à tous les types de ressources. IAM utilise ce paramètre pour les clés de condition CloudFormation spécifiques dans les politiques IAM. Pour plus d'informations, consultez la section [Contrôle de l'accès avec Gestion des identités et des accès AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).   
Type : tableau de chaînes  
Contraintes de longueur : longueur minimale de 1 caractère. Longueur maximale de 256.  
Obligatoire : non

RoleARN  
Le nom de ressource Amazon (ARN) d'un rôle IAM CloudFormation censé créer la pile. CloudFormation utilise les informations d'identification du rôle pour passer des appels en votre nom. CloudFormation utilise toujours ce rôle pour toutes les futures opérations sur la pile. Tant que les utilisateurs ont l'autorisation d'opérer sur la pile, CloudFormation utilise ce rôle même si les utilisateurs n'ont pas l'autorisation de le transmettre. Vérifiez que le rôle accorde le plus faible nombre de privilèges.   
Si vous ne spécifiez aucune valeur, CloudFormation utilise le rôle précédemment associé à la pile. Si aucun rôle n'est disponible, CloudFormation utilise une session temporaire générée à partir de vos informations d'identification utilisateur.   
Type : Chaîne  
Contraintes de longueur : longueur minimale de 20. Longueur maximale de 2048.  
Obligatoire : non

StackName  
Le nom associé à la pile. Le nom doit être unique dans la région dans laquelle vous créez la pile.  
Un nom de pile ne peut contenir que des caractères alphanumériques (sensibles à la casse) et des traits d’union. Il doit commencer par un caractère alphabétique et ne doit pas dépasser 128 caractères. 
Type : Chaîne  
Obligatoire : oui

StackPolicyBody  
Structure contenant le corps de la politique de pile. Pour plus d’informations, consultez [Empêchement des mises à jour des ressources de la pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).  
Conditionnel : Vous pouvez spécifier le paramètre `StackPolicyBody` ou le paramètre `StackPolicyURL`, mais pas les deux.   
Type : Chaîne  
Contraintes de longueur : longueur minimum de 1. Longueur maximale de 16384.  
Obligatoire : non

StackPolicyURL  
Emplacement d'un fichier contenant la politique de pile. L'URL doit pointer vers une politique située dans un compartiment S3 de la même région que la pile. La taille maximum autorisée pour la politique de pile est 16 Ko.  
Conditionnel : Vous pouvez spécifier le paramètre `StackPolicyBody` ou le paramètre `StackPolicyURL`, mais pas les deux.   
Type : Chaîne  
Contraintes de longueur : longueur minimum de 1. Longueur maximale de 1350.  
Obligatoire : non

Étiquettes  
Paires clé-valeur à associer à cette pile. CloudFormation propage également ces balises aux ressources créées dans la pile. Vous pouvez spécifier un nombre maximum de 10 balises.   
Type : tableau d'objets [Balise](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)   
Obligatoire : non

TemplateBody  
Structure contenant le corps du modèle avec une longueur minimale de 1 octet et une longueur maximale de 51 200 octets. Pour plus d'informations, consultez [Anatomie du modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Conditionnel : Vous pouvez spécifier le paramètre `TemplateBody` ou le paramètre `TemplateURL`, mais pas les deux.   
Type : Chaîne  
Contraintes de longueur : longueur minimum de 1.  
Obligatoire : non

TemplateURL  
Emplacement d'un fichier contenant le corps du modèle. L'URL doit pointer vers un modèle situé dans un compartiment S3. La taille maximum autorisée pour le modèle est 460 800 Ko. Pour plus d'informations, consultez [Anatomie du modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Conditionnel : Vous pouvez spécifier le paramètre `TemplateBody` ou le paramètre `TemplateURL`, mais pas les deux.   
Type : Chaîne  
Contraintes de longueur : Longueur minimum de 1. Longueur maximale de 1024.  
Obligatoire : non

TimeoutInMinutes  
La durée qui peut s'écouler avant que l'état de la pile ne devienne `CREATE_FAILED`. Si `DisableRollback` n'est pas défini ou est défini sur `false`, la pile sera annulée.   
Type : entier  
Plage valide : Valeur minimum de 1.  
Obligatoire : non

## Sorties
<a name="automation-action-createstack-output"></a>

StackId  
Identifiant unique de la pile.  
Type : Chaîne

StackStatus  
Statut actuel de la pile.  
Type : Chaîne  
Valeurs valides : `CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS`  
Obligatoire : oui

StackStatusReason  
Message d'échec ou de succès associé au statut de la pile.  
Type : chaîne  
Obligatoire : non  
Pour de plus amples informations, veuillez consulter [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).

## Considérations sur la sécurité
<a name="automation-action-createstack-security"></a>

Avant de pouvoir utiliser l'action `aws:createStack`, vous devez attribuer la politique suivante au rôle responsable Automation IAM. Pour de plus amples informations sur le rôle de responsable, veuillez consulter [Tâche 1 : Création d'un rôle de service pour Automation](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:createTags`— Crée des tags pour les AWS ressources
<a name="automation-action-createtag"></a>

Crée de nouvelles balises pour les instances Amazon Elastic Compute Cloud (Amazon EC2) ou les instances AWS Systems Manager gérées.

**Note**  
L’action `aws:createTags` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
Cette action prend en charge la plupart des paramètres `CreateTags` d'Amazon EC2 et `AddTagsToResource` de Systems Manager. Pour plus d’informations, consultez [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_createtags.html) et [AddTagsToResource](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_addtagstoresource.html).

L'exemple suivant montre comment baliser une Amazon Machine Image (AMI) et une instance comme étant des ressources de production pour un service particulier.

------
#### [ YAML ]

```
name: createTags
action: aws:createTags
maxAttempts: 3
onFailure: Abort
inputs:
  ResourceType: EC2
  ResourceIds:
  - ami-9a3768fa
  - i-02951acd5111a8169
  Tags:
  - Key: production
    Value: ''
  - Key: department
    Value: devops
```

------
#### [ JSON ]

```
{
    "name": "createTags",
    "action": "aws:createTags",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "ResourceType": "EC2",
        "ResourceIds": [
            "ami-9a3768fa",
            "i-02951acd5111a8169"
        ],
        "Tags": [
            {
                "Key": "production",
                "Value": ""
            },
            {
                "Key": "department",
                "Value": "devops"
            }
        ]
    }
}
```

------

ResourceIds  
ID des ressources qui doivent être balisées. Si le type de ressources n'est pas « EC2 », ce champ peut uniquement contenir un seul élément.  
Type : Liste de chaînes  
Obligatoire : oui

Étiquettes  
Balises à associer aux ressources.  
Type : Liste des mappages  
Obligatoire : oui

ResourceType  
Type des ressources qui doivent être balisées. Si le type n'est pas indiqué, la valeur par défaut « EC2 » est utilisée.  
Type : chaîne  
Obligatoire : non  
Valeurs Valides: `EC2` \$1 `ManagedInstance` \$1 `MaintenanceWindow` \$1 `Parameter`

**Output**  
Aucune

# `aws:deleteImage` - Supprimer une Amazon Machine Image
<a name="automation-action-delete"></a>

Supprime l'Amazon Machine Image (AMI) spécifiée et tous les instantanés associés.

**Note**  
L’action `aws:deleteImage` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
Cette action prend en charge un seul paramètre. Pour plus d'informations, consultez la documentation relative à [DeregisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterImage.html)et [DeleteSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html).

------
#### [ YAML ]

```
name: deleteMyImage
action: aws:deleteImage
maxAttempts: 3
timeoutSeconds: 180
onFailure: Abort
inputs:
  ImageId: ami-12345678
```

------
#### [ JSON ]

```
{
    "name": "deleteMyImage",
    "action": "aws:deleteImage",
    "maxAttempts": 3,
    "timeoutSeconds": 180,
    "onFailure": "Abort",
    "inputs": {
        "ImageId": "ami-12345678"
    }
}
```

------

ImageId  
ID de l'image à supprimer.  
Type : Chaîne  
Obligatoire : oui

**Output**  
Aucune

# `aws:deleteStack`— Supprime une CloudFormation pile
<a name="automation-action-deletestack"></a>

Supprime toute AWS CloudFormation pile.

**Note**  
L’action `aws:deleteStack` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Entrée**

------
#### [ YAML ]

```
name: deleteStack
action: aws:deleteStack
maxAttempts: 1
onFailure: Abort
inputs:
  StackName: "{{stackName}}"
```

------
#### [ JSON ]

```
{
   "name":"deleteStack",
   "action":"aws:deleteStack",
   "maxAttempts":1,
   "onFailure":"Abort",
   "inputs":{
      "StackName":"{{stackName}}"
   }
}
```

------

ClientRequestToken  
Identifiant unique de cette règle `DeleteStack`. Spécifiez ce jeton si vous prévoyez de réessayer les demandes afin CloudFormation de savoir que vous n'essayez pas de supprimer une pile portant le même nom. Vous pouvez réessayer les requêtes `DeleteStack` pour vérifier que CloudFormation les a reçues.  
Type : Chaîne  
Contraintes de longueur : Longueur minimum de 1. Longueur maximale de 128.  
Modèle : [a-zA-Z][-a-zA-Z0-9]\$1  
Obligatoire : non

RetainResources.membre.n  
Cette entrée s'applique uniquement aux piles qui ont un statut `DELETE_FAILED`. Liste des ressources logiques IDs pour les ressources que vous souhaitez conserver. Lors de la suppression, CloudFormation supprime la pile, mais ne supprime pas les ressources conservées.  
La conservation des ressources s'avère utile lorsque vous ne pouvez pas supprimer une ressource, telle qu'un compartiment S3 non vide, mais que vous voulez supprimer la pile.  
Type : tableau de chaînes  
Obligatoire : non

RoleARN  
Le nom de ressource Amazon (ARN) d'un rôle Gestion des identités et des accès AWS (IAM) CloudFormation censé créer la pile. CloudFormation utilise les informations d'identification du rôle pour passer des appels en votre nom. CloudFormation utilise toujours ce rôle pour toutes les futures opérations sur la pile. Tant que les utilisateurs sont autorisés à opérer sur la pile, CloudFormation utilise ce rôle même s'ils n'ont pas l'autorisation de le transmettre. Vérifiez que le rôle accorde le plus faible nombre de privilèges.   
Si vous ne spécifiez aucune valeur, CloudFormation utilise le rôle précédemment associé à la pile. Si aucun rôle n'est disponible, CloudFormation utilise une session temporaire générée à partir de vos informations d'identification utilisateur.   
Type : Chaîne  
Contraintes de longueur : longueur minimale de 20. Longueur maximale de 2048.  
Obligatoire : non

StackName  
Le nom ou l'ID de la pile unique auquel la pile est associée.  
Type : Chaîne  
Obligatoire : oui

## Considérations sur la sécurité
<a name="automation-action-deletestack-security"></a>

Avant de pouvoir utiliser l'action `aws:deleteStack`, vous devez attribuer la politique suivante au rôle responsable Automation IAM. Pour de plus amples informations sur le rôle de responsable, veuillez consulter [Tâche 1 : Création d'un rôle de service pour Automation](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:executeAutomation` - Exécuter une autre automatisation
<a name="automation-action-executeAutomation"></a>

Exécute une automatisation secondaire en appelant un runbook secondaire. Par cette action, vous pouvez créer des runbooks pour vos opérations les plus courantes et vous y référer durant une automatisation. Cette action peut simplifier vos runbooks en supprimant la nécessité de dupliquer les étapes sur les runbooks similaires.

L'automatisation secondaire s'exécute dans le cadre de l'utilisateur qui a lancé l'automatisation principale. Cela signifie que l'automatisation secondaire utilise le même rôle ou utilisateur Gestion des identités et des accès AWS (IAM) que l'utilisateur qui a lancé la première automatisation.

**Important**  
Si vous spécifiez les paramètres d'une automatisation secondaire qui utilise un rôle de responsable (un rôle ayant recours à la politique iam:passRole), l'utilisateur ou le rôle qui a lancé l'automatisation principale doit donc avoir l'autorisation de transférer ce rôle de responsable dans l'automatisation secondaire. Pour de plus amples informations sur la configuration d'un rôle de responsable pour l'automatisation, consultez [Créer les rôles de service pour l’automatisation à l’aide de la console](automation-setup-iam.md).

**Entrée**

------
#### [ YAML ]

```
name: Secondary_Automation
action: aws:executeAutomation
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  DocumentName: secondaryAutomation
  RuntimeParameters:
    instanceIds:
    - i-1234567890abcdef0
```

------
#### [ JSON ]

```
{
   "name":"Secondary_Automation",
   "action":"aws:executeAutomation",
   "maxAttempts":3,
   "timeoutSeconds":3600,
   "onFailure":"Abort",
   "inputs":{
      "DocumentName":"secondaryAutomation",
      "RuntimeParameters":{
         "instanceIds":[
            "i-1234567890abcdef0"
         ]
      }
   }
}
```

------

DocumentName  
Le nom du runbook secondaire à exécuter pendant cette étape. Pour les runbooks identiques Compte AWS, spécifiez le nom du runbook. Pour les runbooks partagés depuis un autre Compte AWS, spécifiez le nom de ressource Amazon (ARN) du runbook. Pour obtenir des informations sur l'utilisation de runbooks partagés, consultez [Utilisation de documents SSM partagés](documents-ssm-sharing.md#using-shared-documents).  
Type : Chaîne  
Obligatoire : oui

DocumentVersion  
La version du runbook secondaire à exécuter. Si elle n'est pas spécifiée, Automation exécute la version du runbook par défaut.  
Type : chaîne  
Obligatoire : non

MaxConcurrency  
Nombre maximum de cibles pour lesquelles cette tâche peut être exécutée en parallèle. Vous pouvez spécifier un nombre tel que 10 ou un pourcentage tel que 10 %.  
Type : chaîne  
Obligatoire : non

MaxErrors  
Nombre d'erreurs autorisées avant que le système ne cesse d'exécuter l'automatisation sur des cibles supplémentaires. Vous pouvez spécifier un nombre absolu d'erreurs, par exemple 10, ou un pourcentage de l'ensemble de la cible, par exemple 10 %. Par exemple, si vous spécifiez 3, le système cesse d'envoyer l'exécution de l'automatisation à la réception de la quatrième erreur. Si vous spécifiez 0, le système cesse d'exécuter l'automatisation à des cibles supplémentaires une fois que le premier résultat d'erreur est renvoyé. Si vous exécutez une automatisation sur 50 ressources et que vous définissez `MaxErrors` sur 10 %, le système cesse d'exécuter l'automatisation sur des cibles supplémentaires à réception de la sixième erreur.  
Les automatisations qui sont déjà en cours d'exécution quand le seuil `MaxErrors` est atteint sont autorisées à se terminer, mais certaines de ces automatisations peuvent également échouer. Si vous devez vous assurer que le nombre d'échecs d'automatisations ne dépassera pas la valeur `MaxErrors` spécifiée, définissez `MaxConcurrency` sur 1 de sorte que les automatisations s'exécutent une à la fois.  
Type : chaîne  
Obligatoire : non

RuntimeParameters  
Paramètres requis pour le runbook secondaire. Le mappage utilise le format suivant : \$1"parameter1" : "value1", "parameter2" : "value2" \$1  
Type: carte (map)  
Obligatoire : non

Étiquettes  
Métadonnées facultatives que vous affectez à une ressource. Vous pouvez spécifier cinq balises maximum pour une automatisation.  
Type : MapList  
Obligatoire : non

TargetLocations  
Un emplacement est une combinaison de Régions AWS et/ou de l' Comptes AWS endroit où vous souhaitez exécuter l'automatisation. Vous devez spécifier un nombre minimum de 1 élément et un nombre maximum de 100 éléments. Lorsque vous spécifiez une valeur pour ce paramètre, les sorties ne sont pas renvoyées à l’automatisation parent. Si nécessaire, vous devez effectuer des appels ultérieurs aux opérations d’API pour récupérer le résultat des automatisations enfants.  
Type : MapList  
Obligatoire : non

TargetMaps  
Une liste de mappages clé-valeur des paramètres du document aux ressources cibles. Il n'est pas possible de spécifier `Targets` et `TargetMaps` ensemble.   
Type : MapList  
Obligatoire : non

TargetParameterName  
Le nom du paramètre utilisé comme ressource cible pour l'automatisation à débit contrôlé. Requis uniquement si vous spécifiez `Targets`.  
Type : chaîne  
Obligatoire : non

Targets  
Une liste de mappages clé-valeur aux ressources cibles. Requis uniquement si vous spécifiez `TargetParameterName`.  
Type : MapList  
Obligatoire : nonOutput

Output  
La sortie générée par l'automatisation secondaire. Vous pouvez référencer la sortie en utilisant le format suivant : *Secondary\$1Automation\$1Step\$1Name* .Output  
Type : StringList  
Voici un exemple :  

```
- name: launchNewWindowsInstance
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: launchWindowsInstance
  nextStep: getNewInstanceRootVolume
- name: getNewInstanceRootVolume
  action: 'aws:executeAwsApi'
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    - Name: attachment.device
      Values:
      - /dev/sda1
    - Name: attachment.instance-id
      Values:
      - '{{launchNewWindowsInstance.Output}}'
  outputs:
  - Name: rootVolumeId
    Selector: '$.Volumes[0].VolumeId'
    Type: String
  nextStep: snapshotRootVolume
- name: snapshotRootVolume
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: AWS-CreateSnapshot
    RuntimeParameters:
    VolumeId:
    - '{{getNewInstanceRootVolume.rootVolumeId}}'
    Description:
    - 'Initial root snapshot for {{launchNewWindowsInstance.Output}}'
```

ExecutionId  
L'ID de l'automatisation secondaire.  
Type : Chaîne

Statut  
Le statut de l'automatisation secondaire.  
Type : Chaîne

# `aws:executeAwsApi`— Appelez et exécutez des opérations AWS d'API
<a name="automation-action-executeAwsApi"></a>

Appelle et exécute des opérations d' AWS API. La plupart des opérations d'API sont prises en charge, bien que toutes n'aient pas été testées. Les opérations de l'API de streaming, telles que l'[GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)opération, ne sont pas prises en charge. Si vous n’êtes pas sûr qu’une opération d’API que vous voulez utiliser est une opération de streaming, consultez la documentation [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) pour le service afin de déterminer si une API nécessite des entrées ou des sorties en streaming. Nous mettons régulièrement à jour la version Boto3 utilisée par cette action. Cependant, après la sortie d'une nouvelle version de Boto3, quelques semaines peuvent être nécessaires pour que les modifications soient prises en compte dans cette action. Chaque action `aws:executeAwsApi` peut être exécutée jusqu'à une durée maximale de 25 secondes. Pour plus d'exemples sur l'utilisation de cette action, veuillez consulter la rubrique [Exemples supplémentaires de runbook](automation-document-examples.md).

**Note**  
L’action `aws:executeAwsApi` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Inputs**  
Les entrées sont définies par l'opération d'API que vous sélectionnez. 

------
#### [ YAML ]

```
action: aws:executeAwsApi
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
outputs: # These are user-specified outputs
- Name: The name for a user-specified output key
  Selector: A response object specified by using jsonpath format
  Type: The data type
```

------
#### [ JSON ]

```
{
   "action":"aws:executeAwsApi",
   "inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation or method name",
      "API operation inputs or parameters":"A value"
   },
   "outputs":[ These are user-specified outputs
      {
         "Name":"The name for a user-specified output key",
         "Selector":"A response object specified by using JSONPath format",
         "Type":"The data type"
      }
   ]
}
```

------

Service  
L'espace de Service AWS noms qui contient l'opération d'API que vous souhaitez exécuter. Vous pouvez consulter la liste des Service AWS espaces de noms pris en charge dans les [services disponibles](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) du AWS SDK pour Python (Boto3). L'espace de noms se trouve dans la section **Client** . Par exemple, l'espace de noms pour Systems Manager est `ssm`. L'espace de noms pour Amazon Elastic Compute Cloud (Amazon EC2) est `ec2`.  
Type : Chaîne  
Obligatoire : oui

Api  
Le nom de l'opération d'API que vous voulez exécuter. Vous pouvez afficher les opérations d'API (également appelées méthodes) en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les opérations d'API (méthodes) pour Amazon Relational Database Service (Amazon RDS) sont répertoriées à la page suivante : [Méthodes pour Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Type : Chaîne  
Obligatoire : oui

Entrées d'opérations d'API  
Une ou plusieurs entrées d'opérations d'API. Vous pouvez afficher les entrées disponibles (également appelées paramètres) en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les méthodes pour Amazon RDS sont répertoriées sur la page suivante : [Méthodes Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ****Choisissez la méthode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) et faites défiler la page vers le bas pour voir les paramètres disponibles, tels que l'**DBInstanceidentifiant**, le nom et les valeurs.****  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Type : déterminé par l'opération d'API choisie  
Obligatoire : oui

**Sorties**  
Les sorties sont spécifiées par l'utilisateur en fonction de la réponse de l'opération d'API choisie.

Nom  
Nom de la sortie.  
Type : Chaîne  
Obligatoire : oui

Selector  
Le JSONPath vers un attribut spécifique dans l'objet de réponse. Vous pouvez afficher les objets de réponse en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les méthodes pour Amazon RDS sont répertoriées sur la page suivante : [Méthodes Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Choisissez la méthode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) et faites défiler la page jusqu'à la section Structure de réponse.** **DBInstances**est répertorié en tant qu'objet de réponse.  
Type : entier, booléen, chaîne de caractères StringList, ou StringMap MapList  
Obligatoire : oui

Type  
Type de données de l'élément de réponse.  
Type : variable  
Obligatoire : oui

# `aws:executeScript` - Exécuter un script
<a name="automation-action-executeScript"></a>

Exécute le Python ou le PowerShell script fourni à l'aide du runtime et du gestionnaire spécifiés. Chaque action `aws:executeScript` peut être exécutée jusqu'à une durée maximale de 600 secondes (10 minutes). Vous pouvez limiter le délai d'attente en spécifiant le paramètre `timeoutSeconds` pour une étape `aws:executeScript`.

Utilisez les instructions de retour dans votre fonction pour ajouter des sorties à votre charge utile de sortie. Pour des exemples de définition de sorties pour votre action `aws:executeScript`, consultez [Exemple 2 : runbook scripté](automation-authoring-runbooks-scripted-example.md). Vous pouvez également envoyer le résultat des `aws:executeScript` actions de vos runbooks vers le groupe de CloudWatch journaux Amazon Logs que vous spécifiez. Pour de plus amples informations, veuillez consulter [Résultat de l'action d'automatisation de la CloudWatch journalisation avec journaux](automation-action-logging.md).

Si vous souhaitez envoyer le résultat des `aws:executeScript` actions vers CloudWatch Logs, ou si les scripts que vous spécifiez pour les `aws:executeScript` actions appellent des opérations d' AWS API, un rôle de service Gestion des identités et des accès AWS (IAM) (ou un rôle assumé) est toujours requis pour exécuter le runbook.

**Note**  
L’action `aws:executeScript` ne prend pas en charge la limitation des nouvelles tentatives. Si votre script effectue des appels AWS d'API susceptibles d'être limités, vous devez implémenter votre propre logique de nouvelle tentative dans le code de votre script.

L'`aws:executeScript`action contient les modules PowerShell Core préinstallés suivants :
+ Microsoft. PowerShell.Hôte
+ Microsoft. PowerShell. Gestion
+ Microsoft. PowerShell.Sécurité
+ Microsoft. PowerShell.Utilitaire
+ PackageManagement
+ PowerShellGet

Pour utiliser des modules PowerShell Core qui ne sont pas préinstallés, votre script doit installer le module avec l'`-Force`indicateur, comme indiqué dans la commande suivante. Le module `AWSPowerShell.NetCore` n'est pas pris en charge. *ModuleName*Remplacez-le par le module que vous souhaitez installer.

```
Install-Module ModuleName -Force
```

Pour utiliser les applets de commande PowerShell Core dans votre script, nous vous recommandons d'utiliser les `AWS.Tools` modules, comme indiqué dans les commandes suivantes. Remplacez chaque *example resource placeholder* par vos propres informations.
+ cmdlets Amazon S3.

  ```
  Install-Module AWS.Tools.S3 -Force
  Get-S3Bucket -BucketName amzn-s3-demo-bucket
  ```
+ cmdlets Amazon EC2.

  ```
  Install-Module AWS.Tools.EC2 -Force
  Get-EC2InstanceStatus -InstanceId instance-id
  ```
+ Applets de AWS Tools for Windows PowerShell commande communs ou indépendants du service.

  ```
  Install-Module AWS.Tools.Common -Force
  Get-AWSRegion
  ```

Si votre script initialise de nouveaux objets en plus d'utiliser les applets de commande PowerShell Core, vous devez également importer le module comme indiqué dans la commande suivante.

```
Install-Module AWS.Tools.EC2 -Force
Import-Module AWS.Tools.EC2

$tag = New-Object Amazon.EC2.Model.Tag
$tag.Key = "Tag"
$tag.Value = "TagValue"

New-EC2Tag -Resource i-02573cafcfEXAMPLE -Tag $tag
```

Pour des exemples d'installation et d'importation de `AWS.Tools` modules, ainsi que d'utilisation d'applets de commande PowerShell Core dans des runbooks, consultez. [Expérience de conception visuelle pour les runbooks d’Automatisation](automation-visual-designer.md)

**Input**  
Fournissez les informations requises pour exécuter votre script. Remplacez chaque *example resource placeholder* par vos propres informations.

**Note**  
La pièce jointe d'un script Python peut être un fichier .py ou .zip contenant le script. PowerShell les scripts doivent être stockés dans des fichiers .zip.

------
#### [ YAML ]

```
action: "aws:executeScript"
inputs: 
 Runtime: runtime
 Handler: "functionName"
 InputPayload: 
  scriptInput: '{{parameterValue}}'
 Script: |-
   def functionName(events, context):
   ...
 Attachment: "scriptAttachment.zip"
```

------
#### [ JSON ]

```
{
    "action": "aws:executeScript",
    "inputs": {
        "Runtime": "runtime",
        "Handler": "functionName",
        "InputPayload": {
            "scriptInput": "{{parameterValue}}"
        },
        "Attachment": "scriptAttachment.zip"
    }
}
```

------

Environnement d’exécution  
Langage d'exécution à utiliser pour exécuter le script fourni. `aws:executeScript`prend en charge les environnements d'exécution décrits dans le tableau suivant.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/automation-action-executeScript.html)
Type : Chaîne  
Obligatoire : oui  
Pour les environnements d’exécution Python, l’environnement fournit 512 Mo de mémoire et 512 Mo d’espace disque. Pour les environnements PowerShell d'exécution, l'environnement fournit 1024 Mo de mémoire et 512 Mo d'espace disque.

Handler (Gestionnaire)  
Le nom de votre fonction. Vous devez vous assurer que la fonction définie dans le gestionnaire possède deux paramètres, `events` et `context`. Le PowerShell moteur d'exécution ne prend pas en charge ce paramètre.  
Type : Chaîne  
Obligatoire : Oui (Python) \$1 Non pris en charge (PowerShell)

InputPayload  
Objet JSON ou YAML qui sera transmis au premier paramètre du gestionnaire. Il peut être utilisé pour transmettre des données d'entrée au script.  
Type : chaîne  
Obligatoire : non  

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
    AutomationAssumeRole:
        type: String
        description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
    InstanceId:
        type: String
        description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: 'aws:executeScript'
    inputs:
        Runtime: "python3.11"
        Handler: tagInstance
        InputPayload:
            instanceId: '{{InstanceId}}'
        Script: |-
          def tagInstance(events,context):
            import boto3

            #Initialize client
            ec2 = boto3.client('ec2')
            instanceId = events['instanceId']
            tag = {
                "Key": "Env",
                "Value": "ExamplePython"
            }
            print(f"Adding tag {tag} to instance id {instanceId}")
            ec2.create_tags(
                Resources=[instanceId],
                Tags=[tag]
            )
            return tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.
  InstanceId:
    type: String
    description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: aws:executeScript
    isEnd: true
    inputs:
      Runtime: PowerShell 7.4
      InputPayload:
        instanceId: '{{InstanceId}}'
      Script: |-
        Install-Module AWS.Tools.EC2 -Force
        Import-Module AWS.Tools.EC2

        $input = $env:InputPayload | ConvertFrom-Json

        $tag = New-Object Amazon.EC2.Model.Tag
        $tag.Key = "Env"
        $tag.Value = "ExamplePowerShell"

        Write-Information "Adding tag key: $($tag.Key) and value: $($tag.Value) to instance id $($input.instanceId)"
        New-EC2Tag -Resource $input.instanceId -Tag $tag

        return $tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

Script  
Script incorporé que vous souhaitez exécuter pendant l'automatisation.  
Type : Chaîne  
Obligatoire : Non (Python) \$1 Oui (PowerShell)

Réseau de transit par passerelle  
Nom d'un fichier de script autonome ou .zip pouvant être appelé par l'action. Indiquez la même valeur que le `Name` du fichier de pièce jointe du document que vous indiquez dans le paramètre de requête `Attachments`. Pour plus d'informations, consultez [Pièces jointes](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) dans *AWS Systems Manager la référence API *. Le fournissement d'un script à l'aide d'une pièce jointe nécessite également la définition d'une section `files` dans les éléments de niveau supérieur de votre runbook. Pour de plus amples informations, veuillez consulter [Version de schéma 0.3](documents-schemas-features.md#automation-doc-syntax-examples).  
Pour appeler un fichier pour Python, utilisez le format `filename.method_name` dans `Handler`.   
La pièce jointe d'un script Python peut être un fichier .py ou .zip contenant le script. PowerShell les scripts doivent être stockés dans des fichiers .zip.
Lorsque vous incluez des bibliothèques Python dans votre pièce jointe, nous vous recommandons d'ajouter un fichier `__init__.py` vide dans chaque répertoire de module. Cela vous permet d'importer les modules de la bibliothèque de votre pièce jointe dans le contenu de votre script. Par exemple : `from library import module`  
Type : chaîne  
Obligatoire : nonOutput

Charge utile  
Représentation JSON de l'objet renvoyé par votre fonction. Jusqu'à 100 Ko sont renvoyés. La génération d'une liste permet le renvoi d'un maximum de 100 éléments.

## Utiliser des attachements avec aws:executeScript
<a name="automation-action-executeScript-attachments"></a>

Les attachements constituent un moyen puissant d’empaqueter et de réutiliser des scripts complexes, des modules multiples et des dépendances externes dans le cadre de vos actions `aws:executeScript`. Utilisez des attachements lorsque vous devez :
+ Package de plusieurs modules ou PowerShell scripts Python ensemble.
+ Réutiliser la même logique de script sur plusieurs dossiers d’exploitation.
+ Inclure des bibliothèques ou des dépendances externes dans vos scripts.
+ Garder la définition de votre dossier d’exploitation propre en séparant les logiques de script complexes.
+ Partager des packages de scripts entre des équipes ou des flux de travail d’automatisation.

### Structure d’empaquetage des attachements
<a name="automation-action-executeScript-attachment-structure"></a>

Vous pouvez attacher des fichiers uniques ou des packages zip contenant plusieurs fichiers. La structure dépend de votre cas d’utilisation :

**Attachement d’un seul fichier**  
Pour les scripts simples, vous pouvez joindre un seul `.py` fichier (Python) ou un `.zip` fichier contenant un seul PowerShell script.

**Packages multimodules**  
Pour une automatisation complexe nécessitant plusieurs modules, créez un package zip avec la structure recommandée suivante :

```
my-automation-package.zip
├── main.py                    # Entry point script
├── utils/
│   ├── __init__.py           # Required for Python module imports
│   ├── helper_functions.py   # Utility functions
│   └── aws_operations.py     # AWS-specific operations
├── config/
│   ├── __init__.py
│   └── settings.py           # Configuration settings
└── requirements.txt          # Optional: document dependencies
```

**Important**  
Pour les packages Python, vous devez inclure un fichier `__init__.py` vide dans chaque répertoire contenant des modules Python. Cela vous permet d’importer des modules en utilisant la syntaxe d’importation standard de Python, comme `from utils import helper_functions`.

**PowerShell structure du package**  
PowerShell les pièces jointes doivent être regroupées dans des fichiers zip dont la structure est la suivante :

```
my-powershell-package.zip
├── Main.ps1                  # Entry point script
├── Modules/
│   ├── HelperFunctions.ps1   # Utility functions
│   └── AWSOperations.ps1     # AWS-specific operations
└── Config/
    └── Settings.ps1          # Configuration settings
```

### Créer des dossiers d’exploitation avec des attachements
<a name="automation-action-executeScript-attachment-workflow"></a>

Pour créer des dossiers d’exploitation utilisant des attachements, procédez comme suit :

1. **Charger votre attachement sur Amazon S3**

   Chargez votre fichier de script ou votre package zip dans un compartiment S3 auquel votre rôle d’automatisation peut accéder. Notez l’URI S3 pour l’utiliser lors de l’étape suivante.

   ```
   aws s3 cp my-automation-package.zip s3://my-automation-bucket/scripts/
   ```

1. **Calculer la somme de contrôle de l’attachement**

   Calculez la somme de contrôle SHA-256 de votre fichier d’attachement à des fins de vérification de sécurité :

   ```
   # Linux/macOS
   shasum -a 256 my-automation-package.zip
   
   # Windows PowerShell
   Get-FileHash -Algorithm SHA256 my-automation-package.zip
   ```

1. **Définir la section des fichiers dans votre dossier d’exploitation**

   Ajoutez une section `files` au niveau supérieur de votre dossier d’exploitation pour référencer votre attachement :

   ```
   files:
     my-automation-package.zip:
       checksums:
         sha256: "your-calculated-checksum-here"
   ```

1. **Référencer l’attachement dans votre étape executeScript**

   Utilisez le paramètre `Attachment` pour référencer le fichier que vous avez chargé :

   ```
   - name: runMyScript
     action: aws:executeScript
     inputs:
       Runtime: python3.11
       Handler: main.process_data
       Attachment: my-automation-package.zip
       InputPayload:
         inputData: "{{InputParameter}}"
   ```

## Exemples d’attachement aws:executeScript
<a name="automation-action-executeScript-examples"></a>

Les exemples suivants illustrent les différentes manières d’utiliser les attachements avec l’action `aws:executeScript`.

### Exemple 1 : attachement d’un seul fichier
<a name="automation-action-executeScript-single-file-example"></a>

Cet exemple montre comment utiliser un seul fichier Python en tant qu’attachement pour traiter les données d’une instance EC2.

**Fichier d’attachement : process\$1instance.py**  
Créez un fichier Python avec le contenu suivant :

```
import boto3
import json

def process_instance_data(events, context):
    """Process EC2 instance data and return formatted results."""
    try:
        instance_id = events.get('instanceId')
        if not instance_id:
            raise ValueError("instanceId is required")
        
        ec2 = boto3.client('ec2')
        
        # Get instance details
        response = ec2.describe_instances(InstanceIds=[instance_id])
        instance = response['Reservations'][0]['Instances'][0]
        
        # Format the response
        result = {
            'instanceId': instance_id,
            'instanceType': instance['InstanceType'],
            'state': instance['State']['Name'],
            'availabilityZone': instance['Placement']['AvailabilityZone'],
            'tags': {tag['Key']: tag['Value'] for tag in instance.get('Tags', [])}
        }
        
        print(f"Successfully processed instance {instance_id}")
        return result
        
    except Exception as e:
        print(f"Error processing instance: {str(e)}")
        raise
```

**Dossier d’exploitation complet**  
Voici le dossier d’exploitation complet qui utilise l’attachement unique :

```
description: Process EC2 instance data using single file attachment
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) IAM role for automation execution
  InstanceId:
    type: String
    description: (Required) EC2 instance ID to process

files:
  process_instance.py:
    checksums:
      sha256: "abc123def456..."

mainSteps:
  - name: processInstance
    action: aws:executeScript
    inputs:
      Runtime: python3.11
      Handler: process_instance.process_instance_data
      Attachment: process_instance.py
      InputPayload:
        instanceId: '{{InstanceId}}'
    outputs:
      - Type: StringMap
        Name: InstanceData
        Selector: $.Payload

outputs:
  - processInstance.InstanceData
```

### Exemple 2 : package multimodule
<a name="automation-action-executeScript-multi-module-example"></a>

Cet exemple illustre l’utilisation d’un package zip contenant plusieurs modules Python pour des opérations de compartiment S3 complexes.

**Structure du package**  
Créez un package zip avec la structure suivante :

```
s3-operations.zip
├── main.py
├── utils/
│   ├── __init__.py
│   ├── s3_helper.py
│   └── validation.py
└── config/
    ├── __init__.py
    └── settings.py
```

**main.py (point d’entrée)**  
Le script principal qui orchestre les opérations :

```
from utils.s3_helper import S3Operations
from utils.validation import validate_bucket_name
from config.settings import get_default_settings

def cleanup_s3_bucket(events, context):
    """Clean up S3 bucket based on specified criteria."""
    try:
        bucket_name = events.get('bucketName')
        max_age_days = events.get('maxAgeDays', 30)
        
        # Validate inputs
        if not validate_bucket_name(bucket_name):
            raise ValueError(f"Invalid bucket name: {bucket_name}")
        
        # Initialize S3 operations
        s3_ops = S3Operations()
        settings = get_default_settings()
        
        # Perform cleanup
        deleted_objects = s3_ops.delete_old_objects(
            bucket_name, 
            max_age_days,
            settings['dry_run']
        )
        
        result = {
            'bucketName': bucket_name,
            'deletedCount': len(deleted_objects),
            'deletedObjects': deleted_objects[:10],  # Return first 10 for brevity
            'dryRun': settings['dry_run']
        }
        
        print(f"Cleanup completed for bucket {bucket_name}")
        return result
        
    except Exception as e:
        print(f"Error during S3 cleanup: {str(e)}")
        raise
```

## Résolution des attachements aws:executeScript
<a name="automation-action-executeScript-troubleshooting"></a>

Suivez ces instructions pour résoudre les problèmes courants liés aux attachements `aws:executeScript` :

**Erreurs d’importation de module**  
Si vous recevez des erreurs d’importation lors de l’utilisation de packages multimodules :
+ Assurez-vous d’avoir inclus un fichier `__init__.py` vide dans chaque répertoire contenant des modules Python.
+ Vérifiez que vos instructions d’importation correspondent à la structure réelle de fichiers et de répertoires de votre package zip.
+ Utilisez les importations relatives (par exemple `from .utils import helper`) ou absolues (par exemple `from utils import helper`) de manière cohérente.

**Erreurs d’attachement introuvable**  
Si votre automatisation ne trouve pas l’attachement :
+ Vérifiez que la valeur du paramètre `Attachment` correspond exactement à la clé de votre section `files`.
+ Vérifiez que le chemin de votre compartiment S3 et le nom de fichier sont corrects dans la section `files`.
+ Assurez-vous que votre rôle d’automatisation a l’autorisation `s3:GetObject` pour l’emplacement S3 de l’attachement.
+ Vérifiez que le checksum de votre dossier d’exploitation correspond au checksum réel du fichier.

**Erreurs de fonction de gestionnaire**  
Si vous recevez des erreurs liées au gestionnaire :
+ Pour Python : utilisez le format `filename.function_name` dans le paramètre `Handler` (par exemple `main.process_data`).
+ Assurez-vous que votre fonction de gestionnaire accepte exactement deux paramètres : `events` et `context`.
+ Pour PowerShell : ne spécifiez aucun `Handler` paramètre ; le script s'exécute directement.

**Échecs d’exécution de script**  
Si votre script échoue lors de son exécution :
+ Consultez l’historique d’exécution de l’automatisation pour obtenir des messages d’erreur détaillés et des traces de pile.
+ Utilisez `print()` les instructions (Python) ou `Write-Information` (PowerShell) pour ajouter une sortie de débogage.
+ Vérifiez que toutes les AWS autorisations requises sont accordées à votre rôle d'automatisation.
+ Testez la logique de votre script localement avant de l’empaqueter sous forme d’attachement.

**Codes de sortie et gestion des erreurs**  
Pour gérer correctement les erreurs et renvoyer les codes de sortie :
+ Pour Python : utilisez `raise Exception("error message")` pour indiquer l’échec du script.
+ Dans PowerShell : utilisez `throw "error message"` ou `Write-Error` pour indiquer une défaillance.
+ Retournez des données structurées à partir de vos fonctions pour fournir des success/failure informations détaillées.
+ Utilisez des blocs try-catch pour gérer les exceptions avec élégance et fournir des messages d’erreur significatifs.

# `aws:executeStateMachine`— Lance une machine à AWS Step Functions états
<a name="automation-action-executeStateMachine"></a>

Exécute une machine à AWS Step Functions états.

**Note**  
L’action `aws:executeStateMachine` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Entrée**

Cette action prend en charge la plupart des paramètres du fonctionnement de l'[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)API Step Functions.

**Autorisations requises Gestion des identités et des accès AWS (IAM)**
+ `states:DescribeExecution`
+ `states:StartExecution`
+ `states:StopExecution`

------
#### [ YAML ]

```
name: executeTheStateMachine
action: aws:executeStateMachine
inputs:
  stateMachineArn: StateMachine_ARN
  input: '{"parameters":"values"}'
  name: name
```

------
#### [ JSON ]

```
{
    "name": "executeTheStateMachine",
    "action": "aws:executeStateMachine",
    "inputs": {
        "stateMachineArn": "StateMachine_ARN",
        "input": "{\"parameters\":\"values\"}",
        "name": "name"
    }
}
```

------

stateMachineArn  
L'Amazon Resource Name (ARN) de la machine d'état Step Functions.  
Type : Chaîne  
Obligatoire : oui

name  
Nom de l'exécution.  
Type : chaîne  
Obligatoire : non

input  
Chaîne qui contient les données d'entrée JSON pour l'exécution.  
Type : chaîne  
Obligatoire : non

**Sorties**  
Les sorties suivantes sont prédéfinies pour cette action.

executionArn  
ARN de l'exécution.  
Type : Chaîne

input  
Chaîne qui contient les données d'entrée JSON de l'exécution. Les contraintes de longueur s'appliquent à la taille de la charge utile et sont exprimées en octets dans l'encodage UTF-8.  
Type : Chaîne

name  
Nom de l'exécution.  
Type : Chaîne

output  
Données de sortie JSON de l'exécution. Les contraintes de longueur s'appliquent à la taille de la charge utile et sont exprimées en octets dans l'encodage UTF-8.  
Type : Chaîne

startDate  
Date de début de l'exécution.  
Type : Chaîne

stateMachineArn  
ARN de la machine d'état exécutée.  
Type : Chaîne

status  
Statut actuel de l'exécution.  
Type : Chaîne

stopDate  
Si l'exécution est déjà terminée, date à laquelle l'exécution s'est arrêtée.  
Type : Chaîne

# `aws:invokeWebhook` : appeler une intégration de webhook Automation
<a name="invoke-webhook"></a>

Appelle l'intégration du webhook Automation spécifiée. Pour plus d'informations sur la création d'intégrations Automation, consultez [Création d'intégrations webhook pour Automation](creating-webhook-integrations.md).

**Note**  
L’action `aws:invokeWebhook` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Note**  
Pour exécuter l'action `aws:invokeWebhook`, votre rôle d'utilisateur ou de service doit autoriser les actions suivantes :  
SMS : GetParameter
kms:Decrypt
L'autorisation pour l'`Decrypt`opération AWS Key Management Service (AWS KMS) n'est requise que si vous utilisez une clé gérée par le client pour chiffrer le paramètre de votre intégration.

**Input**  
Fournissez les informations relatives à l'intégration d'Automation que vous souhaitez appeler.

------
#### [ YAML ]

```
action: "aws:invokeWebhook"
inputs: 
 IntegrationName: "exampleIntegration"
 Body: "Request body"
```

------
#### [ JSON ]

```
{
    "action": "aws:invokeWebhook",
    "inputs": {
        "IntegrationName": "exampleIntegration",
        "Body": "Request body"
    }
}
```

------

IntegrationName  
Nom de l'intégration d'Automation. Par exemple, `exampleIntegration`. L'intégration que vous spécifiez doit déjà exister.  
Type : Chaîne  
Obligatoire : oui

Corps de texte  
La charge utile que vous souhaitez envoyer lorsque votre intégration de webhook est appelée.  
Type : chaîne  
Obligatoire : nonOutput

Réponse  
Texte reçu de la réponse du fournisseur de webhook.

ResponseCode  
Code d'état HTTP reçu de la réponse du fournisseur de webhook.

# `aws:invokeLambdaFunction`— Invoque une AWS Lambda fonction
<a name="automation-action-lamb"></a>

Invoque la AWS Lambda fonction spécifiée.

**Note**  
Chaque action `aws:invokeLambdaFunction` peut être exécutée jusqu'à une durée maximale de 300 secondes (5 minutes). Vous pouvez limiter le délai d'attente en spécifiant le paramètre `timeoutSeconds` pour une étape `aws:invokeLambdaFunction`.

**Note**  
L’action `aws:invokeLambdaFunction` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
Cette action prend en charge la plupart des paramètres invoqués du service Lambda. Pour plus d'informations, consultez [Invoquer](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html).

------
#### [ YAML ]

```
name: invokeMyLambdaFunction
action: aws:invokeLambdaFunction
maxAttempts: 3
timeoutSeconds: 120
onFailure: Abort
inputs:
  FunctionName: MyLambdaFunction
```

------
#### [ JSON ]

```
{
    "name": "invokeMyLambdaFunction",
    "action": "aws:invokeLambdaFunction",
    "maxAttempts": 3,
    "timeoutSeconds": 120,
    "onFailure": "Abort",
    "inputs": {
        "FunctionName": "MyLambdaFunction"
    }
}
```

------

FunctionName  
Nom de la fonction Lambda. Cette fonction doit exister.  
Type : Chaîne  
Obligatoire : oui

Qualificateur  
Nom de version ou d'alias de la fonction.  
Type : chaîne  
Obligatoire : non

InvocationType  
Type d'appel. La valeur par défaut est `RequestResponse`.  
Type : Chaîne  
Valeurs valides : `Event` \$1 `RequestResponse` \$1 `DryRun`  
Obligatoire : non

LogType  
Si la valeur par défaut est `Tail`, le type d'appel doit être `RequestResponse`. Lambda retourne les 4 derniers Ko de données de journalisation générés par votre fonction Lambda, codés en base64.  
Type : Chaîne  
Valeurs valides : `None` \$1 `Tail`  
Obligatoire : non

ClientContext  
Informations spécifiques au client.  
Obligatoire : non

InputPayload  
Objet JSON ou YAML transmis au premier paramètre du gestionnaire. Utilisez cette saisie pour transmettre des données vers la fonction. Cette entrée offre plus de flexibilité et de prise en charge que l'entrée `Payload` héritée. Si vous définissez les deux `InputPayload` et `Payload` pour l'action, `InputPayload` prend la priorité et `Payload` la valeur n'est pas utilisée.  
Type : StringMap  
Obligatoire : non

Charge utile  
Objet JSON ou YAML transmis au premier paramètre du gestionnaire. Utilisez cette saisie pour la transmission des données vers la fonction. Nous vous recommandons d'utiliser `InputPayload` entrée pour des fonctionnalités supplémentaires.  
Type : chaîne  
Obligatoire : nonOutput

StatusCode  
Le code d'état HTTP .

FunctionError  
Si cette valeur est présente, elle indique qu'une erreur s'est produite lors de l'exécution de la fonction. Les détails sur l'erreur sont inclus dans la charge utile de la réponse.

LogResult  
Journaux codés en base 64 pour l'appel de fonction Lambda. Des journaux sont présents uniquement si le type d'appel est `RequestResponse` et que des journaux ont été demandés.

Charge utile  
Représentation JSON de l'objet renvoyé par la fonction Lambda. La charge utile est présente uniquement si le type d'appel est `RequestResponse`.

Ce qui suit est une partie du runbook `AWS-PatchInstanceWithRollback` démontrant comment référencer les sorties de l'action `aws:invokeLambdaFunction`.

------
#### [ YAML ]

```
- name: IdentifyRootVolume
  action: aws:invokeLambdaFunction
  inputs:
    FunctionName: "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}"
    Payload: '{"InstanceId": "{{InstanceId}}"}'
- name: PrePatchSnapshot
  action: aws:executeAutomation
  inputs:
    DocumentName: "AWS-CreateSnapshot"
    RuntimeParameters:
      VolumeId: "{{IdentifyRootVolume.Payload}}"
      Description: "ApplyPatchBaseline restoration case contingency"
```

------
#### [ JSON ]

```
{
    "name": "IdentifyRootVolume",
    "action": "aws:invokeLambdaFunction",
    "inputs": {
      "FunctionName": "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}",
      "Payload": "{\"InstanceId\": \"{{InstanceId}}\"}"
    }
  },
  {
    "name": "PrePatchSnapshot",
    "action": "aws:executeAutomation",
    "inputs": {
      "DocumentName": "AWS-CreateSnapshot",
      "RuntimeParameters": {
        "VolumeId": "{{IdentifyRootVolume.Payload}}",
        "Description": "ApplyPatchBaseline restoration case contingency"
      }
    }
  }
```

------

# `aws:loop` : itérer les étapes d’une automatisation
<a name="automation-action-loop"></a>

Cette action itère sur un sous-ensemble d’étapes dans un runbook d’Automatisation. Vous pouvez sélectionner un style boucle `do while` ou `for each`. Pour construire une boucle `do while`, utilisez le paramètre d’entrée `LoopCondition`. Pour construire une boucle `for each`, utilisez les paramètres d’entrée `Iterators` et `IteratorDataType`. Lorsque vous utilisez une action `aws:loop`, spécifiez uniquement le paramètre d’entrée `Iterators` ou `LoopCondition`. Le nombre maximal d’itérations est de 100.

La propriété `onCancel` ne peut être utilisée que pour les étapes définies dans une boucle. La propriété `onCancel` n’est pas prise en charge pour l’action `aws:loop`. La propriété `onFailure` peut être utilisée pour une action `aws:loop`, mais elle ne sera utilisée que si une erreur inattendue se produit et entraîne l’échec de l’étape. Si vous définissez des propriétés `onFailure` pour les étapes d’une boucle, l’action `aws:loop` hérite de ces propriétés et réagit en conséquence en cas d’échec.

**Exemples**  
Les exemples suivants montrent comment construire les différents types d’actions de boucle.

------
#### [ do while ]

```
name: RepeatMyLambdaFunctionUntilOutputIsReturned
action: aws:loop
inputs:
    Steps:
    - name: invokeMyLambda
        action: aws:invokeLambdaFunction
        inputs:
        FunctionName: LambdaFunctionName
        outputs:
        - Name: ShouldRetry
            Selector: $.Retry
            Type: Boolean
    LoopCondition:
        Variable: "{{ invokeMyLambda.ShouldRetry }}"
        BooleanEquals: true
    MaxIterations: 3
```

------
#### [ for each ]

```
name: stopAllInstancesWithWaitTime
action: aws:loop
inputs:
    Iterators: "{{ DescribeInstancesStep.InstanceIds }}"
    IteratorDataType: "String"
    Steps:
    - name: stopOneInstance
        action: aws:changeInstanceState
        inputs:
        InstanceIds:
            - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}"
        CheckStateOnly: false
        DesiredState: stopped
    - name: wait10Seconds
        action: aws:sleep
        inputs:
        Duration: PT10S
```

------

**Input**  
L'entrée est comme suit.

Itérateurs  
La liste des éléments sur lesquels les étapes doivent être itérées. Le nombre maximal d’itérateurs est de 100.  
Type : StringList  
Obligatoire : non

IteratorDataType  
Un paramètre facultatif permettant de spécifier le type de données du `Iterators`. Une valeur pour ce paramètre peut être fournie en même temps que le paramètre d’entrée `Iterators`. Si vous ne spécifiez aucune valeur pour ce paramètre et `Iterators`, vous devez alors spécifier une valeur pour le paramètre `LoopCondition`.  
Type : Chaîne  
Valeurs valides : booléen \$1 entier \$1 chaîne \$1 StringMap  
Par défaut : String  
Obligatoire : non

LoopCondition  
Comprend une `Variable` et une condition de l’opérateur à évaluer. Si vous ne spécifiez aucune valeur pour ce paramètre, vous devez alors spécifier des valeurs pour les paramètres `Iterators` et `IteratorDataType`. Vous pouvez utiliser des évaluations d’opérateurs complexes en combinant les opérateurs `And`, `Not` et `Or`. La condition est évaluée une fois les étapes de la boucle terminées. Si la condition est `true` et que la valeur `MaxIterations` n’a pas été atteinte, les étapes de la boucle sont à nouveau exécutées. Les conditions de l’opérateur sont les suivantes :  

**Opérations de chaîne**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Contains

**Opérations numériques**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**Opération booléenne**
+ BooleanEquals
Type : StringMap  
Obligatoire : non

MaxIterations  
Le nombre maximal de fois où les étapes de la boucle sont exécutées. Une fois que la valeur spécifiée pour cette entrée est atteinte, la boucle cesse de fonctionner même si `LoopCondition` est encore `true` ou s’il reste des objets dans le paramètre `Iterators`.  
Type : Integer  
Valeurs valides : de 1 à 100  
Obligatoire : non

Étapes  
Liste des étapes à exécuter dans la boucle. Elles fonctionnent comme un runbook imbriqué. Au cours de ces étapes, vous pouvez accéder à la valeur actuelle de l’itérateur pour une boucle `for each` à l’aide de la syntaxe `{{loopStepName.CurrentIteratorValue}}`. Vous pouvez également accéder à une valeur entière de l’itération en cours pour les deux types de boucle à l’aide de la syntaxe `{{loopStepName.CurrentIteration}}`.  
Type : liste des étapes  
Obligatoire : ouiOutput

CurrentIteration  
L’itération de boucle en cours sous forme d’entier. Valeur des itérations commençant à 1.  
Type : Integer

CurrentIteratorValue  
Valeur de l’itérateur actuel sous forme de chaîne. Cette sortie n’est présente que dans les boucles `for each`.  
Type : Chaîne

# `aws:pause` - Suspendre une automatisation
<a name="automation-action-pause"></a>

Cette action suspend l'automatisation. Une fois l'automatisation interrompue, son statut est *Waiting (En attente)*. Pour poursuivre l'automatisation, utilisez l'opération [SendAutomationSignal](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendAutomationSignal.html)API avec le type de `Resume` signal. Nous vous recommandons d'utiliser l’action `aws:sleep` ou `aws:approve` pour effectuer un contrôle plus précis de vos flux de travail.

**Note**  
Le délai d'attente par défaut pour cette action est de 7 jours (604 800 secondes) et la valeur maximale est de 30 jours (2 592 000 secondes). Vous pouvez limiter ou étendre le délai d'attente en spécifiant le paramètre `timeoutSeconds` pour une étape `aws:pause`.

**Input**  
L'entrée est comme suit.

------
#### [ YAML ]

```
name: pauseThis
action: aws:pause
timeoutSeconds: 1209600
inputs: {}
```

------
#### [ JSON ]

```
{
    "name": "pauseThis",
    "action": "aws:pause",
    "timeoutSeconds": "1209600",
    "inputs": {}
}
```

------Output

Aucune  


# `aws:runCommand` - Exécuter une commande sur une instance gérée
<a name="automation-action-runcommand"></a>

Exécute les commandes spécifiées.

**Note**  
L'automatisation prend uniquement en charge *l'ouput* d'une action AWS Systems Manager Run Command. Un runbook peut inclure plusieurs actions Run Command, mais la sortie est prise en charge pour une seule action à la fois.

**Input**  
Cette action prend en charge la plupart des paramètres de la commande d'envoi. Pour de plus amples informations, veuillez consulter [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html).

------
#### [ YAML ]

```
- name: checkMembership
  action: 'aws:runCommand'
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - '{{InstanceIds}}'
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

------
#### [ JSON ]

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

------

DocumentName  
Si le document de type Commande vous appartient AWS, ou spécifiez le nom du document. Si vous utilisez un document partagé avec un autre Compte AWS, spécifiez l'Amazon Resource Name (ARN) du document. Pour plus d'informations sur l'utilisation de documents partagés, consultez [Utilisation de documents SSM partagés](documents-ssm-sharing.md#using-shared-documents).  
Type : Chaîne  
Obligatoire : oui

InstanceIds  
Instance IDs dans laquelle vous souhaitez exécuter la commande. Vous pouvez spécifier un maximum de 50 IDs.   
Vous pouvez également utiliser le pseudo-paramètre `{{RESOURCE_ID}}` à la place de l'instance IDs pour exécuter la commande sur toutes les instances du groupe cible. Pour plus d'informations sur les pseudo-paramètres, consultez [Utiliser des pseudo paramètres lors de l’enregistrement des tâches de la fenêtre de maintenance](maintenance-window-tasks-pseudo-parameters.md).  
Une autre alternative consiste à envoyer des commandes à un parc d'instances à l'aide du paramètre `Targets`. Le paramètre `Targets` accepte les balises Amazon Elastic Compute Cloud (Amazon EC2). Pour de plus amples informations sur l'utilisation du paramètre `Targets`, veuillez consulter [Exécuter des commandes à grande échelle](send-commands-multiple.md).  
Type : StringList  
Obligatoire : Non (Si vous ne spécifiez pas InstanceIds ou n'utilisez pas le `{{RESOURCE_ID}}` pseudo paramètre, vous devez le `Targets` spécifier.)

Targets  
Tableau de critères de recherche qui cible les instances à l'aide d'une combinaison clé/valeur que vous spécifiez. `Targets`est obligatoire si vous ne fournissez pas une ou plusieurs instances IDs dans l'appel. Pour de plus amples informations sur l'utilisation du paramètre `Targets`, veuillez consulter [Exécuter des commandes à grande échelle](send-commands-multiple.md).  
Type : MapList (Le schéma de la carte dans la liste doit correspondre à l'objet.) Pour de plus amples informations, veuillez consulter [Cible](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_Target.html) dans la *Référence d'API AWS Systems Manager *.  
Obligatoire : Non (Si vous ne le spécifiez pas`Targets`, vous devez spécifier InstanceIds ou utiliser le `{{RESOURCE_ID}}` pseudo-paramètre.)  
Voici un exemple.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    Targets:
      - Key: tag:Stage
        Values:
          - Gamma
          - Beta
      - Key: tag-key
        Values:
          - Suite
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "Targets": [                   
            {
                "Key": "tag:Stage",
                "Values": [
                    "Gamma", "Beta"
                ]
            },
            {
                "Key": "tag:Application",
                "Values": [
                    "Suite"
                ]
            }
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

Parameters  
Paramètres obligatoires et facultatifs spécifiés dans le document.  
Type: carte (map)  
Obligatoire : non

CloudWatchOutputConfig  
Options de configuration pour envoyer une sortie de commande à Amazon CloudWatch Logs. Pour plus d'informations sur l'envoi d'une sortie de commande à CloudWatch Logs, consultez[Configuration d'Amazon CloudWatch Logs pour Run Command](sysman-rc-setting-up-cwlogs.md).  
Type : StringMap (Le schéma de la carte doit correspondre à l'objet. Pour plus d'informations, consultez [CloudWatchOutputConfig](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CloudWatchOutputConfig.html)la *référence de AWS Systems Manager l'API*).  
Obligatoire : non  
Voici un exemple.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - "{{InstanceIds}}"
    Parameters:
      commands:
        - "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
    CloudWatchOutputConfig:
      CloudWatchLogGroupName: CloudWatchGroupForSSMAutomationService
      CloudWatchOutputEnabled: true
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        },
        "CloudWatchOutputConfig" : { 
                "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService",
                "CloudWatchOutputEnabled": true
        }
    }
}
```

Comment  
Informations définies par l'utilisateur au sujet de la commande.  
Type : chaîne  
Obligatoire : non

DocumentHash  
Hachage pour le document.  
Type : chaîne  
Obligatoire : non

DocumentHashType  
Type de hachage.  
Type : Chaîne  
Valeurs valides : `Sha256` \$1 `Sha1`  
Obligatoire : non

NotificationConfig  
Configurations d'envoi des notifications.  
Obligatoire : non

OutputS3 BucketName  
Nom du compartiment S3 pour les réponses de sortie de la commande. Votre nœud géré doit disposer des autorisations nécessaires pour que le compartiment S3 enregistre correctement la sortie.  
Type : chaîne  
Obligatoire : non

OutputS3 KeyPrefix  
Préfixe.  
Type : chaîne  
Obligatoire : non

ServiceRoleArn  
L'ARN du rôle Gestion des identités et des accès AWS (IAM).  
Type : chaîne  
Obligatoire : non

TimeoutSeconds  
Temps d'attente, en secondes, avant qu'une commande ne soit délivrée AWS Systems Manager SSM Agent à une instance. Si la commande n'est pas reçue par l'SSM Agent sur l'instance avant expiration de la valeur spécifiée, le statut de la commande devient `Delivery Timed Out`.  
Type : Integer  
Obligatoire : non  
Valeurs valides : 30-2592000Output

CommandId  
ID de la commande.

Status  
Statut de la commande.

ResponseCode  
Code de réponse de la commande. Si le document que vous exécutez comporte plus d’une étape, aucune valeur n’est renvoyée pour cette sortie.

Output  
Sortie de la commande. Si vous ciblez une balise ou plusieurs instances avec votre commande, aucune valeur de sortie n’est renvoyée. Vous pouvez utiliser les opérations d’API `GetCommandInvocation` et `ListCommandInvocations` pour récupérer la sortie pour des instances individuelles.

# `aws:runInstances` – lancer une instance Amazon EC2
<a name="automation-action-runinstance"></a>

Lance une nouvelle instance Amazon Elastic Compute Cloud (Amazon EC2).

**Note**  
L’action `aws:runInstances` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
L'action prend en charge la plupart des paramètres de l'API. Pour plus d'informations, consultez la documentation de [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)l'API.

------
#### [ YAML ]

```
name: launchInstance
action: aws:runInstances
maxAttempts: 3
timeoutSeconds: 1200
onFailure: Abort
inputs:
  ImageId: ami-12345678
  InstanceType: t2.micro
  MinInstanceCount: 1
  MaxInstanceCount: 1
  IamInstanceProfileName: myRunCmdRole
  TagSpecifications:
  - ResourceType: instance
    Tags:
    - Key: LaunchedBy
      Value: SSMAutomation
    - Key: Category
      Value: HighAvailabilityFleetHost
```

------
#### [ JSON ]

```
{
   "name":"launchInstance",
   "action":"aws:runInstances",
   "maxAttempts":3,
   "timeoutSeconds":1200,
   "onFailure":"Abort",
   "inputs":{
      "ImageId":"ami-12345678",
      "InstanceType":"t2.micro",
      "MinInstanceCount":1,
      "MaxInstanceCount":1,
      "IamInstanceProfileName":"myRunCmdRole",
      "TagSpecifications":[
         {
            "ResourceType":"instance",
            "Tags":[
               {
                  "Key":"LaunchedBy",
                  "Value":"SSMAutomation"
               },
               {
                  "Key":"Category",
                  "Value":"HighAvailabilityFleetHost"
               }
            ]
         }
      ]
   }
}
```

------

AdditionalInfo  
Instances réservées.  
Type : chaîne  
Obligatoire : non

BlockDeviceMappings  
Périphériques de stockage en mode bloc pour l'instance.  
Type : MapList  
Obligatoire : non

ClientToken  
Identifiant permettant de garantir l'idempotence de la demande.  
Type : chaîne  
Obligatoire : non

DisableApiTermination  
Active ou désactive la résiliation de l'API d'instance.  
Type : booléen  
Obligatoire : non

EbsOptimized  
Active ou désactive l'optimisation Amazon Elastic Block Store (Amazon EBS).  
Type : booléen  
Obligatoire : non

IamInstanceProfileArn  
Le nom de ressource Amazon (ARN) du profil d'instance Gestion des identités et des accès AWS (IAM) de l'instance.  
Type : chaîne  
Obligatoire : non

IamInstanceProfileName  
Nom du profil d'instance IAM pour l'instance.  
Type : chaîne  
Obligatoire : non

ImageId  
ID de l'Amazon Machine Image (AMI).  
Type : Chaîne  
Obligatoire : oui

InstanceInitiatedShutdownBehavior  
Indique si l'instance s'arrête ou est résiliée lors de l'arrêt du système.  
Type : chaîne  
Obligatoire : non

InstanceType  
Type d'instance.  
Si aucune valeur de type d'instance n'est fournie, le type d'instance m1.small est utilisé.
Type : chaîne  
Obligatoire : non

KernelId  
ID du noyau.  
Type : chaîne  
Obligatoire : non

KeyName  
Nom de la paire de clés.  
Type : chaîne  
Obligatoire : non

MaxInstanceCount  
Nombre maximum d'instances à lancer.  
Type : chaîne  
Obligatoire : non

MetadataOptions  
Options de métadonnées de l'instance. Pour de plus amples informations, veuillez consulter [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html).  
Type : StringMap  
Obligatoire : non

MinInstanceCount  
Nombre minimum d'instances à lancer.  
Type : chaîne  
Obligatoire : non

Contrôle  
Active ou désactive la surveillance détaillée.  
Type : booléen  
Obligatoire : non

NetworkInterfaces  
Interfaces réseau.  
Type : MapList  
Obligatoire : non

Placement  
Placement de l'instance.  
Type : StringMap  
Obligatoire : non

PrivateIpAddress  
L' IPv4 adresse principale.  
Type : chaîne  
Obligatoire : non

RamdiskId  
ID du disque RAM.  
Type : chaîne  
Obligatoire : non

SecurityGroupIds  
Les groupes IDs de sécurité de l'instance.  
Type : StringList  
Obligatoire : non

SecurityGroups  
Noms des groupes de sécurité de l'instance.  
Type : StringList  
Obligatoire : non

SubnetId  
ID de sous-réseau.  
Type : chaîne  
Obligatoire : non

TagSpecifications  
Balises à appliquer aux ressources lors du lancement. Vous pouvez uniquement baliser des instances et des volumes au moment du lancement. Les balises spécifiées sont appliquées à toutes les instances ou volumes qui sont créés lors du lancement. Pour ajouter des balises à une instance après qu'elle a été lancée, utilisez l'action [`aws:createTags`— Crée des tags pour les AWS ressources](automation-action-createtag.md).  
Type : MapList (Pour plus d'informations, voir [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html).)  
Obligatoire : non

UserData  
Script fourni en tant que valeur de littéral de chaîne. Si une valeur littérale est entrée, elle doit être codée en base64.  
Type : chaîne  
Obligatoire : nonOutput

InstanceIds  
Les IDs instances.

InstanceStates  
Statut actuel de l'instance.

# `aws:sleep` - Retarder une automatisation
<a name="automation-action-sleep"></a>

Retarde l'automatisation pour une durée spécifiée. Cette action utilise le format date et heure de l'Organisation internationale de normalisation (ISO) 8601. Pour de plus amples informations sur ce format date et heure, veuillez consulter [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html).

**Input**  
Vous pouvez retarder une automatisation pour une durée spécifiée. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Duration: PT10M
```

------
#### [ JSON ]

```
{
   "name":"sleep",
   "action":"aws:sleep",
   "inputs":{
      "Duration":"PT10M"
   }
}
```

------

Vous pouvez aussi retarder une automatisation jusqu'à une date et une heure spécifiées. Si les date et heure spécifiées sont passées, l'action est réalisée immédiatement. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Timestamp: '2020-01-01T01:00:00Z'
```

------
#### [ JSON ]

```
{
    "name": "sleep",
    "action": "aws:sleep",
    "inputs": {
        "Timestamp": "2020-01-01T01:00:00Z"
    }
}
```

------

**Note**  
L'automatisation prend en charge un délai maximal de 604 799 secondes (7 jours).

Duration  
Une durée ISO 8601. Vous ne pouvez pas spécifier une durée négative.   
Type : chaîne  
Obligatoire : non

Horodatage  
Un horodatage ISO 8601. Si vous ne spécifiez aucune valeur pour ce paramètre, vous devez alors spécifier une valeur pour le paramètre `Duration`.   
Type : chaîne  
Obligatoire : nonOutput

Aucune  


# `aws:updateVariable` : met à jour la valeur d’une variable runbook
<a name="automation-action-update-variable"></a>

Cette action met à jour la valeur d’une variable runbook. Le type de données de la valeur doit correspondre au type de données de la variable que vous voulez mettre à jour. Les conversions par type de données ne sont pas prises en charge. La propriété `onCancel` n’est pas prise en charge pour l’action `aws:updateVariable`.

**Input**  
L'entrée est comme suit.

------
#### [ YAML ]

```
name: updateStringList
action: aws:updateVariable
inputs:
    Name: variable:variable name
    Value:
    - "1"
    - "2"
```

------
#### [ JSON ]

```
{
    "name": "updateStringList",
    "action": "aws:updateVariable",
    "inputs": {
        "Name": "variable:variable name",
        "Value": ["1","2"]
    }
}
```

------

Nom  
Nom de la variable dont vous voulez mettre à jour la valeur. Vous devez utiliser le format `variable:variable name`  
Type : Chaîne  
Obligatoire : oui

Value  
La nouvelle valeur à attribuer à la variable. La valeur doit correspondre au type de données de la variable. Les conversions par type de données ne sont pas prises en charge.  
Type : Booléen \$1 Entier \$1 \$1 Chaîne MapList \$1 \$1 StringList StringMap  
Obligatoire : oui  
Contraintes:  
+ MapList peut contenir un maximum de 200 éléments.
+ La clé peut avoir une longueur minimale de 1 et une longueur maximale de 50.
+ StringList peut être un nombre minimum de 0 éléments et un nombre maximum de 50 éléments.
+ Les chaînes peuvent avoir une longueur minimale de 1 et une longueur maximale de 512.Output

Aucune  


# `aws:waitForAwsResourceProperty`— Attendre sur une propriété AWS de ressource
<a name="automation-action-waitForAwsResourceProperty"></a>

L'action `aws:waitForAwsResourceProperty` permet à votre automatisation d'attendre un statut de ressource ou d'événement spécifique avant de se poursuivre. Pour plus d'exemples sur l'utilisation de cette action, veuillez consulter la rubrique [Exemples supplémentaires de runbook](automation-document-examples.md).

**Note**  
La valeur de délai d'expiration par défaut pour cette action est de 3600 secondes (une heure). Vous pouvez limiter ou étendre le délai d'attente en spécifiant le paramètre `timeoutSeconds` pour une étape `aws:waitForAwsResourceProperty`. Pour de plus amples informations et des exemples sur l'utilisation de cette action, veuillez consulter [Gestion de délais d'expiration dans des runbooks](automation-handling-timeouts.md).

**Note**  
L’action `aws:waitForAwsResourceProperty` prend en charge la limitation des nouvelles tentatives. Pour de plus amples informations, veuillez consulter [Configuration des nouvelles tentatives automatiques pour les opérations limitées](automation-throttling-retry.md).

**Input**  
Les entrées sont définies par l'opération d'API que vous sélectionnez.

------
#### [ YAML ]

```
action: aws:waitForAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property value
```

------
#### [ JSON ]

```
{
  "action": "aws:waitForAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property value"
    ]
  }
}
```

------

Service  
L'espace de Service AWS noms qui contient l'opération d'API que vous souhaitez exécuter. Par exemple, l'espace de noms pour AWS Systems Manager is`ssm`. L'espace de noms pour Amazon Elastic Compute Cloud (Amazon EC2) est `ec2`. Vous pouvez consulter la liste des Service AWS espaces de noms pris en charge dans la section [Services disponibles](https://docs.aws.amazon.com/cli/latest/reference/#available-services) de la *référence des AWS CLI commandes*.  
Type : Chaîne  
Obligatoire : oui

Api  
Le nom de l'opération d'API que vous voulez exécuter. Vous pouvez afficher les opérations d'API (également appelées méthodes) en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les opérations d'API (méthodes) pour Amazon Relational Database Service (Amazon RDS) sont répertoriées à la page suivante : [Méthodes pour Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Type : Chaîne  
Obligatoire : oui

Entrées d'opérations d'API  
Une ou plusieurs entrées d'opérations d'API. Vous pouvez afficher les entrées disponibles (également appelées paramètres) en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les méthodes pour Amazon RDS sont répertoriées sur la page suivante : [Méthodes Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ****Choisissez la méthode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) et faites défiler la page vers le bas pour voir les paramètres disponibles, tels que l'**DBInstanceidentifiant**, le nom et les valeurs.****  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Type : déterminé par l'opération d'API choisie  
Obligatoire : oui

PropertySelector  
Le JSONPath vers un attribut spécifique dans l'objet de réponse. Vous pouvez afficher les objets de réponse en choisissant un service dans le panneau de navigation de gauche sur la page [Services Reference (Référence des services)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) suivante. Sélectionnez une méthode dans la section **Client** pour le service que vous voulez appeler. Par exemple, toutes les méthodes pour Amazon RDS sont répertoriées sur la page suivante : [Méthodes Amazon RDS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Choisissez la méthode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) et faites défiler la page jusqu'à la section Structure de réponse.** **DBInstances**est répertorié en tant qu'objet de réponse.  
Type : Chaîne  
Obligatoire : oui

DesiredValues  
État attendu ou état à partir duquel l'automatisation se poursuit.  
Type : MapList, StringList  
Obligatoire : oui

# Variables système Automation
<a name="automation-variables"></a>

Les runbooks Automation AWS Systems Manager utilisent les variables suivantes. Pour obtenir un exemple d'utilisation de ces variables, affichez la source JSON du runbook `AWS-UpdateWindowsAmi`. 

**Pour afficher la source JSON du runbook `AWS-UpdateWindowsAmi`**

1. Ouvrez la console AWS Systems Manager à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, cliquez sur **Documents**.

1. Dans la liste de documents, utilisez la barre de recherche ou les nombres à droite de la barre de recherche pour choisir le runbook `AWS-UpdateWindowsAmi`.

1. Sélectionnez l'onglet **Contenu**. 

**Variables système**  
Les runbooks Automation prennent en charge actuellement les variables système suivantes.


****  

| Variable | Détails | 
| --- | --- | 
|  `global:ACCOUNT_ID`  |  L'ID de l'Compte AWS de l'utilisateur ou du rôle dans lequel Automation s'exécute.  | 
|  `global:DATE`  |  Date (au moment de l'exécution) au format AAAA-MM-JJ.  | 
|  `global:DATE_TIME`  |  Date et heure (au moment de l'exécution) au format AAAA-MM-JJ\$1HH.mm.ss.  | 
|  `global:AWS_PARTITION`  |  Partition dans laquelle se trouve la ressource. Pour les Régions AWS standards, la partition est `aws`. Pour les ressources dans d'autres partitions, la partition est `aws-partitionname`. Par exemple, la partition des ressources dans la région AWS GovCloud (US-West) est `aws-us-gov`.  | 
|  `global:REGION`  |  La région dans laquelle le runbook est exécuté. Par exemple, us-east-2.  | 

**Variables d'automatisation**  
Les runbooks Automation prennent en charge les variables d'automatisation suivantes.


****  

| Variable | Détails | 
| --- | --- | 
|  `automation:EXECUTION_ID`  |  Identifiant unique attribué à l'exécution de l'automatisation actuelle. Par exemple, `1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c`.  | 

**Topics**
+ [Terminologie](#automation-terms)
+ [Scénarios pris en charge](#automation-variables-support)
+ [Scénarios non pris en charge](#automation-variables-unsupported)

## Terminologie
<a name="automation-terms"></a>

Les conditions suivantes décrivent comment les variables et les paramètres sont résolus.


****  

| Durée | Définition | exemple | 
| --- | --- | --- | 
|  ARN constant  |  Un Amazon Resource Name (ARN) valide, sans variables.  |  `arn:aws:iam::123456789012:role/roleName`  | 
|  Paramètre runbook  |  Un paramètre défini au niveau du runbook (`instanceId`, par exemple). Le paramètre est utilisé dans un remplacement de chaîne de base. Sa valeur est fournie au moment du démarrage de l'exécution.  |  <pre>{ <br />   "description": "Create Image Demo",<br />   "version": "0.3",<br />   "assumeRole": "Your_Automation_Assume_Role_ARN",<br />   "parameters":{ <br />      "instanceId": { <br />         "type": "String",<br />         "description": "Instance to create image from"<br />   }<br />}</pre>  | 
|  Variable système  |  Variable générale remplacée dans le runbook lors de l'évaluation d'une partie du runbook.  |  <pre>"activities": [ <br />   { <br />      "id": "copyImage",<br />      "activityType": "AWS-CopyImage",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": { <br />         "ImageName": "{{imageName}}",<br />         "SourceImageId": "{{sourceImageId}}",<br />         "SourceRegion": "{{sourceRegion}}",<br />         "Encrypted": true,<br />         "ImageDescription": "Test CopyImage Description created on {{global:DATE}}"<br />      }<br />   }<br />]</pre>  | 
|  Variable d'automatisation  |  Variable relative à l'automatisation remplacée dans le runbook lors de l'évaluation d'une partie du runbook.  |  <pre>{ <br />   "name": "runFixedCmds",<br />   "action": "aws:runCommand",<br />   "maxAttempts": 1,<br />   "onFailure": "Continue",<br />   "inputs": { <br />      "DocumentName": "AWS-RunPowerShellScript",<br />      "InstanceIds": [ <br />         "{{LaunchInstance.InstanceIds}}"<br />      ],<br />      "Parameters": { <br />         "commands": [ <br />            "dir",<br />            "date",<br />            "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}”<br />         ]<br />      }<br />   }<br />}</pre>  | 
|  Paramètre Systems Manager  |  Une variable définie dans AWS Systems Manager Parameter Store. Il ne peut pas être référencé directement dans l'entrée de l'étape. Des autorisations peuvent être requises pour accéder au paramètre.  |  <pre><br />description: Launch new Windows test instance<br />schemaVersion: '0.3'<br />assumeRole: '{{AutomationAssumeRole}}'<br />parameters:<br />  AutomationAssumeRole:<br />    type: String<br />    default: ''<br />    description: >-<br />      (Required) The ARN of the role that allows Automation to perform the<br />      actions on your behalf. If no role is specified, Systems Manager<br />      Automation uses your IAM permissions to run this runbook.<br />  LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 

## Scénarios pris en charge
<a name="automation-variables-support"></a>


****  

| Scénario | Commentaires | exemple | 
| --- | --- | --- | 
|  ARN `assumeRole` constant lors de la création.  |  Un contrôle d'autorisation est effectué pour vérifier que l'utilisateur appelant est autorisé à passer le `assumeRole` donné.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "arn:aws:iam::123456789012:role/roleName",<br />  "parameters": { <br />  ...</pre>  | 
|  Paramètre runbook fourni pour `AssumeRole` au démarrage de l'automatisation.  |  Doit être défini dans la liste des paramètres du runbook.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{dynamicARN}}",<br />  "parameters": {<br /> ...</pre>  | 
|  Valeur fournie pour le paramètre du runbook au démarrage.  |  Le client fournit la valeur à utiliser pour un paramètre. Toutes les entrées fournies au moment du démarrage doivent être définies dans la liste des paramètres du runbook.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-12345678",<br />      "description": "list of commands to run as part of first step"<br />    },<br />...</pre> Les entrées pour démarrer l'exécution d'Automation incluent : `{"amiId" : ["ami-12345678"] }`  | 
|  Paramètre Systems Manager référencé dans le contenu du runbook.  |  La variable existe dans le compte du client, ou est un paramètre accessible publiquement, et le `AssumeRole` pour le runbook a accès à la variable. Un contrôle est effectué à la création pour confirmer que le `AssumeRole` y a accès. Le paramètre ne peut pas être référencé directement dans l'entrée de l'étape.  |  <pre><br />...<br />parameters:<br />    LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 
|  Variable système référencée dans la définition de l'étape  |  Au démarrage de l'automatisation, une variable système est remplacée dans le runbook. La valeur injectée dans le runbook est relative au moment où la substitution se produit. En d'autres termes, la valeur d'une variable de temps injectée à l'étape 1 est différente de la valeur injectée à l'étape 3 en raison du temps nécessaire pour exécuter les étapes entre elles. Les variables système n'ont pas besoin d'être définies dans la liste des paramètres du runbook.  |  <pre>...<br />  "mainSteps": [<br />    {<br />      "name": "RunSomeCommands",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS:RunPowerShell",<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "Parameters": {<br />            "commands" : [<br />                "echo {The time is now {{global:DATE_TIME}}}"<br />            ]<br />        }<br />    }<br />}, ... </pre>  | 
|  Variable d'automatisation référencée dans la définition de l'étape.  |  Les variables d'automatisation n'ont pas besoin d'être définies dans la liste des paramètres du runbook. La seule variable d'automatisation prise en charge est **automation:EXECUTION\$1ID**.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "invokeLambdaFunction",<br />      "action": "aws:invokeLambdaFunction",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "FunctionName": "Hello-World-LambdaFunction",<br /><br />"Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }"<br />      }<br />    }<br />... </pre>  | 
|  Reportez-vous à la sortie de l'étape précédente dans la définition de l'étape suivante.  |  Il s'agit de la redirection du paramètre. La sortie de l'étape précédente est référencée à l'aide de la syntaxe `{{stepName.OutputName}}`. Cette syntaxe ne peut pas être utilisée par le client pour les paramètres du runbook. Ceci est résolu lorsque l'étape de référence s'exécute. Le paramètre n'est pas répertorié dans les paramètres du runbook.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "{{amiId}}",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br />    },<br />    {<br />      "name":"changeState",<br />      "action": "aws:changeInstanceState",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "DesiredState": "terminated"<br />      }<br />    }<br /><br />... </pre>  | 

## Scénarios non pris en charge
<a name="automation-variables-unsupported"></a>


****  

| Scénario | Comment | exemple | 
| --- | --- | --- | 
|  Paramètre Systems Manager fourni pour `assumeRole` au moment de la création  |  Non pris en charge.  |  <pre>...<br /><br />{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{ssm:administratorRoleARN}}",<br />  "parameters": {<br /><br />... </pre>  | 
|  Paramètre Systems Manager directement référencé dans l'entrée de l'étape.  |  Renvoie une exception `InvalidDocumentContent` au moment de la création.  |  <pre><br />...<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}'<br />...</pre>  | 
|  Définition de l'étape des variables  |  La définition d'une étape du runbook est construite en variables.  |  <pre>...<br /><br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "{{attemptModel}}": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "ami-12345678",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br /><br />...<br /><br />User supplies input : { "attemptModel" : "minAttempts" } </pre>  | 
|  Paramètres runbook de références croisées  |  L'utilisateur fournit un paramètre d'entrée au moment du démarrage qui est une référence à un autre paramètre du runbook.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-7f2e6015",<br />      "description": "list of commands to run as part of first step"<br />    },<br />    "alternateAmiId": {<br />      "type": "String",<br />      "description": "The alternate AMI to try if this first fails".<br /><br />"default" : "{{amiId}}"<br />    },<br /><br />... </pre>  | 
|  Extension à plusieurs niveaux  |  Le runbook définit une variable qui évalue le nom d'une variable. Elle se trouve dans les séparateurs de variables (c'est-à-dire *\$1\$1 \$1\$1*) et s'étend à la valeur de cette variable/ce paramètre.  |  <pre>...<br />  "parameters": {<br />    "firstParameter": {<br />      "type": "String",<br />      "default": "param2",<br />      "description": "The parameter to reference"<br />    },<br />    "secondParameter": {<br />      "type": "String",<br />      "default" : "echo {Hello world}",<br />      "description": "What to run"<br />    }<br />  },<br />  "mainSteps": [{<br />      "name": "runFixedCmds",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS-RunPowerShellScript",<br /><br />"InstanceIds" : "{{LaunchInstance.InstanceIds}}",<br />        "Parameters": {<br />          "commands": [ "{{ {{firstParameter}} }}"]<br /><br />}<br /><br />...<br /><br />Note: The customer intention here would be to run a command of "echo {Hello world}" </pre>  | 
|  Référencement de sortie à partir d'une étape de runbook qui est un autre type de variable  |  L'utilisateur fait référence à la sortie d'une étape d'un précédent runbook au sein d'une étape ultérieure. Le résultat est un type de variable qui ne respecte pas les exigences de l'action dans l'étape suivante.  |  <pre>...<br />mainSteps:<br />- name: getImageId<br />  action: aws:executeAwsApi<br />  inputs:<br />    Service: ec2<br />    Api: DescribeImages<br />    Filters:  <br />    - Name: "name"<br />      Values: <br />      - "{{ImageName}}"<br />  outputs:<br />  - Name: ImageIdList<br />    Selector: "$.Images"<br />    Type: "StringList"<br />- name: copyMyImages<br />  action: aws:copyImage<br />  maxAttempts: 3<br />  onFailure: Abort<br />  inputs:<br />    SourceImageId: {{getImageId.ImageIdList}}<br />    SourceRegion: ap-northeast-2<br />    ImageName: Encrypted Copies of LAMP base AMI in ap-northeast-2<br />    Encrypted: true <br />... <br />Note: You must provide the type required by the Automation action. <br />In this case, aws:copyImage requires a "String" type variable but the preceding step outputs a "StringList" type variable.<br />                                        </pre>  | 