

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.

# Transformation Amazon EventBridge Amazon-Eingaben
<a name="eb-transform-target-input"></a>

Sie können den Text eines [Ereignisses](eb-events.md) anpassen, bevor EventBridge die Informationen an das [Ziel](eb-targets.md) einer [Regel](eb-rules.md) weitergegeben werden. Mithilfe des Eingabe-Transformators in der Konsole oder der API definieren Sie Variablen, die den JSON-Pfad verwenden, um auf Werte in der ursprünglichen Ereignisquelle zu verweisen. Das transformierte Ereignis wird anstelle des ursprünglichen Ereignisses an ein Ziel gesendet. [Dynamische Pfadparameter](eb-targets.md#dynamic-path-parameters) müssen jedoch auf das ursprüngliche Ereignis verweisen, nicht auf das transformierte Ereignis. Sie können bis zu 100 Variablen definieren und dabei jeder einen Wert aus der Eingabe zuweisen. Anschließend können Sie diese Variablen in der *Eingabevorlage* als < *variable-name* > verwenden. 

Ein Tutorial zur Verwendung des Eingabe-Transformators finden Sie unter [Tutorial: Verwenden Sie Eingangstransformatoren, um Ereignisse zu transformieren in EventBridge](eb-input-transformer-tutorial.md).

**Anmerkung**  
EventBridge unterstützt nicht die gesamte JSON-Pfad-Syntax und wertet sie zur Laufzeit aus. Die unterstützte Syntax umfasst:   
Punktnotation (zum Beispiel `$.detail`)
Bindestriche
Unterstriche
Alphanumerische Zeichen
Array-Indizes
Platzhalter (\$1)
Schrägstriche

**Topics**
+ [Vordefinierte Variablen](#eb-transform-input-predefined)
+ [Beispiele für die Eingabetransformation](#eb-transform-input-examples)
+ [Transformieren von Eingaben mithilfe der EventBridge API](#eb-transform-input-api)
+ [Transformieren von Eingaben mithilfe von AWS CloudFormation](#eb-transform-input-cfn)
+ [Häufige Probleme beim Transformieren von Eingaben](#eb-transform-input-issues)
+ [Konfiguration eines Eingangstransformators beim Erstellen einer Regel in EventBridge](eb-transform-input-rule.md)
+ [Testen eines Zieleingangstransformators mit der EventBridge Sandbox](eb-sandbox-input-trans.md)

## Vordefinierte Variablen
<a name="eb-transform-input-predefined"></a>

Es gibt vordefinierte Variablen, die Sie verwenden können, ohne einen JSON-Pfad zu definieren. Diese Variablen sind reserviert und Sie können keine Variablen mit diesen Namen erstellen:
+ ****`aws.events.rule-arn`— Der Amazon-Ressourcenname (ARN) der EventBridge Regel. 
+ ****`aws.events.rule-name`— Der Name der EventBridge Regel. 
+ ****`aws.events.event.ingestion-time`— Die Uhrzeit, zu der die Veranstaltung bei eingegangen ist EventBridge. Dies ist ein ISO-8601-Zeitstempel. Diese Variable wird von generiert EventBridge und kann nicht überschrieben werden.
+ ****`aws.events.event` – Die ursprüngliche Ereignisnutzlast als JSON (ohne das `detail`-Feld) Kann nur als Wert für ein JSON-Feld verwendet werden, da dessen Inhalt nicht durch Escape-Zeichen geschützt ist
+ ****`aws.events.event.json` – Die gesamte ursprüngliche Ereignisnutzlast als JSON (mit dem `detail`-Feld) Kann nur als Wert für ein JSON-Feld verwendet werden, da dessen Inhalt nicht durch Escape-Zeichen geschützt ist

## Beispiele für die Eingabetransformation
<a name="eb-transform-input-examples"></a>

Im Folgenden sehen Sie ein Amazon-EC2-Beispielereignis.

```
{
  "version": "0",
  "id": "7bf73129-1428-4cd3-a780-95db273d1602",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "123456789012",
  "time": "2015-11-11T21:29:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111"
  ],
  "detail": {
    "instance-id": "i-0123456789",
    "state": "RUNNING"
  }
}
```

Wenn Sie eine Regel in der Konsole definieren, wählen Sie die Option **Input Transformer** unter **Configure input (Eingabe konfigurieren)** aus. Diese Option zeigt zwei Textfelder an: eines für den *Input Path (Eingabepfad)* und eines für die *Input Template (Eingabevorlage)*.

### Eingabepfad
<a name="eb-transform-target-input-path"></a>

Der *Eingabepfad* wird verwendet, um Variablen zu definieren. Verwenden Sie den JSON-Pfad, um auf Elemente in Ihrem Ereignis zu verweisen und diese Werte in Variablen zu speichern. Sie könnten beispielsweise einen *Eingabepfad* erstellen, um auf Werte in dem Beispielereignis zu verweisen, indem Sie Folgendes in das erste Textfeld eingeben. Sie können auch Klammern und Indizes verwenden, um Elemente aus Arrays abzurufen.

**Anmerkung**  
EventBridge ersetzt Eingangstransformatoren zur Laufzeit, um eine gültige JSON-Ausgabe sicherzustellen. Setzen Sie aus diesem Grund Variablen, die auf JSON-Pfadparameter verweisen, in Anführungszeichen, Variablen, die sich auf JSON-Objekte oder -Arrays beziehen, jedoch nicht in Anführungszeichen.

```
{
  "timestamp" : "$.time",
  "instance" : "$.detail.instance-id", 
  "state" : "$.detail.state",
  "resource" : "$.resources[0]"
}
```

Damit werden vier Variablen definiert, `<timestamp>`, `<instance>`, `<state>` und `<resource>`. Sie können auf diese Variablen beim Erstellen Ihrer *Eingabevorlage* verweisen.

**Anmerkung**  
Amazon CloudWatch Logs und SSM-Ziele unterstützen die Verwendung von `Input` und `InputPath` in ihren Eingangstransformatoren nicht.

### Eingabevorlage
<a name="eb-transform-target-input-template"></a>

Die *Eingabevorlage* ist eine Vorlage für die Informationen, die Sie an Ihr Ziel übergeben möchten. Sie können eine Vorlage erstellen, die entweder eine Zeichenfolge oder JSON an das Ziel übergibt. Unter Verwendung des vorherigen Ereignisses und *Eingabepfads* wird das Ereignis in den folgenden Beispielen für *Eingabevorlagen* in die Beispielausgabe transformiert, bevor es an ein Ziel weitergeleitet wird.


| Description | Vorlage | Ausgabe | 
| --- | --- | --- | 
| Einfache Zeichenfolge |  <pre>"instance <instance> is in <state>"</pre> |  <pre>"instance i-0123456789 is in RUNNING"</pre>  | 
|  **Zeichenfolge mit Anführungszeichen, die durch Escape-Zeichen geschützt sind**  |  <pre>"instance \"<instance>\" is in <state>"</pre> |  <pre>"instance \"i-0123456789\" is in RUNNING"</pre> Beachten Sie, dass dies das Verhalten in der EventBridge Konsole ist. In der AWS CLI werden die Schrägstriche durch Escape-Zeichen geschützt. Das Ergebnis lautet `"instance "i-0123456789" is in RUNNING"`.  | 
|  **Einfache JSON**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": <state><br />}</pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": "RUNNING"<br />}</pre>  | 
|  **JSON mit Zeichenfolgen und Variablen**  |  <pre>{<br /> "instance" : <instance>,<br /> "state": "<state>",<br /> "instanceStatus": "instance \"<instance>\" is in <state>"<br />}</pre>  |  <pre>{<br /> "instance" : "i-0123456789",<br /> "state": "RUNNING",<br /> "instanceStatus": "instance \"i-0123456789\" is in RUNNING"<br />}</pre>  | 
|  **JSON mit einer Mischung aus Variablen und statischen Informationen**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": [ 9, <state>, true ],<br />  "Transformed" : "Yes"<br />}<br /></pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": [<br />    9,<br />    "RUNNING",<br />    true<br />  ],<br />  "Transformed" : "Yes"<br />}</pre>  | 
|  **Einbeziehen von reservierten Variablen in JSON**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": <state>,<br />  "ruleArn" : <aws.events.rule-arn>,<br />  "ruleName" : <aws.events.rule-name>,<br />  "originalEvent" : <aws.events.event.json><br />}</pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": "RUNNING",<br />  "ruleArn" : "arn:aws:events:us-east-2:123456789012:rule/example",<br />  "ruleName" : "example",<br />  "originalEvent" : {<br />    ... // commented for brevity<br />  }<br />}</pre>  | 
|  **Einbeziehen von reservierten Variablen in eine Zeichenfolge**  | <pre>"<aws.events.rule-name> triggered"</pre> |  <pre>"example triggered"</pre>  | 
|  ** CloudWatch Amazon-Protokollgruppe**  | <pre>{<br />  "timestamp" : <timestamp>,<br />  "message": "instance \"<instance>\" is in <state>"<br />}</pre> |  <pre>{<br />  "timestamp" : 2015-11-11T21:29:54Z,<br />  "message": "instance "i-0123456789" is in RUNNING<br />}</pre>  | 

## Transformieren von Eingaben mithilfe der EventBridge API
<a name="eb-transform-input-api"></a>

Informationen zur Verwendung der EventBridge API zur Transformation von Eingaben finden Sie unter [Verwenden von Input Transformer, um Daten aus einem Ereignis zu extrahieren und diese Daten in das Ziel einzugeben](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html#API_PutTargets_Example_2).

## Transformieren von Eingaben mithilfe von AWS CloudFormation
<a name="eb-transform-input-cfn"></a>

Hinweise zur Verwendung AWS CloudFormation zum Transformieren von Eingaben finden Sie unter [AWS::Events::Rule InputTransformer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html).

## Häufige Probleme beim Transformieren von Eingaben
<a name="eb-transform-input-issues"></a>

Dies sind einige häufig auftretende Probleme bei der Transformation von Eingaben in EventBridge:
+  Für Zeichenfolgen sind Anführungszeichen erforderlich.
+  Beim Erstellen des JSON-Pfads für Ihre Vorlage erfolgt keine Validierung.
+  Wenn Sie eine Variable angeben, die einem JSON-Pfad entspricht, der im Ereignis nicht vorhanden ist, wird diese Variable nicht erstellt und nicht in der Ausgabe angezeigt.
+ JSON-Eigenschaften wie `aws.events.event.json` können nur als Wert eines JSON-Felds verwendet werden, nicht inline in anderen Zeichenfolgen.
+  EventBridge maskiert Werte, die vom *Eingabepfad* extrahiert wurden, nicht, wenn die *Eingabevorlage* für ein Ziel gefüllt wird.
+ Wenn ein JSON-Pfad auf ein JSON-Objekt oder ein JSON-Array verweist, die Variable jedoch in einer Zeichenfolge referenziert wird, werden alle internen Anführungszeichen EventBridge entfernt, um sicherzustellen, dass eine gültige Zeichenfolge vorliegt. Bei einer Variablen, auf die `<detail>` verwiesen wird`$.detail`, <detail>würde „Detail is“ beispielsweise dazu führen, dass Anführungszeichen aus dem Objekt EventBridge entfernt werden. 

  Wenn Sie also ein JSON-Objekt ausgeben möchten, das auf einer einzelnen JSON-Pfadvariablen basiert, müssen Sie es als Schlüssel platzieren. In diesem Beispiel `{"detail": <detail>}`.
+ Für Variablen, die Zeichenfolgen darstellen, sind keine Anführungszeichen erforderlich. Sie sind zulässig, fügen aber während der Transformation EventBridge automatisch Anführungszeichen zu Zeichenkettenvariablenwerten hinzu, um sicherzustellen, dass es sich bei der Transformationsausgabe um ein gültiges JSON-Format handelt. EventBridge fügt Variablen, die JSON-Objekte oder -Arrays darstellen, keine Anführungszeichen hinzu. Fügen Sie für Variablen, die JSON-Objekte oder -Arrays darstellen, keine Anführungszeichen hinzu.

  Die folgende Eingabevorlage enthält beispielsweise Variablen, die sowohl Zeichenfolgen als auch JSON-Objekte darstellen:

  ```
  {
    "ruleArn" : <aws.events.rule-arn>,
    "ruleName" : <aws.events.rule-name>,
    "originalEvent" : <aws.events.event.json>
  }
  ```

  Das Ergebnis ist gültiges JSON mit den richtigen Anführungszeichen:

  ```
  {
    "ruleArn" : "arn:aws:events:us-east-2:123456789012:rule/example",
    "ruleName" : "example",
    "originalEvent" : {
      ... // commented for brevity
    }
  }
  ```
+ Bei (Nicht-JSON-) Textausgabe als mehrzeilige Zeichenfolgen setzen Sie jede einzelne Zeile in Ihrer Eingabevorlage in doppelte Anführungszeichen. 

  Wenn Sie beispielsweise [Amazon Inspector Finding-Ereignisse](https://docs.aws.amazon.com/inspector/latest/user/eventbridge-integration.html#event-finding) mit dem folgenden Ereignismuster abgleichen würden:

  ```
  {
    "detail": {
      "severity": ["HIGH"],
      "status": ["ACTIVE"]
    },
    "detail-type": ["Inspector2 Finding"],
    "source": ["inspector2"]
  }
  ```

  Und mit dem folgenden Eingabepfad:

  ```
  {
    "account": "$.detail.awsAccountId",
    "ami": "$.detail.resources[0].details.awsEc2Instance.imageId",
    "arn": "$.detail.findingArn",
    "description": "$.detail.description",
    "instance": "$.detail.resources[0].id",
    "platform": "$.detail.resources[0].details.awsEc2Instance.platform",
    "region": "$.detail.resources[0].region",
    "severity": "$.detail.severity",
    "time": "$.time",
    "title": "$.detail.title",
    "type": "$.detail.type"
  }
  ```

  Sie könnten die folgende Eingabevorlage verwenden, um eine mehrzeilige Zeichenkettenausgabe zu generieren:

  ```
  "<severity> severity finding <title>"
  "Description: <description>"
  "ARN: \"<arn>\""
  "Type: <type>"
  "AWS Account: <account>"
  "Region: <region>"
  "EC2 Instance: <instance>"
  "Platform: <platform>"
  "AMI: <ami>"
  ```