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_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에 로그를 저장하기 위한
CLOUD_LOGGING_AND_CLOUD_STORAGE
입니다. 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에 로그를 저장하기 위한
CLOUD_LOGGING_AND_CLOUD_STORAGE
입니다. CLOUD_LOGGING_ONLY
는 Cloud Logging에만 로그를 저장합니다.
- 환경 버킷 및 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_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"
}
}
}
}