

Il s’agit du nouveau *Guide de référence des modèles CloudFormation *. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le [guide de AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.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.

# cfn-signal
<a name="cfn-signal"></a>

Le script d'`cfn-signal`assistance indique si les CloudFormation instances Amazon EC2 ont été créées ou mises à jour avec succès. Si vous installez et configurez des applications logicielles sur des instances, vous pouvez signaler CloudFormation quand ces applications logicielles sont prêtes.

Utilisez le script `cfn-signal` conjointement avec une [Attribut `CreationPolicy`](aws-attribute-creationpolicy.md) ou [Attribut `UpdatePolicy`](aws-attribute-updatepolicy.md) avec `WaitOnResourceSignals` pour les groupes Amazon EC2 Auto Scaling. Lors de CloudFormation la création ou de la mise à jour de ressources avec ces politiques, il suspend le travail sur la pile jusqu'à ce que la ressource reçoive le nombre de signaux requis ou jusqu'à ce que le délai d'expiration soit dépassé. Pour chaque signal valide CloudFormation reçu, il publie les signaux dans la pile d'événements afin que vous puissiez suivre chaque signal.

**Topics**
+ [Syntaxe pour le signalement des ressources (recommandée)](#w2aac32c29b9)
+ [Syntaxe à utiliser avec le descripteur de condition d'attente](#cfn-signal-Syntaxwaitcondition)
+ [Options](#cfn-signal-options)
+ [Exemples](#cfn-signal-examples)
+ [Ressources connexes](#cfn-signal-related-resources)

## Syntaxe pour le signalement des ressources (recommandée)
<a name="w2aac32c29b9"></a>

Si vous souhaitez signaler CloudFormation des ressources, utilisez la syntaxe suivante.

```
cfn-signal --success|-s signal.to.send \
        --access-key access.key \
        --credential-file|-f credential.file \
        --exit-code|-e exit.code \
        --http-proxy HTTP.proxy \
        --https-proxy HTTPS.proxy \
        --id|-i unique.id \
        --region AWS.region \
        --resource resource.logical.ID \
        --role IAM.role.name \
        --secret-key secret.key \
        --stack stack.name.or.stack.ID \
        --url CloudFormation.endpoint
```

**Note**  
`cfn-signal` ne nécessite pas d’informations d’identification, vous n’avez donc pas besoin d’utiliser les options `--access-key`, `--secret-key`, `--role` ou `--credential-file`. Toutefois, si aucune information d'identification n'est spécifiée, CloudFormation vérifie l'appartenance de la pile et limite la portée de l'appel à la pile à laquelle l'instance appartient. Pour de plus amples informations, veuillez consulter [Autorisations pour les scripts d'assistant](cfn-helper-scripts-reference.md#cfn-helper-scripts-reference-permissions).

## Syntaxe à utiliser avec le descripteur de condition d'attente
<a name="cfn-signal-Syntaxwaitcondition"></a>

Si vous souhaitez signaler un descripteur de condition d'attente, utilisez la syntaxe suivante.

```
cfn-signal --success|-s signal.to.send \
        --reason|-r resource.status.reason \
        --data|-d data \
        --id|-i unique.id \
        --exit-code|-e exit.code \
        waitconditionhandle.url
```

## Options
<a name="cfn-signal-options"></a>

Les options que vous pouvez utiliser varient selon que vous signalez une politique de création ou un descripteur de condition d'attente. Les options qui s'appliquent à une politique de création ne s'appliquent pas forcément toutes au descripteur d'une condition d'attente.


| Nom | Description | Obligatoire | 
| --- | --- | --- | 
|  `--access-key` (signalement de ressources uniquement)  |  AWS clé d'accès pour un compte autorisé à appeler l' CloudFormation`SignalResource `API. Le paramètre du fichier d'informations d'identification prévaut sur ce paramètre. *Type* : chaîne  |  Non  | 
|  `-d, --data` (descripteur de condition d'attente uniquement)  |  Données à envoyer avec le descripteur `waitConditionHandle`. Vide par défaut. *Type* : chaîne *Par défaut* : vide  |  Non  | 
|  `-e, --exit-code`   |  Code d'erreur d'un processus qui peut être utilisé pour déterminer le succès ou l'échec. S'il est spécifié, l'option `--success` est ignorée. *Type* : chaîne *Exemples* : `-e $?` (pour Linux), `-e %ERRORLEVEL%` (pour Windows cmd.exe) et `-e $lastexitcode` (pour Windows PowerShell).  |  Non  | 
|  `-f, --credential-file` (signalement de ressources uniquement)  |  Fichier qui contient une clé d'accès secrète et une clé d'accès. Le paramètre du fichier d'informations d'identification supplante les paramètres --role, --access-key et --secret-key. *Type* : chaîne  |  Non  | 
|  `--http-proxy`  |  Proxy HTTP (non SSL). Utilisez le format suivant : `http://user:password@host:port` *Type* : chaîne  |  Non  | 
|  `--https-proxy`  |  Proxy HTTPS. Utilisez le format suivant : `https://user:password@host:port` *Type* : chaîne  |  Non  | 
|  `-i, --id`  |  ID unique à envoyer. *Type* : chaîne *Par défaut* : ID de l'instance Amazon EC2. Si l'ID ne peut pas être résolu, le FQDN de la machine est renvoyé.  |  Non  | 
|  `-r, --reason ` (descripteur de condition d'attente uniquement)  |  Raison du statut pour l'événement de ressource (actuellement uniquement utilisé en cas d'échec) : indique par défaut « Configuration failed » si « success » est false. *Type* : chaîne  |  Non  | 
| --region (signalement de ressources uniquement) |  Le point de terminaison CloudFormation régional à utiliser. *Type* : chaîne *Par défaut* : `us-east-1`  |  Non  | 
| --resource (signalement de ressources uniquement) |  ID logique de la ressource qui contient les règles de création que vous souhaitez signaler. *Type* : chaîne  |  Oui  | 
|  `--role` (signalement de ressources uniquement)  |  Nom d'un rôle IAM associé à l'instance. *Type* : chaîne Condition : le paramètre du fichier d'informations d'identification prévaut sur ce paramètre.  |  Non  | 
|  `-s, --success`   |  Si la valeur est true, signal `SUCCESS`, sinon `FAILURE`. *Type* : valeur booléenne *Par défaut* : `true`  |  Non  | 
|  `--secret-key` (signalement de ressources uniquement)  |  AWS clé d'accès secrète qui correspond à la clé AWS d'accès spécifiée. *Type* : chaîne  |  Non  | 
|  `--stack` (signalement de ressources uniquement)  |  Nom de la pile ou ID de la pile qui contient la ressource que vous voulez signaler. *Type* : chaîne  |  Oui  | 
| -u, --url (signalement de ressources uniquement) |  Le CloudFormation point de terminaison à utiliser. *Type* : chaîne  |  Non  | 
|  `waitconditionhandle.url` (descripteur de condition d'attente uniquement)  |  URL pré-signée que vous pouvez utiliser pour signaler la réussite ou l'échec d'une condition `WaitCondition` associée *Type* : chaîne  |  Oui  | 

## Exemples
<a name="cfn-signal-examples"></a>

### Exemple de Amazon Linux
<a name="w2aac32c29c15b3"></a>

Un mode d’utilisation courant consiste à utiliser `cfn-init` et `cfn-signal` ensemble. L’appel à `cfn-signal` utilise le code de renvoi de l’appel à `cfn-init` (via la construction shell \$1?). Si l’installation de l’application échoue, l’instance ne sera pas créée et la pile sera restaurée.

#### JSON
<a name="cfn-signal-example.json"></a>

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Simple EC2 instance",
    "Resources": {
        "MyInstance": {
            "Type": "AWS::EC2::Instance",
            "Metadata": {
                "AWS::CloudFormation::Init": {
                    "config": {
                        "files": {
                            "/tmp/test.txt": {
                                "content": "Hello world!",
                                "mode": "000755",
                                "owner": "root",
                                "group": "root"
                            }
                        }
                    }
                }
            },
            "Properties": {
                "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}",
                "InstanceType": "t2.micro",
                "UserData": {
                    "Fn::Base64": {
                        "Fn::Join": [
                            "",
                            [
                                "#!/bin/bash -x\n",
                                "# Install the files and packages from the metadata\n",
                                "yum install -y aws-cfn-bootstrap",
                                "\n",
                                "/opt/aws/bin/cfn-init -v ",
                                "         --stack ",
                                {
                                    "Ref": "AWS::StackName"
                                },
                                "         --resource MyInstance ",
                                "         --region ",
                                {
                                    "Ref": "AWS::Region"
                                },
                                "\n",
                                "# Signal the status from cfn-init\n",
                                "/opt/aws/bin/cfn-signal -e $? ",
                                "         --stack ",
                                {
                                    "Ref": "AWS::StackName"
                                },
                                "         --resource MyInstance ",
                                "         --region ",
                                {
                                    "Ref": "AWS::Region"
                                },
                                "\n"
                            ]
                        ]
                    }
                }
            },
            "CreationPolicy": {
                "ResourceSignal": {
                    "Timeout": "PT5M"
                }
            }
        }
    }
}
```

#### YAML
<a name="cfn-signal-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Description: Simple EC2 instance
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Metadata:
      'AWS::CloudFormation::Init':
        config:
          files:
            /tmp/test.txt:
              content: Hello world!
              mode: '000755'
              owner: root
              group: root
    Properties:
      ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}'
      InstanceType: t2.micro
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash -x
          # Install the files and packages from the metadata
          yum install -y aws-cfn-bootstrap
          /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}
          # Signal the status from cfn-init
          /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource MyInstance --region ${AWS::Region}
    CreationPolicy:
      ResourceSignal:
        Timeout: PT5M
```

## Ressources connexes
<a name="cfn-signal-related-resources"></a>

Vous pouvez également visiter notre GitHub référentiel pour télécharger des [exemples de modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html#sample-templates) que nous utilisons`cfn-signal`, notamment les modèles suivants.
+  [InstanceWithCfnInit.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/EC2/InstanceWithCfnInit.yaml) 
+  [AutoScalingRollingUpdates.yaml](https://github.com/aws-cloudformation/aws-cloudformation-templates/blob/main/AutoScaling/AutoScalingRollingUpdates.yaml) 