使用 Amazon CloudWatch 日誌 - Amazon Kinesis Data Analytics for SQL 應用程式開發人員指南

在仔細考慮之後,我們決定在兩個步驟中停止 Amazon Kinesis Data Analytics for SQL 應用程式:

1. 從 2025 年 10 月 15 日起,您將無法為SQL應用程式建立新的 Kinesis Data Analytics。

2. 我們將自 2026 年 1 月 27 日起刪除您的應用程式。您將無法啟動或操作SQL應用程式的 Amazon Kinesis Data Analytics。從那時SQL起,Amazon Kinesis Data Analytics 將不再提供 的支援。如需詳細資訊,請參閱Amazon Kinesis Data Analytics for SQL 應用程式終止

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon CloudWatch 日誌

如果應用程式設定錯誤,則可能會在啟動期間轉換為執行中狀態。或也可能會更新,但不將任何資料處理到應用程序內輸入流中。藉由將 CloudWatch 記錄選項新增至應用程式,您可以監視應用程式設定問題。

在下列情況下會產生組態錯誤:

  • 用於輸入的 Kinesis 資料串流不存在。

  • 用於輸入的 Amazon 數據 Firehose 交付流不存在。

  • 用作參考資料來源的 Amazon S3 儲存貯體不存在。

  • S3 儲存貯體中參考資料來源指定的檔案不存在。

  • 管理相關許可的 AWS Identity and Access Management (IAM) 角色中未定義正確的資源。

  • 管理相關許可的 IAM 角色中未定義正確的資源。

  • 沒有權限擔任管理相關許可的 IAM 角色。

有關 Amazon 的更多信息 CloudWatch,請參閱 Amazon CloudWatch 用戶指南

新增原 PutLogEvents 則動作

需要權限才能將錯誤配置錯誤寫入。 CloudWatch您可以將這些許可新增至擔任的 IAM 角色,如下所述。如需使用 IAM 角色的詳細資訊,請參閱 Kinesis Data Analytics 中的 Identity and Access Management

信任政策

若要授與許可來擔任 IAM 角色,您可以將以下信任政策附加到角色。

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

許可政策

若要授與應用程式許可以 CloudWatch 從資源寫入日誌事件,您可以使用下列 IAM 許可政策。

{ "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*" ] } ] }

新增組態錯誤監視

使用下列 API 動作將 CloudWatch 記錄選項新增至新的或現有的應用程式,或變更現有應用程式的記錄選項。

注意

您目前只能使用 API 動作將 CloudWatch 記錄選項新增至應用程式。您無法使用主控台新增 CloudWatch 記錄選項。

建立應用程式時新增 CloudWatch 記錄選項

下列程式碼範例示範如何在建立應用程式時使用CreateApplication動作來新增 CloudWatch log 選項。如需 Create_Application 的詳細資訊,請參閱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>" }] }

將 CloudWatch 記錄選項新增至現有的應用程式

下列程式碼範例將示範如何使用AddApplicationCloudWatchLoggingOption動作,將 CloudWatch log 選項加入至現有的應用程式。如需 AddApplicationCloudWatchLoggingOption 的相關資訊,請參閱 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> }

更新現有的 CloudWatch 記錄選項

下列程式碼範例將示範如何使用UpdateApplication動作來修改現有的 CloudWatch log 選項。如需 UpdateApplication 的相關資訊,請參閱 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> }

從應用程式刪除 CloudWatch 記錄選項

下列程式碼範例將示範如何使用DeleteApplicationCloudWatchLoggingOption動作刪除現有的 CloudWatch log 選項。如需 DeleteApplicationCloudWatchLoggingOption 的相關資訊,請參閱 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> }

組態錯誤

以下各節包含您可能在 Amazon CloudWatch Logs 中從設定錯誤的應用程式中看到的錯誤的詳細資訊。

錯誤訊息格式

應用程式設定錯誤所產生的錯誤訊息採用下列格式。

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

錯誤訊息中的欄位包含下列資訊:

  • applicationARN:產生應用程式的 Amazon Resource Name (ARN),例如:arn:aws:kinesisanalytics:us-east-1:112233445566:application/sampleApp

  • applicationVersionId:遇到錯誤時的應用程式版本。如需詳細資訊,請參閱 ApplicationDetail

  • 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:與應用程式輸入相關聯的 ID。此值僅在此輸入是錯誤的原因時才會存在。如果有 referenceId,則此值不會存在。如需詳細資訊,請參閱 DescribeApplication

  • referenceId:與應用程式參考資料來源相關聯的 ID。此值僅在輸入是錯誤的原因時才會存在。如果有 inputId,則此值不會存在。如需詳細資訊,請參閱 DescribeApplication

  • errorCode:錯誤的識別符。此識別符為 InputErrorReferenceDataError

  • messageSchemaVersion:指定目前訊息結構描述版本的值,現為 1。您可以檢查此值,以查看錯誤訊息結構描述是否已更新。

錯誤

CloudWatch 記錄檔中可能出現的錯誤包括以下內容。

資源不存在

如果針對不存在的 Kinesis 輸入串流指定 ARN,但 ARN 在語法上正確,則會產生類似下列的錯誤。

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

如果參考資料使用不正確的 Amazon S3 檔案金鑰,就會產生類似下列的錯誤。

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

角色不存在

如果針對不存在的 IAM 輸入角色指定 ARN,但 ARN 在語法上正確,則會產生類似下列的錯誤。

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

角色沒有存取資源的許可。

如果使用的輸入角色無權存取輸入資源 (例如 Kinesis 來源串流),則會產生類似下列內容的錯誤。

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