本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以使用 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 任務
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/glue/
開啟 AWS Glue 主控台。 -
在導覽窗格中,選擇 ETL 任務。
-
選擇視覺化 ETL。
-
在任務詳細資訊索引標籤中,展開進階屬性區段。
-
在連續記錄下,選取在 CloudWatch 中啟用日誌。
啟用現有 AWS Glue 任務的持續記錄
在 https://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
的任務。如果您在未初始化 的情況下執行純 Spark 任務glueContext
, AWS Glue 則進度列不會顯示。
進度列每 5 秒顯示一次以下的最新進度。
Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]
具有連續記錄的安全組態
如果針對 CloudWatch 日誌啟用安全組態, 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主控台上管理安全組態。