

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.

# CloudFormation Referenz für Hilfsskripte
<a name="cfn-helper-scripts-reference"></a>

CloudFormation stellt die folgenden Python-Hilfsskripten bereit, mit denen Sie Software installieren und Dienste auf einer Amazon EC2 EC2-Instance starten können, die Sie als Teil Ihres Stacks erstellen:
+  [cfn-init](cfn-init.md)- Zum Abrufen und Interpretieren von Ressourcen-Metadaten, Installieren von Paketen, Erstellen von Dateien und Starten von Diensten.
+  [cfn-signal](cfn-signal.md)- Signalisieren Sie mit `CreationPolicy` oder,`WaitCondition` damit Sie andere Ressourcen im Stack synchronisieren können, wenn die erforderliche Ressource oder Anwendung bereit ist.
+  [cfn-get-metadata](cfn-get-metadata.md)- Zum Abrufen von Metadaten für eine Ressource oder eines Pfads zu einem bestimmten Schlüssel.
+  [cfn-hup](cfn-hup.md)- Verwenden Sie diese Option, um nach Aktualisierungen von Metadaten zu suchen und benutzerdefinierte Hooks auszuführen, wenn Änderungen entdeckt werden.

Sie können die Skripts direkt aus Ihrer Vorlage aufrufen. Die Skripts funktionieren in Verbindung mit Ressourcen-Metadaten, die in derselben Vorlage festgelegt werden. Die Skripts laufen in der Amazon EC2-Instance während der Stack-Erstellung.

**Anmerkung**  
Die Skripts werden nicht standardmäßig ausgeführt. Sie müssen in Ihrer Vorlage Aufrufe zur Ausführung bestimmter Hilfsskripts einschließen.

