Arbeiten mit Amazon CloudWatch Logs - Entwicklerhandbuch für Amazon Kinesis Data Analytics for SQL Applications

Nach reiflicher Überlegung haben wir beschlossen, Amazon Kinesis Data Analytics für SQL Anwendungen in zwei Schritten einzustellen:

1. Ab dem 15. Oktober 2025 können Sie keine neuen Kinesis Data Analytics für SQL Anwendungen erstellen.

2. Wir werden Ihre Anwendungen ab dem 27. Januar 2026 löschen. Sie können Ihre Amazon Kinesis Data Analytics for SQL Applications weder starten noch betreiben. SQLAb diesem Zeitpunkt ist kein Support mehr für Amazon Kinesis Data Analytics verfügbar. Weitere Informationen finden Sie unter Einstellung von Amazon Kinesis Data Analytics for SQL Applications.

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.

Arbeiten mit Amazon CloudWatch Logs

Wenn eine -Anwendung falsch konfiguriert ist, kann sie beim Start in den Status „Running“ (Wird ausgeführt) wechseln. Auch ist es möglich, dass die Anwendung Daten aus dem In-Application-Eingabe-Stream aktualisieren, jedoch nicht verarbeiten kann. Indem Sie der Anwendung eine CloudWatch Protokolloption hinzufügen, können Sie auf Probleme mit der Anwendungskonfiguration achten.

Kann unter folgenden Bedingungen Konfigurationsfehler generieren:

  • Der Kinesis-Datenstrom, der für die Eingabe genutzt wird, ist nicht vorhanden.

  • Der für die Eingabe verwendete Amazon-Data-Firehose-Bereitstellungsdatenstrom ist nicht vorhanden.

  • Der als Referenzdatenquelle verwendete Amazon S3 Bucket ist nicht vorhanden.

  • Die in der Referenzdatenquelle in dem S3-Bucket angegebene Datei ist nicht vorhanden.

  • Die richtige Ressource ist in der AWS Identity and Access Management (IAM)-Rolle, die zugehörige Berechtigungen verwaltet, nicht definiert.

  • Die richtige Berechtigung ist in der IAM-Rolle, die die damit verbundenen Berechtigungen verwaltet, nicht definiert.

  • ist nicht berechtigt, die IAM-Rolle anzunehmen, die die damit verbundenen Berechtigungen verwaltet.

Weitere Informationen zu Amazon CloudWatchfinden Sie im Amazon- CloudWatch Benutzerhandbuch.

Hinzufügen der PutLogEvents Richtlinienaktion

benötigt Berechtigungen zum Schreiben von Fehlkonfigurationsfehlern in CloudWatch. Sie können diese Berechtigungen für die IAM-Rolle, die annehmen soll, wie folgt hinzufügen. Weitere Informationen zur Verwendung der IAM-Rolle finden Sie unter Identitäts- und Zugriffsverwaltung in Kinesis Data Analytics.

Vertrauensrichtlinie

Zum Erteilen von -Berechtigungen, um eine IAM-Rolle anzunehmen, können Sie an die Rolle die folgenden Vertrauensrichtlinien anhängen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanalytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Berechtigungsrichtlinie

Um einer Anwendung Berechtigungen zum Schreiben von Protokollereignissen in CloudWatch aus einer Ressource zu erteilen, können Sie die folgende IAM-Berechtigungsrichtlinie verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*" ] } ] }

Hinzufügen einer Überwachung auf Konfigurationsfehler

Verwenden Sie die folgenden API-Aktionen, um einer neuen oder vorhandenen Anwendung eine CloudWatch Protokolloption hinzuzufügen oder eine Protokolloption für eine vorhandene Anwendung zu ändern.

Anmerkung

Sie können einer Anwendung derzeit nur mithilfe von API-Aktionen eine CloudWatch Protokolloption hinzufügen. Sie können keine CloudWatch Protokolloptionen über die Konsole hinzufügen.

Hinzufügen einer CloudWatch Protokolloption beim Erstellen einer Anwendung

Das folgende Codebeispiel zeigt, wie Sie die -CreateApplicationAktion verwenden, um eine CloudWatch Protokolloption hinzuzufügen, wenn Sie eine Anwendung erstellen. Weitere Informationen zu Create_Application finden Sie unter CreateApplication.

{ "ApplicationCode": "<The SQL code the new application will run on the input stream>", "ApplicationDescription": "<A friendly description for the new application>", "ApplicationName": "<The name for the new application>", "Inputs": [ ... ], "Outputs": [ ... ], "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>", "RoleARN": "<ARN of the role to use to access the log>" }] }

Hinzufügen einer CloudWatch Protokolloption zu einer vorhandenen Anwendung

Das folgende Codebeispiel zeigt, wie Sie die AddApplicationCloudWatchLoggingOption-Aktion nutzen können, um einer bestehenden Anwendung eine CloudWatch-Protokollierungsoption hinzuzufügen. Mehr über AddApplicationCloudWatchLoggingOption erfahren Sie unter AddApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of the application to add the log option to>", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>", "RoleARN": "<ARN of the role to use to access the log>" }, "CurrentApplicationVersionId": <Version of the application to add the log to> }

Aktualisieren einer vorhandenen CloudWatch Protokolloption

