本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 AWS Glue 4.0 和更早任務的持續記錄
注意
在 AWS Glue 4.0 和更早版本中提供連續記錄功能。但隨著 AWS Glue 5.0 推出,所有任務都具有即時記錄功能。如需 AWS Glue 5.0 中記錄功能和組態選項的詳細資訊,請參閱記錄 AWS Glue 任務。
您可以使用 AWS Glue 主控台或透過 AWS Command Line Interface (AWS CLI) 啟用持續記錄。
在您建立新任務、編輯現有任務,或是透過 AWS CLI 啟用任務時,可以啟用持續記錄。
您也可以指定自訂組態選項,例如 Amazon CloudWatch 日誌群組名稱、AWS Glue 任務執行 ID 驅動程式/執行程式 ID 之前的 CloudWatch 日誌串流字首,以及日誌訊息的日誌轉換模式。這些組態可協助您在具有不同過期政策的自訂 CloudWatch 日誌群組中設定彙總日誌,並使用自訂日誌串流字首和轉換模式進一步分析它們。
使用 AWS 管理主控台
依照以下步驟使用主控台,在建立或編輯 AWS Glue 任務時啟用持續記錄。
建立持續記錄的新 AWS Glue 任務
登入 AWS 管理主控台,並開啟位於 https://console.aws.amazon.com/glue/
的 AWS Glue 主控台。 -
在導覽窗格中,選擇 ETL 任務。
-
選擇視覺化的 ETL。
-
在任務詳細資訊索引標籤中,展開進階屬性部分。
-
在持續記錄下,選取在 CloudWatch 中啟用日誌。
啟用持續記錄現有 AWS Glue 任務
開啟位於 https://console.aws.amazon.com/glue/
的 AWS Glue 主控台。 -
在導覽窗格中,選擇 Jobs (任務)。
-
從 Jobs (任務) 清單中選擇現有的任務。
-
選擇 Action (動作)、Edit job (編輯任務)。
-
在任務詳細資訊索引標籤中,展開進階屬性部分。
-
在持續記錄下,選取在 CloudWatch 中啟用日誌。
使用 AWS CLI
若要啟用持續記錄,您必須將任務參數傳遞至 AWS Glue 任務。傳遞下列類似其他 AWS Glue 任務參數的特殊任務參數。如需更多詳細資訊,請參閱 在 Glue AWS 任務中使用任務參數。
'--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 Logs 啟用安全組態,AWS Glue 會為連續記錄建立名稱如下的日誌群組:
<Log-Group-Name>-<Security-Configuration-Name>
預設和自訂日誌群組將如下所示:
預設的連續日誌群組為
/aws-glue/jobs/error-<Security-Configuration-Name>自訂的連續日誌群組為
<custom-log-group-name>-<Security-Configuration-Name>
您需要新增 logs:AssociateKmsKey 至您的 IAM 角色許可 (如果您使用 CloudWatch Logs 啟用安全組態)。如果未包含該許可,則會停用連續記錄。此外,若要設定 CloudWatch Logs 的加密,請依照 Amazon CloudWatch Logs 使用者指南中的使用 AWS Key Management Service 加密 CloudWatch Logs 中的日誌資料指示進行。
如需建立安全組態的詳細資訊,請參閱在 AWS Glue 主控台上使用安全組態。
注意
啟用日誌記錄並建立其他 CloudWatch 日誌事件時,可能會產生額外費用。如需詳細資訊,請參閱 Amazon CloudWatch 定價