**Topics**
+ [Amazon Linux-AMI-Bilder](#cfn-helper-scripts-reference-amazon-amis)
+ [Herunterladen von Paketen für andere Plattformen](#cfn-helper-scripts-reference-downloads)
+ [Berechtigungen für Helferobjektskripte](#cfn-helper-scripts-reference-permissions)
+ [Verwenden der neuesten Version](#cfn-helper-scripts-reference-latest-version)
+ [cfn-init](cfn-init.md)
+ [cfn-signal](cfn-signal.md)
+ [cfn-get-metadata](cfn-get-metadata.md)
+ [cfn-hup](cfn-hup.md)

## Amazon Linux-AMI-Bilder
<a name="cfn-helper-scripts-reference-amazon-amis"></a>

Die CloudFormation Hilfsskripte sind auf Amazon Linux-AMI-Images vorinstalliert, auf denen Bootstrap-Skripts installiert sind.
+ Bei der neuesten Version von Amazon Linux-AMI sind die Skripts in `/opt/aws/bin` installiert.
+ Bei früheren Amazon Linux AMI-Versionen befindet sich das `aws-cfn-bootstrap`-Paket, das die Skripte enthält, im Yum-Repository.

**Anmerkung**  
Die Hilfsskripte sind auf den neuesten Versionen des Amazon Linux AMI vorinstalliert und nicht auf Optimized AMIs, wie z. B. ECS Optimized Image, das Amazon Linux als Basis verwendet.

## Herunterladen von Paketen für andere Plattformen
<a name="cfn-helper-scripts-reference-downloads"></a>

<a name="cfn-helper-scripts-reference-downloads"></a>Für andere Linux/Unix Distributionen als Amazon Linux AMI-Images und für Microsoft Windows (2008 oder höher) können Sie das `aws-cfn-bootstrap` Paket herunterladen.

**Anmerkung**  
Version 2.01–1 und höher der Hilfsskripts unterstützen Python 3.4 und höher. Wenn Sie Hilfsskripte benötigen, die eine frühere Version von Python unterstützen, finden Sie weitere Informationen unter [Versionshistorie für CloudFormation Helper Scripts 1.4](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/releasehistory-aws-cfn-bootstrap.html#releasehistory-aws-cfn-bootstrap-v1).


| Dateiformat | URL herunterladen | 
| --- | --- | 
|  TAR.GZ  |  [ https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz](https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz) Installieren Sie `tar.gz`mit dem Python-Programm pip. Um die Installation für Ubuntu abzuschließen, müssen Sie einen symlink erstellen: `ln -s /<path-to-extracted-tar>/aws-cfn-bootstrap-2.0/init/ubuntu/cfn-hup /etc/init.d/cfn-hup`  | 
|  ZIP  |  [ https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.zip](https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.zip)  | 
|  EXE  |  32-Bit-Windows: [ https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.exe](https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.exe)  64-Bit-Windows: [ https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-win64-latest.exe](https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-win64-latest.exe)  | 

## Berechtigungen für Helferobjektskripte
<a name="cfn-helper-scripts-reference-permissions"></a>

Standardmäßig erfordern Hilfsskripts keine Anmeldeinformationen; die Optionen `--access-key`, `--secret-key`, `--role` oder `--credential-file` müssen also nicht verwendet werden. 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.

Wenn Sie eine Option angeben möchten, empfehlen wir, dass Sie nur eine der Folgenden angeben:
+ `--role`
+ `--credential-file`
+ `--access-key` zusammen mit `--secret-key`

Wenn Sie eine Option angeben, beachten Sie, welche Berechtigungen die verschiedenen Helferobjektskripte erfordern:
+ `cfn-signal` erfordert `cloudformation:SignalResource`
+ Alle anderen Hilfsskripte erfordern `cloudformation:DescribeStackResource`

Weitere Informationen zur Verwendung von CloudFormation -spezifischen Aktionen und Bedingungskontextschlüsseln in IAM-Richtlinien finden Sie unter [ CloudFormation Zugriffskontrolle mit AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html) im *AWS CloudFormation Benutzerhandbuch*.

## Verwenden der neuesten Version
<a name="cfn-helper-scripts-reference-latest-version"></a>

Die Hilfsskripte werden regelmäßig aktualisiert. Wenn Sie die Hilfsskripts verwenden, müssen Sie sicherstellen, dass Ihre gestarteten Instances neueste Version der Skripts verwenden:
+ Fügen Sie den folgenden Befehl in die `UserData` Eigenschaft Ihrer Vorlage ein, bevor Sie die Skripts aufrufen. Mit diesem Befehl wird sichergestellt, dass Sie die neueste Version erhalten:

  `yum install -y aws-cfn-bootstrap`
+ Wenn Sie den `yum install` Befehl nicht einfügen und die Skripte `cfn-init`, `cfn-signal` oder `cfn-get-metadata` verwenden, müssen Sie die Skripte in jeder Amazon EC2-Linux-Instance mit diesem Befehl manuell aktualisieren:

  `sudo yum install -y aws-cfn-bootstrap`
**Anmerkung**  
Bei der Ausführung von `sudo yum install -y aws-cfn-bootstrap` werden die Hilfsskripte aus dem `yum`-Repository installiert.
+ Wenn Sie den `yum install` Befehl nicht einfügen und das Skript `cfn-hup` verwenden, müssen Sie das Skript in jeder Amazon EC2-Linux-Instance mit diesen Befehlen manuell aktualisieren:

  `sudo yum install -y aws-cfn-bootstrap`

  `sudo /sbin/service cfn-hup restart`
**Anmerkung**  
Bei der Ausführung von `sudo yum install -y aws-cfn-bootstrap` werden die Hilfsskripte aus dem `yum`-Repository installiert.
+ Wenn Sie den Quellcode der Skripte verwenden, um mit einer anderen Linux-Version oder einer anderen Plattform zu arbeiten und einen eigenen Zertifikat-Trust-Store erstellt haben, muss zudem der Trust-Store aktuell gehalten werden.

Für die Versionsgeschichte des Pakets `aws-cfn-bootstrap` siehe [Versionsverlauf für CloudFormation Hilfsskripte](releasehistory-aws-cfn-bootstrap.md).

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

In einer CloudFormation Vorlage können Sie `AWS::CloudFormation::Init` innerhalb des `Metadata` Abschnitts einer Amazon EC2 EC2-Ressource Initialisierungsaufgaben definieren. Weitere Informationen finden Sie unter [`AWS::CloudFormation::Init`](aws-resource-init.md).

Das Hilfsskript `cfn-init` liest die Metadaten der Vorlage aus dem Schlüssel `AWS::CloudFormation::Init` und handelt entsprechend:
+ Rufen Sie Metadaten ab und analysieren Sie sie von CloudFormation
+ Pakete installieren
+ Dateien auf die Festplatte zu schreiben
+ Enable/disable and start/stop-Services

Das Hilfsskript `cfn-init` wird in der Regel von den Benutzerdaten einer Amazon EC2-Instance oder einer Startvorlage aus ausgeführt.

Wenn Sie mit der Verwendung von Hilfsskripten noch nicht vertraut sind, empfehlen wir Ihnen, zunächst das [Bereitstellen von Anwendungen auf Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html)-Tutorial im *AWS CloudFormation -Benutzerhandbuch*zu lesen.

**Topics**
+ [Syntax](#cfn-init-Syntax)
+ [Optionen](#cfn-init-options)
+ [Beispiele](#cfn-init-examples)
+ [Zugehörige Ressourcen](#cfn-init-related-resources)

**Anmerkung**  
Wenn Sie `cfn-init` verwenden, um eine bestehende Datei zu aktualisieren, wird eine Sicherungskopie der Originaldatei im selben Verzeichnis mit der Erweiterung .bak erstellt. Wenn Sie beispielsweise `/path/to/file_name` aktualisieren, werden bei der Aktion zwei Dateien erzeugt: `/path/to/file_name.bak` enthält den ursprünglichen Inhalt der Datei, `/path/to/file_name` den aktualisierten Inhalt.

## Syntax
<a name="cfn-init-Syntax"></a>

```
cfn-init --stack|-s stack.name.or.id \
         --resource|-r logical.resource.id \
         --region region \
         --access-key access.key \
         --secret-key secret.key \
         --role rolename \
         --credential-file|-f credential.file \
         --configsets|-c config.sets \
         --url|-u service.url \
         --http-proxy HTTP.proxy \
         --https-proxy HTTPS.proxy \
         --verbose|-v
```

**Anmerkung**  
Für `cfn-init` 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).

## Optionen
<a name="cfn-init-options"></a>


| Name | Description | Erforderlich | 
| --- | --- | --- | 
|   `-s, --stack`   |  Stackname oder Stack-ID. *Typ:* Zeichenfolge *Standard*: Keiner *Beispiel*: `--stack { "Ref" : "AWS::StackName" },`  |  Ja  | 
|   `-r, --resource `   |  Die logische Ressourcen-ID der Ressource, die die Metadaten enthält. *Typ:* Zeichenfolge *Beispiel*: `--resource WebServerHost`  |  Ja  | 
|   `--region`   |  Der zu CloudFormation verwendende regionale Endpunkt. *Typ:* Zeichenfolge *Standardwert*: `us-east-1` *Beispiel*: `--region ", { "Ref" : "AWS::Region" },`  |  Nein  | 
|   `--access-key`   |  AWS Zugriffsschlüssel für ein Konto mit `DescribeStackResource` Anrufberechtigung CloudFormation. Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter. *Typ:* Zeichenfolge  |  Nein  | 
|   `--secret-key`   |  AWS geheimer Zugriffsschlüssel, der dem angegebenen AWS Zugriffsschlüssel entspricht. *Typ:* Zeichenfolge  |  Nein  | 
|   `--role`   |  Der Name einer IAM-Rolle, die mit dieser Instance verknüpft ist. *Typ:* Zeichenfolge Bedingun: Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter.  |  Nein  | 
|   `-f, --credential-file`   |  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  | 
|   `-c, --configsets`   |  Eine durch Kommas getrennte Liste der auszuführenden configsets (in Reihenfolge). *Typ:* Zeichenfolge *Standardwert*: `default`  |  Nein  | 
|   `-u, --url`   |  Der zu verwendende CloudFormation Endpunkt. *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  | 
|  `-v, --verbose`  |  Ausführliche Ausgabe. Dies ist nützlich für die Fehlersuche in Fällen, in denen die Initialisierung von `cfn-init` fehlgeschlagen ist.  Um Initialisierungsereignisse zu debuggen, sollten Sie `DisableRollback` einschalten. Sie können sich dann per SSH in die Konsole einloggen und die Protokolle unter `/var/log/cfn-init.log` lesen. Weitere Informationen finden Sie unter [Auswählen, wie mit Fehlern bei der Bereitstellung von Ressourcen umgegangen werden soll](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) im *AWS CloudFormation -Benutzerhandbuch*.   |  Nein  | 
| `-h, --help` | Zeigt eine Hilfsnachricht an und wird beendet. |  Nein | 

## Beispiele
<a name="cfn-init-examples"></a>

### Amazon Linux Beispiele
<a name="w2aac32c27c21b3"></a>

Die folgenden Beispiele zeigen die `UserData`-Eigenschaft einer EC2-Instance, die das `InstallAndRun`-Konfigurationsset ausführt, das mit der `WebServerInstance`-Ressource verbunden ist.

Um die neueste Version aufzunehmen, fügen Sie `yum install -y aws-cfn-bootstrap` zu `UserData` hinzu.

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

`UserData`-Eigenschaft mit der intrinsischen `Fn::Join`-Funktion.

```
{
    "UserData": {
        "Fn::Base64": {
            "Fn::Join": [
                "",
                [
                    "#!/bin/bash -xe\n",
                    "",
                    "yum install -y aws-cfn-bootstrap",
                    "/opt/aws/bin/cfn-init -v ",
                    "         --stack ",
                    {
                        "Ref": "AWS::StackName"
                    },
                    "         --resource WebServerInstance ",
                    "         --configsets InstallAndRun ",
                    "         --region ",
                    {
                        "Ref": "AWS::Region"
                    },
                    "\n"
                ]
            ]
        }
    }
}
```

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

`UserData`-Eigenschaft mit der intrinsischen `Fn::Sub`-Funktion.

```
UserData:
  Fn::Base64: !Sub |
    #!/bin/bash -xe
    yum update -y aws-cfn-bootstrap
    # Install the files and packages from the metadata
    /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}
```

## Zugehörige Ressourcen
<a name="cfn-init-related-resources"></a>

Eine Anleitung mit einer Beispielvorlage finden Sie unter [Bereitstellen von Anwendungen auf Amazon EC2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html) im *AWS CloudFormation -Benutzerhandbuch*.

*Ein Windows Beispiel finden Sie unter [WindowsBootstrapping-basierte CloudFormation Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-windows-stacks-bootstrapping.html) im AWS CloudFormation Benutzerhandbuch.*

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-init`, 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) 

Beispiele für LAMP-Stack-Vorlagen, die verwendet `cfn-init` werden, finden Sie unter [ec2-lamp-server](https://github.com/aws-samples/ec2-lamp-server) auf der Website. GitHub 

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

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)
<a name="w2aac32c29b9"></a>

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
<a name="cfn-signal-Syntaxwaitcondition"></a>

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
<a name="cfn-signal-options"></a>

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
<a name="cfn-signal-examples"></a>

### Beispiel für Amazon Linux
<a name="w2aac32c29c15b3"></a>

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

## Zugehörige Ressourcen
<a name="cfn-signal-related-resources"></a>

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) 

# cfn-get-metadata
<a name="cfn-get-metadata"></a>

Sie können das `cfn-get-metadata` Hilfsskript verwenden, um einen Metadatenblock aus der Standardausgabe abzurufen CloudFormation und ihn in die Standardausgabe zu drucken. Sie können zudem eine untergeordnete Struktur des Metadaten-Blocks drucken, wenn Sie einen Schlüssel angeben. Es werden jedoch nur Top-Level-Schlüssel unterstützt.

**Topics**
+ [Syntax](#cfn-get-metadata-Syntax)
+ [Optionen](#cfn-get-metadata-options)

## Syntax
<a name="cfn-get-metadata-Syntax"></a>

```
cfn-get-metadata --access-key access.key \
                 --secret-key secret.key \
                 --credential-file|f credential.file \
                 --key|k key \
                 --stack|-s stack.name.or.id \
                 --resource|-r logical.resource.id \
                 --role IAM.role.name \
                 --url|-u service.url \
                 --region region
```

**Anmerkung**  
Für `cfn-get-metadata` 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).

## Optionen
<a name="cfn-get-metadata-options"></a>


| Name | Description | Erforderlich | 
| --- | --- | --- | 
|   `-k, --key`   |  Gibt bei einem Schlüssel-Werte-Paar den Namen des Schlüssels für den angegebenen Wert an. *Typ:* Zeichenfolge *Beispiel*: Bei `{ "Key1": "SampleKey1", "Key2": "SampleKey2" }` gibt `cfn-get-metadata -k Key2` `SampleKey2` aus.  |  Nein  | 
|   `-s, --stack`   |  Name des Stacks. *Typ:* Zeichenfolge *Standard*: Keiner *Beispiel*: `-s { "Ref" : "AWS::StackName" },`  |  Ja  | 
|   `-r, --resource`   |  Die logische Ressourcen-ID der Ressource, die die Metadaten enthält. *Typ:* Zeichenfolge *Beispiel*: `-r WebServerHost`  |  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  | 
|   `--region`   |  Die Region, aus der die CloudFormation URL abgeleitet werden soll. *Typ:* Zeichenfolge *Standard*: Keiner *Beispiel*: `--region ", { "Ref" : "AWS::Region" },`  |  Nein  | 
|   `--access-key`   |  AWS Zugriffsschlüssel für ein Konto mit DescribeStackResource Anrufberechtigung. CloudFormation *Typ:* Zeichenfolge Bedingun: Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter.  |  Bedingt  | 
|   `--secret-key`   |  AWS Geheimer Schlüssel, der dem angegebenen AWS Zugriffsschlüssel entspricht. *Typ:* Zeichenfolge Bedingun: Der Dateiparameter Anmeldeinformationen hat Vorrang vor diesem Parameter.  |  Bedingt  | 
|   `-f, --credential-file`   |  Eine Datei mit einem geheimen Zugriffsschlüssel und einem Zugriffsschlüssel. *Typ:* Zeichenfolge Bedingung: Der Dateiparameter Anmeldeinformationen hat Vorrang vor den Parametern Rolle, Zugriffschlüssel und geheimer Zugriffschlüssel.  |  Bedingt  | 

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

Der `cfn-hup` -Helfer ist ein Daemon, der Änderungen in den Ressourcen-Metadaten erkennt und benutzerdefinierte Aktionen ausführt, wenn eine Änderung festgestellt wird. Hierdurch können Sie über die API-Aktion `UpdateStack` Konfigurations-Aktualisierungen an Ihren laufenden Amazon-EC2-Instances vornehmen.

Weitere Informationen finden Sie im Tutorial „[Einen CloudFormation Stack aktualisieren](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/updating.stacks.walkthrough.html)“ im *AWS CloudFormation Benutzerhandbuch*.

**Topics**
+ [Syntax](#cfn-hup-Syntax)
+ [Optionen](#cfn-hup-options)
+ [cfn-hup.conf Konfigurationsdatei](#cfn-hup-config-file)
+ [`hooks.conf` Konfigurationsdatei](#cfn-hup-hook-file)
+ [`hooks.d`Verzeichnis](#cfn-hup-hooks-dir)
+ [Beispiele](#cfn-hup-examples)
+ [Zugehörige Ressourcen](#cfn-hup-related-resources)

## Syntax
<a name="cfn-hup-Syntax"></a>

```
cfn-hup --config|-c config.dir \
        --no-daemon \
        --verbose|-v
```

## Optionen
<a name="cfn-hup-options"></a>


| Name | Description | Erforderlich | 
| --- | --- | --- | 
|   `--config\|-c config.dir`   |  Gibt den Pfad an, in dem das Skript `cfn-hup` nach den Verzeichnissen `cfn-hup.conf` und `hooks.d` sucht. Unter Windows ist der Standardpfad `system_drive\cfn`. Unter Linux ist der Standardpfad `/etc/cfn`.  |  Nein  | 
|   `--no-daemon`   |  Geben Sie diese Option an, um das Skript `cfn-hup` einmal auszuführen und zu beenden.  |  Nein  | 
|   `-v, --verbose `   |  Wählen Sie diese Option, um den Verbose-Modus zu verwenden.  |  Nein  | 

## cfn-hup.conf Konfigurationsdatei
<a name="cfn-hup-config-file"></a>

Die Datei `cfn-hup.conf` speichert den Namen des Stacks und die AWS Zugangsdaten, die der `cfn-hup` Daemon anvisiert.

Die Datei `cfn-hup.conf` verwendet das folgende Format:

```
[main]
stack=<stack-name-or-id>
```


| Name | Description | Erforderlich | 
| --- | --- | --- | 
|   `stack`   |  Einen Stack-Namen oder eine ID. *Typ:* Zeichenfolge  |  Ja  | 
|   `credential-file`   |  Eine auf Besitzer beschränkte Anmeldeinformations-Datei im selben Format wie die Befehlszeilen-Tools. *Typ:* Zeichenfolge *Bedingung*: Der Parameter `role` hat Vorrang vor diesem Parameter.  |  Nein  | 
|   `role`   |  Der Name einer IAM-Rolle, die mit dieser Instance verknüpft ist. *Typ:* Zeichenfolge  |  Nein  | 
|   `region`   |  Der Name des Stacks AWS-Region , der den Stapel enthält. *Example*: us-east-2  |  Nein  | 
|   `umask`   |  Das `umask` , das vom `cfn-hup` -Daemon verwendet wird. Dieser Wert kann mit oder ohne führende 0 angegeben werden. In beiden Fällen wird er es als Oktalzahl interpretiert (ähnlich dem Linux-Befehl `umask`). Dieser Parameter hat in Windows keine Wirkung. *Typ*: Oktale ganze Zahl zwischen `0` und `0777` *Standard*: `022`, Version 1.4–22 und höher. Der Standardwert `022` maskiert die Schreibrechte für Gruppen und die Welt, so dass Dateien, die vom `cfn-hup` -Daemon erstellt werden, standardmäßig nicht für Gruppen oder die Welt schreibbar sind. Der Standardwert für Versionen 1.4–21 und früher ist `0`. Dieser Wert maskiert nichts.  |  Nein  | 
|   `interval`   |  Das Intervall in Minuten, wonach auf Änderungen an den Ressourcen-Metadaten geprüft werden soll. *Typ*: Ganzzahl *Standardwert*: `15`  |  Nein  | 
|   `verbose`   |  Gibt an, ob die ausführliche Protokollierung verwendet werden soll. *Typ*: Boolesch *Standardwert*: `false`  |  Nein  | 

## `hooks.conf` Konfigurationsdatei
<a name="cfn-hup-hook-file"></a>

Die Benutzeraktionen, die der `cfn-hup` -Daemon regelmäßig aufruft, werden in der Konfigurationsdatei `hooks.conf` definiert. Die `hooks.conf` -Datei verwendet das folgende *-Format*:

```
[hookname]
triggers=post.add or post.update or post.remove
path=Resources.<logicalResourceId> (.Metadata or .PhysicalResourceId)(.<optionalMetadatapath>)
action=<arbitrary shell command>
runas=<runas user>
```

Wenn die Operation ausgeführt wird, wird sie in einer Kopie der aktuellen Umgebung (in der sich `cfn-hup` befindet) ausgeführt, wobei `CFN_OLD_METADATA` auf den vorherigen, durch path angegebenen Metadatenwert und `CFN_NEW_METADATA` auf den aktuellen Wert gesetzt wird.

Die Konfigurationsdatei für die Hooks wird nur beim Start des `cfn-hup` -Daemons geladen, so dass neue Hooks einen Neustart des Daemons erfordern. Bei `/var/lib/cfn-hup/data/metadata_db`wird ein Cache mit den vorherigen Metadatenwerten gespeichert - Sie können diesen Cache löschen, um `cfn-hup` zu zwingen, alle `post.add` -Aktionen erneut auszuführen.


| Name | Description | Erforderlich | 
| --- | --- | --- | 
|   `hookname`   |  Eine eindeutige Bezeichnung für diesen Hook. *Typ:* Zeichenfolge  |  Ja  | 
|   `triggers`   |  Eine durch Komma getrennte Liste der zu erkennenden Bedingungen. *Gültige Werte*: `post.add`, `post.update`, oder `post.remove` *Beispiel*: `post.add, post.update`  |  Ja  | 
|   `path`   |  Der Pfad zum Metadatenobjekt. Unterstützt einen willkürlich tiefen Pfad im Metadaten-Block.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AWSCloudFormation/latest/TemplateReference/cfn-hup.html)  |  Ja  | 
|   `action`   |  Ein frei wählbarer Shell-Befehl, der wie angegeben ausgeführt wird.  |  Ja  | 
|   `runas`   |  Ein Benutzer, unter dem die Befehle ausgeführt werden sollen. `cfn-hup` verwendet den Befehl su, um zu diesem Benutzer zu wechseln.  |  Ja  | 

## `hooks.d`Verzeichnis
<a name="cfn-hup-hooks-dir"></a>

Um die Zusammenstellung mehrerer Anwendungen zu unterstützen, die Änderungsbenachrichtigungs-Hooks einsetzen, unterstützt `cfn-hup` ein Verzeichnis namens `hooks.d` , das sich im Konfigurationsverzeichnis für die Hooks befindet. Sie können eine oder mehrere zusätzliche Hooks-Konfigurationsdateien im Verzeichnis `hooks.d` ablegen. Die zusätzlichen Hooks-Dateien müssen das gleiche Layout wie die `hooks.conf` -Datei verwenden.

Der `cfn-hup` -Daemon parst und lädt jede Datei in diesem Verzeichnis. Wenn ein Hook im Verzeichnis `hooks.d` den gleichen Namen hat wie ein Hook in `hooks.conf`, werden die Hooks zusammengeführt (d.h. `hooks.d` überschreibt `hooks.conf` für alle Werte, die in beiden Dateien angegeben sind).

## Beispiele
<a name="cfn-hup-examples"></a>

In den folgenden Beispielen CloudFormation wird die `cfn-auto-reloader.conf` Hooks-Datei ausgelöst, wenn Sie die `AWS::CloudFormation::Init` Ressource ändern, die der `LaunchConfig` Ressource zugeordnet ist.

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

```
...
    "LaunchConfig": {
      "Type" : "AWS::AutoScaling::LaunchConfiguration",
      "Metadata" : {
        "AWS::CloudFormation::Init" : {
...
              "/etc/cfn/hooks.d/cfn-auto-reloader.conf": {
                "content": { "Fn::Join": [ "", [
                  "[cfn-auto-reloader-hook]\n",
                  "triggers=post.update\n",
                  "path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n",
                  "action=/opt/aws/bin/cfn-init -v ",
                          "         --stack ", { "Ref" : "AWS::StackName" },
                          "         --resource LaunchConfig ",
                          "         --configsets wordpress_install ",
                          "         --region ", { "Ref" : "AWS::Region" }, "\n",
                  "runas=root\n"
                ]]},          
                "mode"  : "000400",
                "owner" : "root",
                "group" : "root"
              }
...
```

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

```
...
  LaunchConfig:
    Type: AWS::AutoScaling::LaunchConfiguration
    Metadata:
      AWS::CloudFormation::Init:
...
            /etc/cfn/hooks.d/cfn-auto-reloader.conf:
              content: !Sub |
                [cfn-auto-reloader-hook]
                triggers=post.update
                path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init
                action=/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --configsets wordpress_install --region ${AWS::Region}
                runas=root
              mode: "000400"
              owner: "root"
              group: "root"
...
```

## Zugehörige Ressourcen
<a name="cfn-hup-related-resources"></a>

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 verwenden`cfn-hup`, 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) 