

Dies ist das neue *CloudFormation Template Reference Guide*. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im [AWS CloudFormation Benutzerhandbuch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# cfn-signal


Das `cfn-signal` Hilfsskript gibt CloudFormation an, ob Amazon EC2 EC2-Instances erfolgreich erstellt oder aktualisiert wurden. Wenn Sie Softwareanwendungen auf Instances installieren und konfigurieren, können Sie signalisieren, CloudFormation wann diese Softwareanwendungen bereit sind.

Sie verwenden das Skript `cfn-signal` in Verbindung mit einem [`CreationPolicy` Attribut](aws-attribute-creationpolicy.md) oder einem [`UpdatePolicy` Attribut](aws-attribute-updatepolicy.md) mit `WaitOnResourceSignals` für Amazon-EC2-Auto-Scaling-Gruppen. Wenn Ressourcen mit diesen Richtlinien CloudFormation erstellt oder aktualisiert werden, wird die Arbeit am Stack unterbrochen, bis die Ressource die erforderliche Anzahl von Signalen empfängt oder bis der Timeout-Zeitraum überschritten ist. Für jedes gültige Signal, das CloudFormation empfangen wird, werden die Signale in den Stack-Events veröffentlicht, sodass Sie jedes Signal verfolgen können.

**Topics**
+ [

## Syntax zur Ressourcen-Signalisierung (empfohlen)
](#w2aac32c29b9)
+ [

## Syntax zur Verwendung mit Wartebedingungs-Handle
](#cfn-signal-Syntaxwaitcondition)
+ [

## Optionen
](#cfn-signal-options)
+ [

## Beispiele
](#cfn-signal-examples)
+ [

## Zugehörige Ressourcen
](#cfn-signal-related-resources)

## Syntax zur Ressourcen-Signalisierung (empfohlen)


Wenn Sie CloudFormation Ressourcen signalisieren möchten, verwenden Sie die folgende Syntax.

```
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
```

**Anmerkung**  
Für`cfn-signal` sind keine Berechtigungsnachweise erforderlich, so dass Sie die Optionen,`--access-key`,`--secret-key` `--role`oder `--credential-file` nicht verwenden müssen. Wenn jedoch keine Anmeldeinformationen angegeben werden, prüft CloudFormation auf Stack-Mitgliedschaft und schränkt den Geltungsbereich des Aufrufs desjenigen Stacks ein, zu dem die Instance gehört. Weitere Informationen finden Sie unter [Berechtigungen für Helferobjektskripte](cfn-helper-scripts-reference.md#cfn-helper-scripts-reference-permissions).

## Syntax zur Verwendung mit Wartebedingungs-Handle


Wenn Sie einen Wartebedingungs-Handle signalisieren möchten, verwenden Sie folgende Syntax.

```
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
```

## Optionen


Die Optionen, die Sie verwenden können, hängen davon ab, ob Sie eine Erstellungsrichtlinie oder einen Wartebedingungs-Handle signalisieren. Einieg Optionen, die für Erstellungsrichtlinien gelten, gelten u.U. nicht für Wartebedingungs-Handles.


| Name | Description | Erforderlich | 
| --- | --- | --- | 
|  `--access-key` (nur Ressourcen-Signalisierung)  |  AWS Zugriffsschlüssel für ein Konto mit der Berechtigung, die CloudFormation `SignalResource ` API aufzurufen. Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter. *Typ:* Zeichenfolge  |  Nein  | 
|  `-d, --data` (nur Wartebedingungs-Handle)  |  Mit `waitConditionHandle` zurückzusendende Daten. Der Standardwert ist leer. *Typ:* Zeichenfolge *Standard*: leer  |  Nein  | 
|  `-e, --exit-code`   |  Der Fehlercode aus einem Prozess, der verwendet werden kann, um Erfolg oder Fehlschlag zu ermitteln. Ist dies festgelegt, wird die Option `--success` ignoriert. *Typ:* Zeichenfolge *Beispiele*: `-e $?` (für Linux), `-e %ERRORLEVEL%` (für Windows cmd.exe) und `-e $lastexitcode` (für Windows PowerShell).  |  Nein  | 
|  `-f, --credential-file` (nur Ressourcen-Signalisierung)  |  Eine Datei mit einem geheimen Zugriffsschlüssel und einem Zugriffsschlüssel. Der Dateiparameter Anmeldeinformationen hat Vorrang vor den Parametern Rolle, Zugriffschlüssel und geheimer Zugriffschlüssel. *Typ:* Zeichenfolge  |  Nein  | 
|  `--http-proxy`  |  Ein HTTP-Proxys (Nicht-SSL). Verwenden Sie das folgende Format: `http://user:password@host:port` *Typ:* Zeichenfolge  |  Nein  | 
|  `--https-proxy`  |  Ein HTTPS-Proxy. Verwenden Sie das folgende Format: `https://user:password@host:port` *Typ:* Zeichenfolge  |  Nein  | 
|  `-i, --id`  |  Die zu sendende eindeutige ID. *Typ:* Zeichenfolge *Standard*: Die ID der Amazon EC2-Instance. Wenn die ID nicht aufgelöst werden kann, wird der vollqualifizierte Domainnname (FQDN) des Computer ausgegeben.  |  Nein  | 
|  `-r, --reason ` (nur Wartebedingungs-Handle)  |  Ein Statusgrund für das Ressourcen-Ereignis (derzeit nur bei Fehlschlägen) – Standardeinstellung ist "Konfiguration fehlgeschlagen", wenn kein Erfolg ermittelt wurde. *Typ:* Zeichenfolge  |  Nein  | 
| --region (nur Ressourcen-Signalisierung) |  Der zu verwendende CloudFormation regionale Endpunkt. *Typ:* Zeichenfolge *Standardwert*: `us-east-1`  |  Nein  | 
| --resource (nur Ressourcen-Signalisierung) |  Die logische ID der Ressource, die die zu signalisierende Erstellungs-Richtlinie enthält. *Typ:* Zeichenfolge  |  Ja  | 
|  `--role` (nur Ressourcen-Signalisierung)  |  Der Name einer IAM-Rolle, die mit dieser Instance verknüpft ist. *Typ:* Zeichenfolge Bedingun: Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter.  |  Nein  | 
|  `-s, --success`   |  Bei „true“ signalisiert `SUCCESS`, ansonsten `FAILURE`. *Typ*: Boolesch *Standardwert*: `true`  |  Nein  | 
|  `--secret-key` (nur Ressourcen-Signalisierung)  |  AWS geheimer Zugriffsschlüssel, der dem angegebenen AWS Zugriffsschlüssel entspricht. *Typ:* Zeichenfolge  |  Nein  | 
|  `--stack` (nur Ressourcen-Signalisierung)  |  Der Stack-Name oder die Stack-ID, die die zu signalisierende Ressource enthält. *Typ:* Zeichenfolge  |  Ja  | 
| -u, --url (nur Ressourcen-Signalisierung) |  Der zu verwendende CloudFormation Endpunkt. *Typ:* Zeichenfolge  |  Nein  | 
|  `waitconditionhandle.url` (nur Wartebedingungs-Handle)  |  Eine vorsignierte URL, mit der Sie einer zugehörigen `WaitCondition` Erfolg oder Fehlschlag signalisieren können *Typ:* Zeichenfolge  |  Ja  | 

## Beispiele


### Beispiel für Amazon Linux


Ein gängiges Verwendungsmuster ist die gemeinsame Verwendung von `cfn-init` und `cfn-signal` . Der Aufruf von `cfn-signal` verwendet den Rückgabestatus des Aufrufs von `cfn-init` (unter Verwendung des Shell-Konstrukts \$1?). Wenn die Anwendung nicht installiert werden kann, kann die Instance nicht erstellt werden und ein Rollback des Stacks wird durchgeführt.

#### JSON


```
{
    "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


```
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
```

## Zugehörige Ressourcen


Sie können auch unser GitHub Repository besuchen, um [Beispielvorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html#sample-templates) herunterzuladen, die verwendet werden`cfn-signal`, einschließlich der folgenden Vorlagen.
+  [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) 