

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.

# Senken-Deklarationen
<a name="sink-object-declarations"></a>

*Senken-Deklarationen* geben an, wo und in welcher Form Protokolle, Ereignisse und Metriken an verschiedene AWS-Services gesendet werden sollen. Die folgenden Abschnitte beschreiben Konfigurationen für die integrierten Senken-Typen, die in Amazon Kinesis Agent für Microsoft Windows verfügbar sind. Da Kinesis Agent für Windows erweiterbar ist, können Sie benutzerdefinierte Senkentypen hinzufügen. Jeder Senkentyp erfordert in der Regel eindeutige Schlüssel-Wert-Paare in den Konfigurationsdeklarationen, die für diesen Senkentyp relevant sind.

Alle Senken-Deklarationen können die folgenden Schlüssel-Wert-Paare enthalten:

`Id`  
Eine eindeutige Zeichenfolge, die eine bestimmtes Senke innerhalb der Konfigurationsdatei identifiziert (erforderlich).

`SinkType`  
Der Name des Senkentyps für diese Senke (erforderlich). Der Senkentyp gibt das Ziel der Protokoll-, Ereignis- oder Metrikdaten an, die von dieser Senke gestreamt werden. 

`AccessKey`  
Gibt den AWS Zugriffsschlüssel an, der bei der Autorisierung des Zugriffs auf den AWS-Service verwendet werden soll, der diesem Senkentyp zugeordnet ist. Dieses Schlüssel-Wert-Paar ist optional. Weitere Informationen finden Sie unter [Senken-Sicherheitskonfiguration](#configuring-kinesis-agent-windows-sink-security-configuration).

`SecretKey`  
Gibt den geheimen AWS schlüssel an, der bei der Autorisierung des Zugriffs auf den AWS-Service verwendet werden soll, der diesem Senkentyp zugeordnet ist. Dieses Schlüssel-Wert-Paar ist optional. Weitere Informationen finden Sie unter [Senken-Sicherheitskonfiguration](#configuring-kinesis-agent-windows-sink-security-configuration).

`Region`  
Gibt an, in welcher AWS-Region sich die Ziel-Ressourcen für das Streaming befinden. Dieses Schlüssel-Wert-Paar ist optional.

`ProfileName`  
Gibt an, welches AWS-Profil für die Authentifizierung verwendet wird. Dieses Schlüssel-Wert-Paar ist optional. Wenn es verwendet wird, überschreibt es jedoch alle angegebenen Zugriffsschlüssel und geheimen Schlüssel. Weitere Informationen finden Sie unter [Senken-Sicherheitskonfiguration](#configuring-kinesis-agent-windows-sink-security-configuration).

`RoleARN`  
Gibt die IAM-Rolle an, die beim Zugriff auf den AWS -Service verwendet werden soll, der dem Senkentyp zugeordnet ist. Diese Option ist nützlich, wenn Kinesis Agent für Windows auf einer EC2-Instance ausgeführt wird, eine andere Rolle aber besser geeignet wäre, als die Rolle, auf die das Instance-Profil verweist. Beispiel: Eine kontoübergreifende Rolle kann verwendet werden, um auf Ressourcen abzuzielen, die sich nicht in demselben AWS-Konto wie die EC2-Instance befinden. Dieses Schlüssel-Wert-Paar ist optional.

`Format`  
Gibt die Art der Serialisierung an, die vor dem Streaming auf Protokolle und Ereignisdaten angewendet wird. Gültige Werte sind `json` und `xml`. Diese Option ist hilfreich, wenn für Downstream-Analysen in der Daten-Pipeline Daten in einem bestimmten Format erforderlich sind oder bevorzugt werden. Dieses Schlüssel-Wert-Paar ist optional. Wenn es nicht angegeben wird, wird normaler Text aus der Quelle von der Senke zum AWS-Service gestreamt, der der Senke zugeordnet ist.

`TextDecoration`  
Wenn kein `Format` angegeben wird, legt `TextDecoration` fest, welcher zusätzlichen Text eingeschlossen werden sollte, wenn Protokoll- oder Ereignisdatensätze gestreamt werden. Weitere Informationen finden Sie unter [Konfigurieren von Senken-Ausstattungen](#configuring-kinesis-agent-windows-decoration-configuration). Dieses Schlüssel-Wert-Paar ist optional.

`ObjectDecoration`  
Wenn angegeben `Format` wird, legt `ObjectDecoration` fest, welche zusätzlichen Daten vor der Serialisierung und dem Streaming in den Protokoll- oder Ereignisdatensatz eingeschlossen werden. Weitere Informationen finden Sie unter [Konfigurieren von Senken-Ausstattungen](#configuring-kinesis-agent-windows-decoration-configuration). Dieses Schlüssel-Wert-Paar ist optional.

`BufferInterval`  
Um API-Aufrufe des dem Senkentyp zugeordneten AWS-Service auf ein Minimum zu reduzieren, puffert Kinesis Agent für Windows mehrere Protokoll-, Ereignis- oder Metrik-Datensätze vor dem Streamen. Dies kann bei Services Kosten sparen, die pro API-Aufruf eine Gebühr berechnen. `BufferInterval` gibt die maximale Zeitspanne (in Sekunden) an, über die hinweg Datensätze gepuffert werden sollten, bevor sie an den AWS-Service gestreamt werden. Dieses Schlüssel-Wert-Paar ist optional. Falls es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Zeichenfolge. 

`BufferSize`  
Um API-Aufrufe des dem Senkentyp zugeordneten AWS-Service auf ein Minimum zu reduzieren, puffert Kinesis Agent für Windows mehrere Protokoll-, Ereignis- oder Metrik-Datensätze vor dem Streamen. Dies kann bei Services Kosten sparen, die pro API-Aufruf eine Gebühr berechnen. `BufferSize` gibt die maximale Anzahl von Datensätzen an, die vor dem Streamen an den AWS-Service gepuffert werden sollen. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Zeichenfolge.

`MaxAttempts`  
Gibt an, wie oft maximal versucht Kinesis einen Satz von Protokoll-, Ereignis- und Metrik-Datensätzen an einen AWS -Service zu streamen, wenn beim Streaming konsistent Fehler auftreten. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Zeichenfolge. Der Standardwert lautet "`3`".

Beispiele für vollständige Konfigurationsdateien, die verschiedene Arten von Senken verwenden, finden Sie unter [Streamen aus dem Windows-Anwendungsereignisprotokoll an Senken](configuring-kaw-examples.md#configuring-kaw-examples-sinks).

**Topics**
+ [`KinesisStream`-Senken-Konfiguration](#sink-object-declarations-kinesis-stream)
+ [`KinesisFirehose`-Senken-Konfiguration](#sink-object-declarations-kinesis-firehose)
+ [Konfiguration der CloudWatch Senken-Konfiguration](#sink-object-declarations-cloud-watch)
+ [`CloudWatchLogs`-Senken-Konfiguration](#sink-object-declarations-cloud-watch-logs)
+ [Local`FileSystem`-Senken-Konfiguration](#sink-object-declarations-local-filesystem)
+ [Senken-Sicherheitskonfiguration](#configuring-kinesis-agent-windows-sink-security-configuration)
+ [Konfigurieren`ProfileRefreshingAWSCredentialProvider`So aktualisieren Sie AWS Credentials](#configuring-credential-refresh)
+ [Konfigurieren von Senken-Ausstattungen](#configuring-kinesis-agent-windows-decoration-configuration)
+ [Konfigurieren von Senken-Variablensubstitutionen](#configuring-kinesis-agent-windows-sink-variable-substitution)
+ [Konfigurieren der Senken-Warteschlange](#configuring-kinesis-agent-windows-queuing)
+ [Konfigurieren eines Proxys für Senken](#configuring-kinesis-agent-windows-sink-proxy)
+ [Konfigurieren von Auflösungsvariablen in mehr Senken-Attributen](#configuring-resolving-variables)
+ [Konfigurieren regionaler AWS STS Endpunkte bei Verwendung der RoleARN -Eigenschaft in AWS S-Senks](#configuring-sts-endpoints)
+ [Konfigurieren von VPC Endpoint für AWS -Senks](#configuring-vpc-endpoint)
+ [Konfigurieren einer alternativen Methode für Proxy](#configuring-alternate-proxy)

## `KinesisStream`-Senken-Konfiguration
<a name="sink-object-declarations-kinesis-stream"></a>

Die`KinesisStream`Der -Senkentyp streamt Protokolldatensätze und Ereignisse an den Kinesis Data Streams -Service. Daten, die an Kinesis Data Streams gestreamt werden, werden üblicherweise von einer oder mehreren benutzerdefinierten Anwendungen verarbeitet, die mit verschiedenen AWS -Services ausgeführt werden. Die Daten werden an einen benannten Stream gestreamt, der mit Kinesis Data Streams konfiguriert wird. Weitere Informationen finden Sie im .*[Amazon Kinesis Data Streams Entwicklerhandbuch](https://docs.aws.amazon.com/streams/latest/dev/)*. 

Es folgt ein Beispiel für eine -Senken-Deklaration von Kinesis Data Streams:

```
{
    "Id": "TestKinesisStreamSink",
    "SinkType": "KinesisStream",
    "StreamName": "MyTestStream",
    "Region": "us-west-2"
}
```

Alle `KinesisStream`-Senken-Deklarationen können die folgenden zusätzlichen Schlüssel-Wert-Paare angeben:

`SinkType`  
Muss angegeben werden, und der Wert muss die Literalzeichenfolge `KinesisStream` sein.

`StreamName`  
Gibt den Namen des Kinesis Daten-Streams an, der die vom`KinesisStream`Spüle Typ (erforderlich). Bevor Sie die Daten streamen, konfigurieren Sie den Stream in der AWS Management Console, der AWS-CLI oder über eine Anwendung unter Verwendung der Kinesis Data Streams -API.

`RecordsPerSecond`  
Gibt die maximale Anzahl Kinesis Data Streams an. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Ganzzahl. Der Standardwert ist 1000 Datensätze.

`BytesPerSecond`  
Gibt die maximale Anzahl der pro Sekunde Kinesis Data Streams. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Ganzzahl. Der Standardwert lautet 1 MB.

Der Standardwert `BufferInterval` für diesen Senkentyp beträgt 1 Sekunde, und der Standardwert `BufferSize` ist 500 Datensätze.

## `KinesisFirehose`-Senken-Konfiguration
<a name="sink-object-declarations-kinesis-firehose"></a>

Die`KinesisFirehose`Der -Senkentyp streamt Protokolldatensätze und Ereignisse an den Kinesis Data Firehose -Service. Kinesis Data Firehose stellt die gestreamten Daten für die Speicherung an andere Services bereit. Die gespeicherten Daten werden dann gewöhnlich in nachfolgenden Phasen der Daten-Pipeline analysiert. Die Daten werden an einen benannten Bereitstellungs-Stream gestreamt, der mit Kinesis Data Firehose konfiguriert wird. Weitere Informationen finden Sie im .*[Amazon Kinesis Data Firehose Entwicklerhandbuch](https://docs.aws.amazon.com/firehose/latest/dev/)*. 

Es folgt ein Beispiel für eine Kinesis Data Firehose Deklaration:

```
{
   "Id": "TestKinesisFirehoseSink",
   "SinkType": "KinesisFirehose",
   "StreamName": "MyTestFirehoseDeliveryStream",
   "Region": "us-east-1",
   "CombineRecords": "true"
}
```

Alle `KinesisFirehose`-Senken-Deklarationen können die folgenden zusätzlichen Schlüssel-Wert-Paare angeben:

`SinkType`  
Muss angegeben werden, und der Wert muss die Literalzeichenfolge `KinesisFirehose` sein.

`StreamName`  
Gibt den Namen des Kinesis Data Firehose Bereitstellungs-Streams an, der die vom`KinesisStream`Spüle Typ (erforderlich). Bevor Sie die Daten streamen, konfigurieren Sie den Bereitstellungs-Stream mithilfe der AWS Management Console, der AWS-CLI oder über eine Anwendung unter Verwendung der Kinesis Data Firehose -API. 

`CombineRecords`  
Wenn auf`true`, legt fest, dass mehrere kleine Datensätze zu einem großen Datensatz mit einer maximalen Größe von 5 KB kombiniert werden sollen. Dieses Schlüssel-Wert-Paar ist optional. Datensätze, die mit dieser Funktion kombiniert werden, werden durch`\n`. Wenn Sie AWS Lambda zum Umwandeln eines Kinesis Data Firehose Datensatzes verwenden, muss Ihre Lambda Funktion das Trennzeichen berücksichtigen.

`RecordsPerSecond`  
Gibt die maximale Anzahl der pro Sekunde Kinesis Data Streams. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Ganzzahl. Der Standardwert ist 5000 Datensätze.

`BytesPerSecond`  
Gibt die maximale Anzahl der pro Sekunde Kinesis Data Streams. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Ganzzahl. Der Standardwert lautet 5 MB.

Der Standardwert `BufferInterval` für diesen Senkentyp beträgt 1 Sekunde, und der Standardwert `BufferSize` ist 500 Datensätze.

## Konfiguration der CloudWatch Senken-Konfiguration
<a name="sink-object-declarations-cloud-watch"></a>

Die`CloudWatch`Senkentyp streamt Metriken an den CloudWatch Service. Sie können die Metriken in der AWS Management Console anzeigen. Weitere Informationen finden Sie im *[Amazon CloudWatch-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)*.

Es folgt ein Beispiel für eine `CloudWatch`-Senken-Deklaration:

```
{
   "Id": "CloudWatchSink",
   "SinkType": "CloudWatch"
}
```

Alle `CloudWatch`-Senken-Deklarationen können die folgenden zusätzlichen Schlüssel-Wert-Paare angeben:

`SinkType`  
Muss angegeben werden, und der Wert muss die Literalzeichenfolge `CloudWatch` sein.

`Interval`  
Gibt an, wie häufig (in Sekunden) Kinesis Agent für Windows Metriken an den CloudWatch Dienst meldet. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, verwenden Sie zum Repräsentieren des Wertes eine Ganzzahl. Der Standardwert liegt bei 60 Sekunden. Geben Sie 1 Sekunde an, wenn Sie hochauflösende CloudWatch Metriken wünschen.

`Namespace`  
Gibt den CloudWatch Namespace an, in dem die Metrikdaten gemeldet werden. CloudWatch Namespaces gruppieren einen Satz von Metriken zusammen. Dieses Schlüssel-Wert-Paar ist optional. Der Standardwert ist `KinesisTap`.

`Dimensions`  
Gibt die CloudWatch Dimensionen an, die verwendet werden, um Metrikgruppen in einem Namespace zu isolieren. Dies kann nützlich sein, um z. B. für jeden Desktop oder Server separate Sätze von Metrikdaten bereitzustellen. Dieses Schlüssel-Wert-Paar ist optional. Wenn es angegeben wird, muss der Wert das folgende Format aufweisen: `"`*Schlüssel1*`=`*Wert1*;*Schlüssel2*`=`*Wert2...*`"`. Der Standardwert ist `"ComputerName={computername};InstanceId={instance_id}"`. Dieser Wert unterstützt die Ersetzung von Senken-Variablen. Weitere Informationen finden Sie unter [Konfigurieren von Senken-Variablensubstitutionen](#configuring-kinesis-agent-windows-sink-variable-substitution).

`MetricsFilter`  
Gibt an, welche Metriken aus der integrierten Kinesis Agent für Windows--Metrikenquelle an CloudWatch an. Weitere Informationen zur integrierten Kinesis Agent für Windows-Metrikenquelle, einschließlich der Details der Syntax des Wertes dieses Schlüssel-Wert-Paars finden Sie unter[Integrierte Quelle von Kinesis Agent für Windows -Metriken: Quelle](source-object-declarations.md#kinesis-agent-builin-metrics-source).

## `CloudWatchLogs`-Senken-Konfiguration
<a name="sink-object-declarations-cloud-watch-logs"></a>

Die`CloudWatchLogs`Der -Senkentyp streamt Protokolldatensätze und Ereignisse an Amazon CloudWatch Logs. Sie können Protokolle in der AWS Management Console anzeigen oder sie über zusätzliche Phasen einer Daten-Pipeline verarbeiten. Die Daten werden an einen benannten Protokollstream gestreamt, der in CloudWatch Logs konfiguriert ist. Protokollstreams sind als benannte Protokollgruppen angeordnet. Weitere Informationen finden Sie im .*[Benutzerhandbuch für Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)*.

Es folgt ein Beispiel für eine CloudWatch Logs enken-Deklaration:

```
{
   "Id": "MyCloudWatchLogsSink",
   "SinkType": "CloudWatchLogs",
   "BufferInterval": "60",
   "BufferSize": "100",
   "Region": "us-west-2",
   "LogGroup": "MyTestLogGroup",
   "LogStream": "MyTestStream"
}
```

Alle `CloudWatchLogs`-Senken-Deklarationen müssen die folgenden zusätzlichen Schlüssel-Wert-Paare angeben:

`SinkType`  
Muss die Literalzeichenfolge `CloudWatchLogs` sein.

`LogGroup`  
Gibt den Namen der CloudWatch Logs Protokollgruppe an, die den Protokollstream enthält, der die vom der gestreamten Protokoll- und Ereignisdatensätze erhält.`CloudWatchLogs`Spüle Typ. Wenn die angegebene Protokollgruppe nicht vorhanden Kinesis versucht, sie zu erstellen. 

`LogStream`  
Gibt den Namen des CloudWatch Logs Streams an, der den Protokoll- und Ereignisdatensätze erhält.`CloudWatchLogs`Spüle Typ. Dieser Wert unterstützt die Ersetzung von Senken-Variablen. Weitere Informationen finden Sie unter [Konfigurieren von Senken-Variablensubstitutionen](#configuring-kinesis-agent-windows-sink-variable-substitution). Wenn der angegebene Protokollstream nicht vorhanden Kinesis versucht, ihn zu erstellen. 

Der Standardwert `BufferInterval` für diesen Senkentyp beträgt 1 Sekunde, und der Standardwert `BufferSize` ist 500 Datensätze. Die maximale Puffergröße ist 10.000 Datensätze.

## Local`FileSystem`-Senken-Konfiguration
<a name="sink-object-declarations-local-filesystem"></a>

Der Typ der Spüle`FileSystem`speichert Protokoll- und Ereignisdatensätze in einer Datei im lokalen Dateisystem, anstatt sie an AWS -Services zu streamen.`FileSystem`Senken sind nützlich für Tests und Diagnostik. Sie können diesen Senken-Typ beispielsweise verwenden, um Datensätze zu untersuchen, bevor Sie sie an AWS senden.

mit`FileSystem`Senken können Sie auch Konfigurationsparameter verwenden, um Batching, Drosselung und Retry-on-Fehler zu simulieren, um das Verhalten der tatsächlichen AWS S-Senks nachzuahmen.

Alle Datensätze aus allen Quellen, die mit einem`FileSystem`sinken werden in der einzelnen Datei gespeichert, die als`FilePath`. Wenn`FilePath`Wenn nichts angegeben ist, werden Datensätze in eine Datei mit dem Namen gespeichert.`SinkId.txt`im`%TEMP%`Verzeichnis, das in der Regel`C:\Users\UserName\AppData\Local\Temp`wobei`SinkId`ist der eindeutige Bezeichner der Senken-und`UserName`ist der Windows-Benutzername des aktiven Benutzers.

Dieser Senkentyp unterstützt Textdekorationsattribute. Weitere Informationen finden Sie unter [Konfigurieren von Senken-Ausstattungen](#configuring-kinesis-agent-windows-decoration-configuration).

Ein Beispiel`FileSystem`Die -Senkentyp wird im folgenden Beispiel veranschaulicht.

```
{
	   "Id": "LocalFileSink",
	   "SinkType": "FileSystem",
	   "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt",
	   "Format": "json",
	   "TextDecoration": "",
	   "ObjectDecoration": ""
}
```

Die`FileSystem`Diese Konfiguration besteht aus den folgenden Schlüssel-Wert-Paaren.

`SinkType`  
Muss die Literalzeichenfolge `FileSystem` sein.

`FilePath`  
Gibt den Pfad und die Datei an, in der Datensätze gespeichert werden. Dieses Schlüssel-Wert-Paar ist optional. Wenn nichts angegeben ist, ist der Standardwert`TempPath\\SinkId.txt`wobei`TempPath`ist der Ordner, der im`%TEMP%`Variable und`SinkId`ist der eindeutige Bezeichner der Senke.

`Format`  
Gibt das Format des Ereignisses`json`oder .`xml`. Dieses Schlüssel-Wert-Paar ist optional und wird nicht zwischen Groß-/Kleinschreibung unterschieden Wenn nicht angegeben, werden Ereignisse im Nur-Text in die Datei geschrieben.

`TextDecoration`  
Gilt nur für Ereignisse, die im Nur-Text geschrieben wurden. Dieses Schlüssel-Wert-Paar ist optional.

`ObjectDecoration`  
Gilt nur für Ereignisse, bei denen`Format`wird auf gesetzt`json`. Dieses Schlüssel-Wert-Paar ist optional.

### Erweiterte Nutzung — Aufzeichnung von Drosselung und Fehlersimulation
<a name="file-system-sink-advanced"></a>

`FileSystem`kann das Verhalten von AWS S-Senks nachahmen, indem die Datensatzdrosselung simuliert wird. Sie können die folgenden Schlüssel-Wert-Paare verwenden, um Datensatzeinschränkungs- und Fehler-Simulationsattribute anzugeben.

Indem Sie eine Sperre für die Zieldatei anlegen und Schreibvorgänge verhindern, können Sie`FileSystem`Senken, um das Verhalten von AWS S-Senken zu simulieren und zu untersuchen, wenn das Netzwerk ausfällt.

Das folgende Beispiel zeigt einen`FileSystem`Konfiguration mit Simulationsattribute.

```
{
	   "Id": "LocalFileSink",
	   "SinkType": "FileSystem",
	   "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt",
	   "TextDecoration": "",
	   "RequestsPerSecond": "100",
    "BufferSize": "10",
    "MaxBatchSize": "1024"
}
```

`RequestsPerSecond`  
Optional und als String-Typ angegeben. Wenn dies nicht angegeben wird, ist der Standardwert`"5"`. Steuert die Rate der Anforderungen, die die Senke verarbeitet, d. h. in eine Datei schreibt, nicht die Anzahl der Datensätze. Kinesis Agent für Windows stellt Batch-Anforderungen an AWS Endpunkte, sodass eine Anforderung mehrere Datensätze enthält.

`BufferSize`  
Optional und als String-Typ angegeben. Gibt die maximale Anzahl von Ereignisdatensätzen an, die die Stapel vor dem Speichern in einer Datei versenken.

`MaxBatchSize`  
Optional und als String-Typ angegeben. Gibt die maximale Menge an Ereignisdatensatzdaten in Byte an, die die Stapel vor dem Speichern in Datei versenken.

Die maximale Datensatzratengrenze ist eine Funktion von`BufferSize`Gibt die maximale Anzahl der pro Anforderung an.`RequestsPerSecond`. Sie können die Datensatzratengrenze pro Sekunde mit der folgenden Formel berechnen.

**Recordrate**=`BufferSize`\$1`RequestsPerSecond`

Bei Konfigurationswerten im obigen Beispiel gibt es eine maximale Datensatzrate von 1000 Datensätzen pro Sekunde.

## Senken-Sicherheitskonfiguration
<a name="configuring-kinesis-agent-windows-sink-security-configuration"></a>

### Konfigurieren der Authentifizierung
<a name="configuring-kinesis-agent-windows-authentication"></a>

Damit Kinesis Agent für Windows Protokolle, Ereignisse und Metriken an AWS -Services streamt, muss der Zugriff authentifiziert werden. Es gibt verschiedene Möglichkeiten, Authentifizierung für Kinesis Agent für Windows bereitzustellen. Die jeweilige Methode hängt von der Situation ab, in der Kinesis Agent für Windows ausgeführt wird, und von den spezifischen Sicherheitsanforderungen für eine bestimmte Organisation.
+ Wenn Kinesis Agent für Windows auf einem Amazon EC2 Host ausgeführt wird, besteht die sicherste und einfachste Methode zur Bereitstellung von Authentifizierung darin, eine IAM-Rolle mit ausreichendem Zugriff auf die erforderlichen Operationen für die erforderlichen AWS -Services zu erstellen sowie ein EC2-Instance-Profil, mit dem auf diese Rolle verwiesen wird. Weitere Informationen zum Erstellen von Instance-Profilen finden Sie unter [Verwenden von Instance-Profilen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html). Weitere Informationen zu den an die IAM-Rolle anzufügenden Richtlinien finden Sie unter[Konfigurieren der Autorisierung](#configuring-kinesis-agent-windows-authorization). 

  Nachdem Sie das Instance-Profil erstellt haben, können Sie es beliebigen EC2-Instances zuordnen, die Kinesis Agent für Windows verwenden. Wenn Instances bereits ein Instance-Profil zugeordnet ist, können Sie die entsprechenden Richtlinien an die Rolle anfügen, die dem Instance-Profil zugewiesen ist.
+ Wenn Kinesis Agent für Windows auf einem EC2-Host in einem Konto ausführt, die Ressourcen, die Ziel der Senke sind, sich aber in einem anderen Konto befinden, können Sie eine IAM-Rolle für kontoübergreifenden Zugriff erstellen. Weitere Informationen finden Sie unter[Tutorial: Delegieren des Zugriffs in allen AWS Konten mithilfe von IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html). Nachdem Sie die kontoübergreifende Rolle erstellt haben, geben Sie den Amazon-Ressourcennamen (ARN) für die kontoübergreifende Rolle als Wert der`RoleARN`-Schlüssel-Wert-Paar in der Senken-Deklaration. Kinesis Agent für Windows versucht dann beim Zugriff auf AWS Ressourcen, die dem Senkentyp dieser Senke zugeordnet sind, die angegebene kontoübergreifende Rolle anzunehmen.
+ Wenn Kinesis Agent für Windows außerhalb von Amazon EC2 ausführt wird (z. B. lokal), sind mehrere Optionen vorhanden:
  + Wenn es akzeptabel ist, den lokalen Server oder Desktop als eine von Amazon EC2 Systems Manager verwaltete Instances zu registrieren, verfahren Sie zum Konfigurieren der Authentifizierung wie folgt:

    1. Verwenden Sie den unter [Einrichten von AWS Systems Manager in Hybridumgebungen](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html) beschriebenen Vorgang, um eine Servicerolle zu erstellen, eine Aktivierung für eine verwaltete Instance zu erstellen und den SSM-Agenten zu installieren.

    1. Fügen Sie der Servicerolle die entsprechenden Richtlinien an, damit Kinesis Agent für Windows auf die Ressourcen zugreifen kann, die zum Streamen von Daten aus den konfigurierten Senken benötigt werden. Weitere Informationen zu den an die IAM-Rolle anzufügenden Richtlinien finden Sie unter[Konfigurieren der Autorisierung](#configuring-kinesis-agent-windows-authorization).

    1. Verwenden Sie den unter[Konfigurieren`ProfileRefreshingAWSCredentialProvider`So aktualisieren Sie AWS Credentials](#configuring-credential-refresh)um AWS Anmeldeinformationen zu aktualisieren.

    Dies ist die empfohlene Vorgehensweise für Nicht-EC2-Instances, da Anmeldeinformationen sicher von SSM und AWS verwaltet werden.
  + Wenn es akzeptabel ist, den AWSKinesisTap-Service für Kinesis Agent für Windows unter einem bestimmten Benutzer anstelle des Standard-Systemkontos auszuführen, führen Sie das folgende Verfahren aus:

    1. Erstellen Sie einen IAM-Benutzer in dem AWS Konto, in dem die AWS-Services verwendet werden sollen. Erfassen Sie während des Erstellungsvorgangs den Zugriffsschlüssel und den geheimen Schlüssel des Benutzers. Diese Informationen werden später in diesem Verfahren benötigt.

    1. Fügen Sie Richtlinien an den IAM-Benutzer an, die den Zugriff auf die erforderlichen Vorgänge für die erforderlichen Services autorisieren. Weitere Informationen zu den an den IAM-Benutzer anzufügenden Richtlinien finden Sie unter[Konfigurieren der Autorisierung](#configuring-kinesis-agent-windows-authorization).

    1. Ändern Sie den AWSKinesisTap-Service auf jedem Desktop oder Server so ab, dass er anstatt unter dem Standard-Systemkonto unter einem bestimmten Benutzer ausgeführt wird.

    1. Erstellen Sie mittels des zuvor notierten Zugriffsschlüssels und geheimen Schlüssels ein Profil im SDK Store. Weitere Informationen finden Sie unter [Konfigurieren der AWS-Anmeldeinformationen](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html).

    1. Aktualisieren Sie die Datei `AWSKinesisTap.exe.config` im Verzeichnis `%PROGRAMFILES%\Amazon\AWSKinesisTap` so, dass der Name des im vorherigen Schritt erstellten Profils angegeben wird. Weitere Informationen finden Sie unter [Konfigurieren der AWS-Anmeldeinformationen](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html).

    Dies ist die empfohlene Vorgehensweise für Nicht-EC2-Hosts, bei denen es sich nicht um verwaltete Instances handeln kann, da die Anmeldeinformationen für den spezifischen Host und den spezifischen Benutzer verschlüsselt sind.
  + Wenn es erforderlich ist, den AWSKinesisTap-Service für Kinesis Agent für Windows unter dem Standard-Systemkonto auszuführen, müssen Sie eine freigegebene Datei mit den Anmeldeinformationen verwenden. Grund hierfür ist, dass das Systemkonto über kein Windows-Benutzerprofil zur Freigabe des SDK Store verfügt. Da freigegebene Anmeldeinformationsdateien nicht verschlüsselt sind, ist diese Vorgehensweise nicht zu empfehlen. Weitere Informationen zur Verwendung von freigegebenen Konfigurationsdateien finden Sie unter[Konfigurieren der AWS-Anmeldeinformationen](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html)im*AWS SDK für .NET*. Wenn Sie diese Methode verwenden, empfehlen wir die Verwendung von NTFS-Verschlüsselung und Beschränkung des Dateizugriffs auf die freigegebene Konfigurationsdatei. Die Schlüssel sollten von einer Verwaltungsplattform rotiert werden. Im Falle einer Schlüsselrotation muss die freigegebene Konfigurationsdatei aktualisiert werden.

Obwohl es möglich ist, direkt in der Senken-Deklarationen Zugriffsschlüssel und geheime Schlüssel bereitzustellen, wird hiervon abgeraten, da die Deklarationen nicht verschlüsselt sind.

### Konfigurieren der Autorisierung
<a name="configuring-kinesis-agent-windows-authorization"></a>

Fügen Sie die entsprechenden nachstehenden Richtlinien dem IAM-Benutzer oder der Rolle von an, die Kinesis Agent für Windows zum Streamen von Daten an AWS -Services verwendet:

#### Kinesis Data Streams
<a name="minimum-permissions-kinesis-stream"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "kinesis:PutRecord",
                "kinesis:PutRecords"
            ],
            "Resource": "arn:aws:kinesis:*:*:stream/*"
        }
    ]
}
```

Um die Autorisierung auf eine bestimmte Region, ein bestimmtes Konto oder einen bestimmten Stream-Namen zu begrenzen, ersetzen Sie das entsprechende Sternchen im ARN durch bestimmte Werte. Weitere Informationen finden Sie unter „Amazon-Ressourcennamen (ARNs) für Kinesis Data Streams“ unter [Steuern des Zugriffs auf Amazon Kinesis Data Streams-Ressourcen mithilfe von IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html). 

#### Kinesis Data Firehose
<a name="minimum-permissions-kinesis-firehose"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/*"
        }
    ]
}
```

Um die Autorisierung auf eine bestimmte Region, ein bestimmtes Konto oder einen bestimmten Bereitstellungs-Stream-Namen zu begrenzen, ersetzen Sie das entsprechende Sternchen im ARN durch bestimmte Werte. Weitere Informationen finden Sie unter[Steuern des Zugriffs mit Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)im*Amazon Kinesis Data Firehose Entwicklerhandbuch*.

#### CloudWatch
<a name="minimum-permissions-cloud-watch"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*"
        }
    ]
}
```

Weitere Informationen finden Sie unter[Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre CloudWatch Ressourcen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html)im*Benutzerhandbuch für Amazon CloudWatch Logs*. 

#### CloudWatch Logs mit einer vorhandenen Protokollgruppe und einem vorhandenen Protokollstream
<a name="minimum-permissions-cloud-watch-logs1"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:*"
        },
        {
            "Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": "logs:PutLogEvents",
            "Resource": "arn:aws:logs:*:*:log-group:*:*:*"
        }
    ]
}
```

Um den Zugriff auf eine bestimmte Region, ein bestimmtes Konto, eine bestimmte Protokollgruppe oder einen bestimmten Protokollstream einzuschränken, ersetzen Sie das entsprechende Sternchen in die ARNs durch die entsprechenden Werte. Weitere Informationen finden Sie unter[Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre CloudWatch Logs Ressourcen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html)im*Benutzerhandbuch für Amazon CloudWatch Logs*.

#### CloudWatch Logs mit zusätzlichen Berechtigungen für Kinesis Agent für Windows zum Erstellen von Protokollgruppen und Protokollstreams
<a name="minimum-permissions-cloud-watch-logs2"></a>

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor5",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:*"
        },
        {
            "Sid": "VisualEditor6",
            "Effect": "Allow",
            "Action": "logs:PutLogEvents",
            "Resource": "arn:aws:logs:*:*:log-group:*:*:*"
        },
        {
            "Sid": "VisualEditor7",
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "*"
        }
    ]
}
```

Um den Zugriff auf eine bestimmte Region, ein bestimmtes Konto, eine bestimmte Protokollgruppe oder einen bestimmten Protokollstream einzuschränken, ersetzen Sie das entsprechende Sternchen in die ARNs durch die entsprechenden Werte. Weitere Informationen finden Sie unter[Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre CloudWatch Logs Ressourcen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html)im*Benutzerhandbuch für Amazon CloudWatch Logs*.

#### Erforderliche Berechtigungen für die EC2-Tag-Variablen-Erweiterung
<a name="ec2-permissions"></a>

Für die Verwendung der Variablen-Erweiterung mit dem `ec2tag`-Variablen-Präfix wird die Berechtigung `ec2:Describe*` benötigt.

```
{
   "Version": "2012-10-17",
   "Statement": [{
      "Sid": "VisualEditor8",
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    }
   ]
}
```

**Anmerkung**  
Sie können mehrere Anweisungen in einer einzigen Richtlinie kombiniert, solange die `Sid` für jede Anweisung in dieser Richtlinie eindeutig ist. Weitere Informationen zum Erstellen von Richtlinien finden Sie unter[Erstellen von IAM-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)im*IAM-Benutzerhandbuch*.

## Konfigurieren`ProfileRefreshingAWSCredentialProvider`So aktualisieren Sie AWS Credentials
<a name="configuring-credential-refresh"></a>

Wenn Sie AWS Systems Manager für hybride Umgebungen zum Verwalten von AWS-Anmeldeinformationen verwenden, dreht Systems Manager die Sitzungsanmeldeinformationen in`c:\Windows\System32\config\systemprofile\.aws\credentials`. Weitere Informationen zu Systems Manager für Hybridumgebungen finden Sie unter[Einrichten von AWS Systems Manager für hybride Umgebungen](https://docs.aws.amazon.com/(systems-manager/latest/userguide/systems-manager-managedinstances.html))im*AWS Systems Manager Benutzerhandbuch.*.

Da das AWS .net-SDK keine neuen Anmeldeinformationen automatisch abruft, stellen wir die`ProfileRefreshingAWSCredentialProvider`, um die Anmeldeinformationen zu aktualisieren.

Sie können das`CredentialRef`-Attribut jeder AWS -Synchronisierungskonfiguration verwenden, um auf ein`Credentials`Definition, bei der die`CredentialType`Attribut ist auf`ProfileRefreshingAWSCredentialProvider`Siehe folgendes Beispiel.

```
{
    "Sinks": [{
		      "Id": "myCloudWatchLogsSink",
		      "SinkType": "CloudWatchLogs",
		      "CredentialRef": "ssmcred",
		      "Region": "us-west-2",
		      "LogGroup": "myLogGroup",
		      "LogStream": "myLogStream"
    }],
    "Credentials": [{
        "Id": "ssmcred",
        "CredentialType": "ProfileRefreshingAWSCredentialProvider",
        "Profile": "default",
        "FilePath": "%USERPROFILE%//.aws//credentials",
        "RefreshingInterval": 300
    }]
}
```

Eine Anmeldeinformationen besteht aus den folgenden Attributen als Schlüssel-Wert-Paare.

`Id`  
Definiert die Zeichenfolge, die Senkendefinitionen mit`CredentialRef`, um auf diese Konfiguration der Anmeldeinformationen zu verweisen

`CredentialType`  
Legen Sie auf die Literalzeichenfolge fest`ProfileRefreshingAWSCredentialProvider`.

`Profile`  
Optional. Der Standardwert ist `default`.

`FilePath`  
Optional. Gibt den Pfad zur AWS Anmeldeinformationsdatei an. Wenn nichts angegeben ist, wird standardmäßig `%USERPROFILE%/.aws/credentials` verwendet.

`RefreshingInterval`  
Optional. Die Häufigkeit, mit der Anmeldeinformationen aktualisiert werden, in Sekunden. Wenn nichts angegeben ist, wird standardmäßig `300` verwendet.

## Konfigurieren von Senken-Ausstattungen
<a name="configuring-kinesis-agent-windows-decoration-configuration"></a>

Senken-Deklarationen können optional Schlüssel-Wert-Paare enthalten, die zusätzliche Daten zum Streamen an verschiedene AWS-Services angeben, um die aus der Quelle erfassten Datensätze zu optimieren.

`TextDecoration`  
Verwenden Sie dieses Schlüssel-Wert-Paar, wenn in der Senken-Deklaration kein `Format` angegeben wird. Der Wert ist eine spezielle Formatzeichenfolge, bei der Variablensubstitution auftritt. Angenommen, für eine Senke wird als `TextDecoration` `"{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}"` angegeben. Wenn eine Quelle einen Protokolldatensatz mit dem Text `The system has resumed from sleep.` ausgibt und diese Quelle über eine Pipe mit der Senke verbunden ist, dann wird der Text `MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep.` an den AWS-Service gestreamt, der dem Senken-Typ zugeordnet ist. Die Variable `{_record}` verweist auf den aus der Quelle bereitgestellten ursprüngliche Text-Datensatz.

`ObjectDecoration`  
Verwenden Sie dieses Schlüssel-Wert-Paar, wenn in der Senken-Deklaration `Format` angegeben wird, um vor der Datensatzserialisierung zusätzliche Daten hinzuzufügen. Angenommen, für eine Senke, die als `Format` JSON angibt, wird als `ObjectDecoration` `"ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"` angegeben. Das sich ergebende JSON-Streaming an den AWS-Service, der dem Senken-Typ zugeordnet ist, enthält zusätzlich zu den ursprünglichen Daten aus der Quelle die folgenden Schlüssel-Wert-Paare:  

```
{
    ComputerName: "MyComputer2",
    DT: "2017-10-17 21:09:04"
}
```
Ein Beispiel für die Verwendung von `ObjectDecoration`finden Sie unter [Tutorial: Streamen von JSON-Protokolldateien mit Kinesis Agent für Windows zu Amazon S3](directory-source-to-s3-tutorial.md).

`ObjectDecorationEx`  
Gibt einen Ausdruck an, der eine flexiblere Datenextraktion und -formatierung im Vergleich zu`ObjectDecoration`. Dieses Feld kann verwendet werden, wenn das Format der Senke`json`. Im folgenden Beispiel wird die Ausdruckssyntax veranschaulicht.  

```
"ObjectDecorationEx": "attribute1={expression1};attribute2={expression2};attribute3={expression3}(;...)"
```
Beispielsweise können Sie die folgenden`ObjectDecorationEx`Attribut:  

```
"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"
```
Transformiert den Literaldatensatz:  
`System log message`  
In ein JSON-Objekt wie folgt mit den Werten, die von den Ausdrücken zurückgegeben werden:  

```
{
    "host": "EC2AMAZ-1234",
    "message": "SYSTEM LOG MESSAGE",
    "time": "20210201"
}
```
Weitere Informationen zum Formulieren von Ausdrücken finden Sie unter[Tipps für das Schreiben von Ausdrücken](#configuring-expressions). Die meisten der`ObjectDecoration`-Deklaration sollte mit der neuen Syntax mit Ausnahme von Zeitstempel-Variablen funktionieren. A`{timestamp:yyyyMMdd}`-Feld im`ObjectDecoration`wird als`{format(_timestamp,'yyyyMMdd')}`in`ObjectDecorationEx`.

`TextDecorationEx`  
Gibt einen Ausdruck an, der eine flexiblere Datenextraktion und -formatierung im Vergleich zu`TextDecoration`Siehe folgendes Beispiel.  

```
"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"
```
Sie können`TextDecorationEx`, um JSON-Objekte zu erstellen. Verwenden Sie '@ \$1', um offene geschweifte Klammer zu entkommen, wie im folgenden Beispiel gezeigt.  

```
"TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"
```

Wenn der Quelltyp der Quelle, die mit der Senke verbunden ist, `DirectorySource` lautet, kann die Senke drei zusätzliche Variablen verwenden:

`_FilePath`  
Der vollständige Pfad zur Protokolldatei.

`_FileName`  
Der Dateiname und die Namenserweiterung der Datei.

`_Position`  
Eine Ganzzahl, die angibt, wo in der Protokolldatei sich der Datensatz befindet.

Diese Variablen sind nützlich, wenn Sie eine Quelle verwenden, die Protokolldatensätze aus mehreren Dateien sammelt, die mit einer Senke verbunden sind, die alle Datensätze an einen einzigen Stream streamt. Da die Werte dieser Variablen in die Streaming-Datensätze eingefügt werden, können Downstream-Analysen in der Daten-Pipeline die Datensätze nach Datei und nach Position in jeder anordnen.

### Tipps für das Schreiben von Ausdrücken
<a name="configuring-expressions"></a>

Ein Ausdruck kann einer der folgenden Möglichkeiten sein:
+ Ein variabler Ausdruck.
+ Ein konstanter Ausdruck, z. B.`'hello'`,`1`,`1.21`,`null`,`true`,`false`.
+ Ein Aufrufausdruck, der eine -Funktion aufruft, wie im folgenden Beispiel gezeigt.

  ```
  regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)
  ```

#### Sonderzeichen
<a name="ex-special-char"></a>

Zwei umgekehrte Schrägstriche sind erforderlich, um Sonderzeichen zu entkommen.

#### Nesting
<a name="ex-nesting"></a>

Funktionsaufrufe können verschachtelt werden, wie im folgenden Beispiel gezeigt.

```
format(date(2018, 11, 28), 'MMddyyyy')
```

#### Variables
<a name="ex-variables"></a>

Es gibt drei Arten von Variablen: lokal, meta und global.
+ **Lokale Variablen**Beginnen Sie mit einem`$`wie`$message`. Sie werden verwendet, um die Eigenschaft des Ereignisobjekts aufzulösen, einen Eintrag, wenn das Ereignis ein Wörterbuch ist, oder ein Attribut, wenn das Ereignis ein JSON-Objekt ist. Wenn die lokale Variable Leerzeichen oder Sonderzeichen enthält, verwenden Sie eine lokale Variable in Anführungszeichen wie`$'date created'`.
+ **Metadaten Variablen**Beginnen Sie mit einem Unterstrich (`_`) und werden verwendet, um die Metadaten des Ereignisses aufzulösen. Alle Ereignistypen unterstützen die folgenden Meta-Variablen.  
`_timestamp`  
Der Zeitstempel des Ereignisses.  
`_record`  
Darstellung des Ereignisses im Rohtext.

  Protokollereignisse unterstützen die folgenden zusätzlichen Meta-Variablen.  
`_filepath`  
  
`_filename`  
  
`_position`  
  
`_linenumber`  


  
+ **Globale Variablen**in Umgebungsvariablen, EC2-Instanzmetadaten oder EC2Tag auflösen. Zur Verbesserung der Leistung empfehlen wir, dass Sie das Präfix verwenden, um den Suchbereich einzuschränken, z. B.`{env:ComputerName}`,`{ec2:InstanceId}`, und`{ec2tag:Name}`.

#### Integrierte Funktionen
<a name="ex-built-in-functions"></a>

Der Kinesis Agent für Windows unterstützt die folgenden integrierten Funktionen. Wenn eines der Argumente`NULL`und die Funktion ist nicht für den Umgang mit`NULL`, ein`NULL`-Objekt zurückgegeben wird.

```
//string functions
int length(string input)
string lower(string input)
string lpad(string input, int size, string padstring)
string ltrim(string input)
string rpad(string input, int size, string padstring)
string rtrim(string input)
string substr(string input, int start)
string substr(string input, int start, int length)
string trim(string input)
string upper(string str)

//regular expression functions
string regexp_extract(string input, string pattern)
string regexp_extract(string input, string pattern, int group)

//date functions
DateTime date(int year, int month, int day)
DateTime date(int year, int month, int day, int hour, int minute, int second)
DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond)

//conversion functions
int? parse_int(string input)
decimal? parse_decimal(string input)
DateTime? parse_date(string input, string format)
string format(object o, string format)

//coalesce functions
object coalesce(object obj1, object obj2)
object coalesce(object obj1, object obj2, object obj3)
object coalesce(object obj1, object obj2, object obj3, object obj4)
object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) 
object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)
```

## Konfigurieren von Senken-Variablensubstitutionen
<a name="configuring-kinesis-agent-windows-sink-variable-substitution"></a>

Die `KinesisStream`-, `KinesisFirehose`- und `CloudWatchLogs`-Senken-Deklarationen erfordern entweder ein `LogStream`- oder ein `StreamName`-Schlüssel-Wert-Paar. Der Wert dieser Schlüssel-Werte kann Variablenverweise enthalten, die vom Kinesis Agent für Windows automatisch aufgelöst werden. Für`CloudWatchLogs`, die`LogGroup`Ein -Schlüssel-Wert-Paar ist ebenfalls erforderlich und es kann Variablenverweise enthalten, die von Kinesis Agent für Windows automatisch aufgelöst werden. Die Variablen werden mithilfe der Vorlage `{`*`prefix`*`:`*`variablename`*`}` angegeben, wobei *`prefix`*`:` optional ist. Die folgenden Präfixe werden unterstützt:
+ `env`— Der Variablenverweis wird auf den Wert der Umgebungsvariable desselben Namens aufgelöst.
+ `ec2`— Der Variablenverweis wird auf die EC2-Instance-Metadaten desselben Namens aufgelöst.
+ `ec2tag`— Der Variablenverweis wird auf den Wert des EC2-Instance-Tags desselben Namens aufgelöst. Für den Zugriff auf Instance-Tags ist die `ec2:Describe*`-Berechtigung erforderlich. Weitere Informationen finden Sie unter [Erforderliche Berechtigungen für die EC2-Tag-Variablen-Erweiterung](#ec2-permissions). 

Wenn kein Präfix angegeben wird und eine Umgebungsvariable mit demselben Namen wie `variablename` vorhanden ist, wird der Variablenverweis auf den Wert der Umgebungsvariable aufgelöst. Wenn `variablename` `instance_id` oder `hostname` ist, wird der Variablenverweis andernfalls auf den Wert der EC2-Metadaten desselben Namens aufgelöst. Andernfalls wird der Variablenverweis nicht aufgelöst.

Es folgen Beispiele gültiger Schlüssel-Wert-Paare mit Variablenverweisen:

```
"LogStream": "LogStream_{instance_id}"
"LogStream": "LogStream_{hostname}"
"LogStream": "LogStream_{ec2:local-hostname}"
"LogStream": "LogStream_{computername}"
"LogStream": "LogStream_{env:computername}"
```

Die `CloudWatchLogs`-Senken-Deklarationen unterstützen eine Zeitstempelvariable in einem speziellen Format, mit dem der Zeitstempel des ursprünglichen Protokoll- oder Ereignisdatensatzes aus der Quelle den Namen des Protokollstreams ändern kann. Das Format ist `{timestamp:``timeformat``}`. Sehen Sie sich das folgende Beispiel an:

```
"LogStream": "LogStream_{timestamp:yyyyMMdd}"
```

Wenn der Protokoll- oder Ereignisdatensatz am 5. Juni 2017 erstellt wurde, würde der Wert des `LogStream`-Schlüssel-Wert-Paares im vorherigen Beispiel auf `"LogStream_20170605"` aufgelöst werden.

Wenn der `CloudWatchLogs`-Senken-Typ entsprechend autorisiert ist, kann er automatisch neue Protokollstreams erstellen, wenn dies basierend auf den erstellten Namen erforderlich ist. Dies ist für andere Senken-Typen nicht möglich, da sie neben den Namen des Streams eine zusätzliche Konfiguration erfordern.

In der Text- und Objektausstattung finden besondere Variablensubstitutionen statt. Weitere Informationen finden Sie unter [Konfigurieren von Senken-Ausstattungen](#configuring-kinesis-agent-windows-decoration-configuration).

## Konfigurieren der Senken-Warteschlange
<a name="configuring-kinesis-agent-windows-queuing"></a>

Die `KinesisStream`-, `KinesisFirehose`- und `CloudWatchLogs`-Senken-Deklarationen können optional das Einreihen von Datensätzen in eine Warteschlange aktivieren, bei denen beim Streamen an den AWS-Service, der diesen Senken-Typen zugeordnet ist, aufgrund von vorübergehenden Verbindungsproblemen Fehler aufgetreten sind. Um Wiederholungsversuche für das Verschieben in eine Warteschlangen und für das automatische Streaming zu ermöglichen, wenn die Konnektivität wiederhergestellt ist, verwenden Sie in den Senken-Deklarationen die folgenden Schlüssel-Wert-Paare:

`QueueType`  
Gibt die Art des für die Warteschlange zu verwendenden Mechanismus an. Der einzige unterstützte Wert ist `file`. Dies bedeutet, dass Datensätze in eine Warteschlange in Form einer Datei gestellt werden. Dieses Schlüssel-Wert-Paar ist erforderlich, um die Warteschlangenfunktion von Kinesis Agent für Windows zu aktivieren. Wenn es nicht angegeben wird, werden Daten standardmäßig nur in eine Wartschlange im Arbeitsspeicher gestellt und nicht gestreamt, wenn die Warteschlangen-Limits für den Arbeitsspeicher erreicht sind.

`QueuePath`  
Gibt den Pfad zu dem Ordner an, in dem sich die Dateien der in die Warteschlange gestellten Datensätze befinden. Dieses Schlüssel-Wert-Paar ist optional. Der Standardwert ist `%PROGRAMDATA%\KinesisTap\Queue\`*SinkId*, wobei *SinkId* die Kennung ist, die Sie als Wert der `Id` für die Senken-Deklaration zugewiesen haben.

`QueueMaxBatches`  
Beschränkt den gesamten Speicherplatz, den Kinesis Agent für Windows verbrauchen kann, wenn Datensätze zum Streamen in die Warteschlange gestellt werden. Die Menge des Speicherplatzes ist auf den Wert dieses Schlüssel-Wert-Paares, multipliziert mit der maximalen Anzahl von Bytes pro Stapel eingeschränkt. Die maximalen Bytes pro Stapel für die `KinesisStream`–, `KinesisFirehose`- und `CloudWatchLogs`-Senken-Typen sind 5 MB, 4 MB bzw. 1 MB. Wenn dieses Limit erreicht ist, werden keine Streaming-Fehler in die Warteschlange gestellt, sondern alle davon werden als nicht behebbare Fehler gemeldet. Dieses Schlüssel-Wert-Paar ist optional. Der Standardwert ist 10.000 Stapel.

## Konfigurieren eines Proxys für Senken
<a name="configuring-kinesis-agent-windows-sink-proxy"></a>

Um einen Proxy für alle Kinesis Agent für Windows-Senken-Typen zu konfigurieren, die auf AWS -Services zugreifen, bearbeiten Sie die Kinesis Agent für Windows-Konfigurationsdatei unter gespeichert`%Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config`. Detaillierte Anweisungen finden Sie im`proxy`-Abschnitt unter[Referenz für Konfigurationsdateireferenz für AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/net-dg-config-ref.html#net-dg-config-ref-elements-proxy)im*AWS SDK for .NET Entwicklerhandbuch*. 

## Konfigurieren von Auflösungsvariablen in mehr Senken-Attributen
<a name="configuring-resolving-variables"></a>

Das folgende Beispiel zeigt eine -Senken-Konfiguration, die die`Region`Umgebungsvariable für den Wert des`Region`-Attribut-Schlüssel-Wert-Paar. Für`RoleARN`, gibt es den EC2-Tag-Schlüssel`MyRoleARN`Dieser Wert berechnet den Wert, der diesem Schlüssel zugeordnet ist.

```
"Id": "myCloudWatchLogsSink",
"SinkType": "CloudWatchLogs",
"LogGroup": "EC2Logs",
"LogStream": "logs-{instance_id}"
"Region": "{env:Region}"
"RoleARN": "{ec2tag:MyRoleARN}"
```

## Konfigurieren regionaler AWS STS Endpunkte bei Verwendung der RoleARN -Eigenschaft in AWS S-Senks
<a name="configuring-sts-endpoints"></a>

Diese Funktion gilt nur, wenn Sie KineSiStap in Amazon EC2 verwenden und die`RoleARN`-Eigenschaft von AWS S-Senks verwenden, um eine externe IAM-Rolle für die Authentifizierung bei den AWS-Ziel-Services anzunehmen. 

Durch das Setzen von`UseSTSRegionalEndpoints`auf`true`können Sie angeben, dass ein Agent den regionalen Endpunkt verwendet (z. B.`https://sts.us-east-1.amazonaws.com`) anstelle des globalen Endpunkts (z. B.`https://sts.amazonaws.com`) enthalten. Die Verwendung eines regionalen STS-Endpunkts reduziert die Roundtrip-Latenz für den Vorgang und schränkt die Auswirkung von Fehlern im globalen Endpunktdienst ein. 

## Konfigurieren von VPC Endpoint für AWS -Senks
<a name="configuring-vpc-endpoint"></a>

Sie können einen VPC Endpunkt in der Senke-Konfiguration für`CloudWatchLogs`,`CloudWatch`,`KinesisStreams`, und`KinesisFirehose`Spüle Typen. Ein VPC-Endpunkt ermöglicht Ihnen, eine private Verbindung zwischen Ihrer VPC und unterstützten AWS-Services und VPC-Endpunktservices mit AWS PrivateLink einzurichten, ohne dass ein Internet-Gateway, ein NAT-Gerät, eine VPN-Verbindung oder eine AWS Direct Connect-Verbindung erforderlich sind. Instances in Ihrer VPC benötigen keine öffentlichen IP-Adressen, um mit den Ressourcen in dem Service zu kommunizieren. Der Datenverkehr zwischen Ihrer VPC und dem anderen Service verlässt das Amazon-Netzwerk nicht. Weitere Informationen finden Sie unter[VPC-Endpunkte](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)im*Benutzerhandbuch für Amazon VPC Benutzerhandbuch*.

Sie geben den VPC Endpunkt mithilfe der`ServiceURL`Gezeigt wird dies im folgenden Beispiel einer`CloudWatchLogs`Senke-Konfiguration. Legen Sie den Wert von`ServiceURL`auf den Wert, der auf der Registerkarte**Details zu VPC Endpunkten**Verwenden Sie die Amazon VPC Konsole.

```
{
    "Id": "myCloudWatchLogsSink",
    "SinkType": "CloudWatchLogs",
    "LogGroup": "EC2Logs",
    "LogStream": "logs-{instance_id}",
    "ServiceURL":"https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com"
}
```

## Konfigurieren einer alternativen Methode für Proxy
<a name="configuring-alternate-proxy"></a>

Mit dieser Funktion können Sie einen Proxyserver in einer Sink-Konfiguration konfigurieren, indem Sie die im AWS SDK anstelle von .NET integrierte Proxyunterstützung verwenden. Bisher bestand die einzige Möglichkeit, den Agenten für die Verwendung eines Proxys zu konfigurieren, darin, ein natives Feature von .NET zu verwenden, das automatisch alle HTTP/S-Anforderungen über den in der Proxydatei definierten Proxy weitergeleitet hat.

Wenn Sie den Agenten derzeit mit einem Proxyserver verwenden, müssen Sie diese Methode nicht ändern.

Sie können das`ProxyHost`und`ProxyPort`Verwenden Sie dazu, einen alternativen Proxy zu konfigurieren, wie im folgenden Beispiel gezeigt.

```
{
    "Id": "myCloudWatchLogsSink",
    "SinkType": "CloudWatchLogs",
    "LogGroup": "EC2Logs",
    "LogStream": "logs-{instance_id}",
    "Region": "us-west-2",
    "ProxyHost": "myproxy.mydnsdomain.com",
    "ProxyPort": "8080"
}
```