Das folgende Codebeispiel zeigt, wie Sie die -UpdateApplicationAktion verwenden, um eine vorhandene CloudWatch Protokolloption zu ändern. Mehr über UpdateApplication erfahren Sie unter UpdateApplication.

{ "ApplicationName": "<Name of the application to update the log option for>", "ApplicationUpdate": { "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>", "LogStreamARNUpdate": "<ARN of the new log stream to use>", "RoleARNUpdate": "<ARN of the new role to use to access the log stream>" } ], }, "CurrentApplicationVersionId": <ID of the application version to modify> }

Löschen einer CloudWatch Protokolloption aus einer Anwendung

Das folgende Codebeispiel zeigt, wie Sie die -DeleteApplicationCloudWatchLoggingOptionAktion verwenden, um eine vorhandene CloudWatch Protokolloption zu löschen. Mehr über DeleteApplicationCloudWatchLoggingOption erfahren Sie unter DeleteApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of application to delete log option from>", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>", "CurrentApplicationVersionId": <Version of the application to delete the log option from> }

Konfigurationsfehler

Die folgenden Abschnitte enthalten Details zu Fehlern, die in Amazon CloudWatch Logs von einer falsch konfigurierten Anwendung angezeigt werden können.

Format der Fehlermeldungen

Die Fehlermeldungen, die aufgrund von Fehlkonfigurationen von Anwendungen generiert werden, haben das folgende Format.

{ "applicationARN": "string", "applicationVersionId": integer, "messageType": "ERROR", "message": "string", "inputId": "string", "referenceId": "string", "errorCode": "string" "messageSchemaVersion": "integer", }

Die Felder in Fehlermeldungen können die folgenden Informationen enthalten:

  • applicationARN: der Amazon-Ressourcenname (ARN) der Anwendung, die den Fehler erzeugt hat. Beispiel: arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp

  • applicationVersionId: die Version der Anwendung zu dem Zeitpunkt, zu dem der Fehler aufgetreten ist. Weitere Informationen finden Sie unter ApplicationDetail.

  • messageType: der Typ der Mitteilung. Derzeit kann dieser Typ nur ERROR sein.

  • message: die Fehlerdetails. Beispiel:

    There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.
  • inputId: die der Anwendungseingabe zugeordnete ID. Dieser Wert ist nur vorhanden, wenn diese Eingabe die Ursache des Fehlers ist. Dieser Wert ist nicht vorhanden, wenn referenceId verfügbar ist. Weitere Informationen finden Sie unter DescribeApplication.

  • referenceId: die der Referenzdatenquelle der Anwendung zugeordnete ID. Dieser Wert ist nur vorhanden, wenn diese Quelle die Ursache des Fehlers ist. Dieser Wert ist nicht vorhanden, wenn inputId verfügbar ist. Weitere Informationen finden Sie unter DescribeApplication.

  • errorCode: die ID des Fehlers. Diese ID ist entweder InputError oder ReferenceDataError.

  • messageSchemaVersion: ein Wert, der die aktuelle Version des Meldungsschemas angibt, zurzeit 1. Sie können diesen Wert überprüfen, um festzustellen, ob das Fehlermeldungsschema aktualisiert wurde.

Fehler

Zu den Fehlern, die in CloudWatch Protokollen für auftreten können, gehören die folgenden.

Ressource ist nicht vorhanden

Wenn ein ARN für einen nicht vorhandenen Kinesis-Eingabe-Stream angegeben wird, der ARN aber syntaktisch korrekt ist, wird eine Fehlermeldung der folgenden Art angezeigt.

{ "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp", "applicationVersionId": "5", "messageType": "ERROR", "message": "There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.", "inputId":"1.1", "errorCode": "InputError", "messageSchemaVersion": "1" }

Wenn ein falscher Amazon S3-Dateischlüssel für Referenzdaten verwendet wird, wird ein Fehler wie der folgende generiert:

{ "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp", "applicationVersionId": "5", "messageType": "ERROR", "message": "There is a problem related to the configuration of your reference data. Please check that the bucket and the file exist, the role has the correct permissions to access these resources and that Kinesis Analytics can assume the role provided.", "referenceId":"1.1", "errorCode": "ReferenceDataError", "messageSchemaVersion": "1" }

Rolle ist nicht vorhanden

Wenn ein ARN wird für eine IAM-Eingaberolle angegeben wird, die nicht vorhanden ist, aber die ARN syntaktisch korrekt ist, wird ein Fehler wie folgt generiert.

{ "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp", "applicationVersionId": "5", "messageType": "ERROR", "message": "There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.", "inputId":null, "errorCode": "InputError", "messageSchemaVersion": "1" }

Rolle hat keine Berechtigung zum Zugriff auf die Ressource

Wenn eine Eingaberolle verwendet wird, die nicht über die erforderlichen Berechtigungen für den Zugriff auf Eingaberessourcen wie etwa einen Kinesis-Quell-Stream verfügt, wird eine Fehlermeldung der folgenden Art angezeigt.

{ "applicationARN": "arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp", "applicationVersionId": "5", "messageType": "ERROR", "message": "There is a problem related to the configuration of your input. Please check that the resource exists, the role has the correct permissions to access the resource and that Kinesis Analytics can assume the role provided.", "inputId":null, "errorCode": "InputError", "messageSchemaVersion": "1" }