Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁說明如何啟用 Airflow 工作記錄儲存至環境的儲存桶功能,適用於新環境或現有環境。
您可以選擇啟用同步處理作業記錄至環境的值區功能。
關於將記錄檔儲存至環境值區
將記錄儲存至環境的值區的運作方式如下:
已停用 (預設):您可以在 Cloud Logging 中查看工作記錄檔。您可以在 Airflow UI 和 Cloud Logging 中查看這些記錄。任務記錄檔不會儲存到環境值區。
如果您停用儲存記錄至環境值區的功能,並啟用該功能,Airflow UI 中顯示的工作記錄不會顯示記錄項目,這些記錄項目是在記錄只儲存在 Cloud Logging 時產生。這些記錄檔並未遺失,您仍可在 Cloud Logging 中查看。
已啟用:系統會將工作記錄檔儲存至 Cloud Logging 和環境的值區。您可以在 Airflow UI 和 Cloud Logging 中查看這些記錄。環境的值區會儲存含有這些記錄的檔案。
如果您先前已啟用將記錄儲存到環境值區的功能,但後來又停用,系統就不會刪除先前儲存在環境值區中的記錄,而是繼續保留這些記錄。
事前準備
自 Cloud Composer 2.8.0 版起,所有環境預設不會在環境的儲存格中儲存工作記錄。您仍可在 Cloud Logging 和 Airflow UI 中查看工作記錄檔。
升級環境時,在環境的 bucket 中儲存記錄的設定不會變更。舉例來說,如果您將儲存記錄至環境值區的環境升級至較新版本,該環境會繼續將記錄儲存至環境值區。
如要啟用或停用這個選項,您可以使用 Google Cloud CLI、Cloud Composer API 或 Terraform。您無法透過 Google Cloud 控制台變更這個選項。
建立環境時,啟用或停用將工作記錄儲存至環境的 bucket
gcloud
建立環境時,下列引數會指定 Airflow 任務記錄的儲存方式:
--disable-logs-in-cloud-logging-only
引數可讓您將 Airflow 工作記錄儲存至環境的值區。--enable-logs-in-cloud-logging-only
引數會停用將 Airflow 工作記錄儲存至環境值區的功能。記錄只會儲存在 Cloud Logging 中。
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
更改下列內容:
ENVIRONMENT_NAME
:環境名稱。LOCATION
:環境所在的地區。
範例:
gcloud composer environments create example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
建立環境時,請在 Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig 資源中,指定 Airflow 工作記錄的儲存方式:
CLOUD_LOGGING_AND_CLOUD_STORAGE
將記錄檔儲存至環境的值區和 Cloud Logging。CLOUD_LOGGING_ONLY
只會將記錄檔儲存在 Cloud Logging 中。
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
更改下列內容:
ENVIRONMENT_NAME
:環境名稱。LOCATION
:環境所在的地區。PROJECT_ID
:專案 ID。
範例:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Terraform
建立環境時,task_logs_retention_config
區塊中的 storage_mode
欄位會指定 Airflow 工作記錄的儲存方式:
CLOUD_LOGGING_AND_CLOUD_STORAGE
將記錄檔儲存至環境的值區和 Cloud Logging。CLOUD_LOGGING_ONLY
只會將記錄檔儲存在 Cloud Logging 中。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
更改下列內容:
ENVIRONMENT_NAME
:環境名稱。LOCATION
:環境所在的地區。
範例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
為現有環境啟用或停用將工作記錄儲存至環境值區的功能
gcloud
更新環境時,下列引數可用來啟用或停用將 Airflow 工作記錄儲存至環境值區的功能:
--disable-logs-in-cloud-logging-only
引數可讓您將 Airflow 工作記錄儲存至環境的值區。記錄檔會儲存至環境的值區和 Cloud Logging。--enable-logs-in-cloud-logging-only
引數會停用將 Airflow 工作記錄儲存至環境值區的功能。記錄只會儲存在 Cloud Logging 中。
如要在環境的值區中儲存 Airflow 記錄,請按照下列步驟操作:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
更改下列內容:
ENVIRONMENT_NAME
:環境名稱。LOCATION
:環境所在的地區。
範例:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
建構
environments.patch
API 要求。在這個要求中:
在
updateMask
參數中指定config.dataRetentionConfig.taskLogsRetentionConfig.storageMode
遮罩。在要求主體中,指定 Airflow 工作記錄檔必須儲存的方式:
CLOUD_LOGGING_AND_CLOUD_STORAGE
,將記錄檔儲存至環境的值區和 Cloud Logging。CLOUD_LOGGING_ONLY
只會將記錄檔儲存在 Cloud Logging 中。
{
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
範例:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.dataRetentionConfig.taskLogsRetentionConfig.storageMode
{
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Terraform
在 task_logs_retention_config
區塊的 storage_mode
欄位中,指定 Airflow 工作記錄的儲存方式:
CLOUD_LOGGING_AND_CLOUD_STORAGE
將記錄檔儲存至環境的值區和 Cloud Logging。CLOUD_LOGGING_ONLY
只會將記錄檔儲存在 Cloud Logging 中。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
更改下列內容:
ENVIRONMENT_NAME
:環境名稱。LOCATION
:環境所在的地區。
範例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}