Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
このページでは、新規または既存の環境で Airflow タスクログを環境のバケットに保存する方法について説明します。
オプションとして、環境のバケットへのタスクログの同期を有効にできます。
準備
Cloud Composer バージョン 2.8.0 以降、すべての環境ではデフォルトでタスクログが環境のバケットに保存されません。タスクログは、引き続き Cloud Logging と Airflow UI で使用できます。
この機能を有効にすると、ログは Cloud Logging と環境のバケットの両方に保存されます。
環境をアップグレードしても、環境のバケットにログを保存する構成は変更されません。たとえば、環境のバケットにログを保存した環境を新しいバージョンにアップグレードすると、環境では環境のバケットへのログの保存が継続されます。
タスクログを環境のバケットに保存することを無効にしても、環境のバケットにすでに保存されているログは自動的に削除されません。
このオプションを有効または無効にするには、Google Cloud CLI、Cloud Composer API、または Terraform を使用します。このオプションは Google Cloud コンソールでは変更できません。
環境の作成時にタスクログを環境のバケットに保存するかどうかを有効または無効にする
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 にログを保存する場合は、
CLOUD_LOGGING_AND_CLOUD_STORAGE
。 - Cloud Logging にのみログを保存する場合は、
CLOUD_LOGGING_ONLY
。
{
"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 にログを保存する場合は、
CLOUD_LOGGING_AND_CLOUD_STORAGE
。 - Cloud Logging にのみログを保存する場合は、
CLOUD_LOGGING_ONLY
。
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 にログを保存する場合は、
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 にログを保存する場合は、
CLOUD_LOGGING_AND_CLOUD_STORAGE
。 - Cloud Logging にのみログを保存する場合は、
CLOUD_LOGGING_ONLY
。
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"
}
}
}
}