啟用持續記錄 AWS Glue 任務 - AWS Glue

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

啟用持續記錄 AWS Glue 任務

您可以使用AWS Glue主控台或透過 AWS Command Line Interface (AWS CLI) 啟用連續記錄。

您可以在建立新工作、編輯現有工作或透過啟用時啟用連續記錄 AWS CLI。

您也可以指定自訂組態選項,例如 Amazon CloudWatch 記錄群組名稱、AWS Glue工作執行 ID 驅動程式/執行程式 ID 之前的 CloudWatch 記錄資料流前置詞,以及記錄訊息的記錄檔轉換模式。這些設定可協助您在具有不同到期原則的自訂記 CloudWatch 錄群組中設定彙總記錄,並使用自訂記錄串流前置詞和轉換模式進一步分析這些記錄。

使用 AWS Management Console

依照以下步驟使用主控台,在建立或編輯 AWS Glue 任務時啟用持續記錄。

建立持續記錄的新 AWS Glue 任務
  1. 請登入 AWS Management Console 並開啟 AWS Glue 主控台,網址為 https://console.aws.amazon.com/glue/

  2. 在瀏覽窗格中,選擇 ETL 工作

  3. 選擇「視覺 ETL」。

  4. 在 [Job 詳細資訊] 索引標籤中,展開 [進階屬性] 區段

  5. 在 [連續記錄] 下選取 [啟用登入] CloudWatch。

啟用持續記錄現有 AWS Glue 任務
  1. 請在以下位置開啟 AWS Glue 主控台。 https://console.aws.amazon.com/glue/

  2. 在導覽窗格中,選擇 Jobs (任務)

  3. Jobs (任務) 清單中選擇現有的任務。

  4. 選擇 Action (動作)Edit job (編輯任務)

  5. 在 [Job 詳細資訊] 索引標籤中,展開 [進階屬性] 區段

  6. 在 [連續記錄] 下選取 [啟用登入] CloudWatch。

使用 AWS CLI

若要啟用持續記錄,您必須將任務參數傳遞至 AWS Glue 任務。傳遞下列與其他作業參數類似的特殊AWS Glue工作參數。如需詳細資訊,請參閱 AWS Glue 任務參數

'--enable-continuous-cloudwatch-log': 'true'

您可以指定自訂的 Amazon CloudWatch 日誌群組名稱。如果未指定,則預設日誌群組名稱為 /aws-glue/jobs/logs-v2/

'--continuous-log-logGroup': 'custom_log_group_name'

您可以指定自訂的 Amazon CloudWatch 日誌串流前置詞。如果未指定,則預設日誌資料流字首為任務執行 ID。

'--continuous-log-logStreamPrefix': 'custom_log_stream_prefix'

您可以指定自訂持續記錄轉換模式。如果未指定,則預設轉換模式為 %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n。請注意,轉換模式僅適用於驅動程式日誌和執行程式日誌。它不會影響 AWS Glue 進度列。

'--continuous-log-conversionPattern': 'custom_log_conversion_pattern'

使用自訂指令碼記錄器記錄應用程式特定訊息

您可以使用 AWS Glue 記錄器,記錄即時傳送至驅動程式日誌串流之指令碼中的任何應用程式特定訊息。

以下範例顯示 Python 指令碼。

from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() logger.info("info message") logger.warn("warn message") logger.error("error message")

以下範例顯示 Scala 指令碼。

import com.amazonaws.services.glue.log.GlueLogger object GlueApp { def main(sysArgs: Array[String]) { val logger = new GlueLogger logger.info("info message") logger.warn("warn message") logger.error("error message") } }

啟用進度列來顯示任務進度

AWS Glue 在 JOB_RUN_ID-progress-bar 日誌串流下方提供即時的進度列,以檢查 AWS Glue 任務執行狀態。目前它僅支援初始化 glueContext 的任務。如果您執行無需初始化 glueContext 的純 Spark 任務,AWS Glue 進度列將不會出現。

進度列每 5 秒顯示一次以下的最新進度。

Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]

具有連續記錄的安全組態

如果已啟用 CloudWatch 記錄檔的安全性設定,AWS Glue將會針對連續記錄建立名稱如下的記錄群組:

<Log-Group-Name>-<Security-Configuration-Name>

預設和自訂日誌群組將如下所示:

  • 預設的連續日誌群組為 /aws-glue/jobs/logs-v2-<Security-Configuration-Name>

  • 自訂的連續日誌群組為 <custom-log-group-name>-<Security-Configuration-Name>

如果您使用 CloudWatch 記錄啟用安全設定,則需要將 IAM 角色許可新增logs:AssociateKmsKey至您的 IAM 角色許可。如果未包含該許可,則會停用連續記錄。此外,若要設定日誌的加密,請按照 Amazon CloudWatch 日誌使用者指南中的使用加密 CloudWatch 日誌中的日 CloudWatch 誌資料 AWS Key Management Service中的說明進行操作。

如需建立安全組態的詳細資訊,請參閱在 AWS Glue 主控台上使用安全組態