Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)
Questa pagina spiega come abilitare il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente per un ambiente nuovo o esistente.
In alternativa, puoi abilitare la sincronizzazione dei log delle attività con il bucket dell'ambiente.
Informazioni sul salvataggio dei log nel bucket dell'ambiente
Il salvataggio dei log nel bucket dell'ambiente funziona nel seguente modo:
Disabilitato (impostazione predefinita): i log delle attività sono disponibili in Cloud Logging. Puoi visualizzarli nell'interfaccia utente di Airflow e in Cloud Logging. I file di log delle attività non vengono salvati nel bucket dell'ambiente.
Se il salvataggio dei log nel bucket dell'ambiente è stato disabilitato e lo riabiliti, i log delle attività visualizzati nell'interfaccia utente di Airflow non mostrano le voci di log generate mentre i log venivano salvati solo in Cloud Logging. Questi log non vengono persi, ma sono ancora disponibili in Cloud Logging.
Abilitato: i log delle attività vengono salvati sia in Cloud Logging sia nel bucket dell'ambiente. Puoi visualizzarli nell'interfaccia utente di Airflow e in Cloud Logging. Il bucket dell'ambiente archivia i file con questi log.
Se il salvataggio dei log nel bucket dell'ambiente è stato abilitato e lo disabiliti, i log già salvati nel bucket dell'ambiente non vengono eliminati e rimangono archiviati nel bucket.
Prima di iniziare
A partire dalla versione 2.8.0 di Airflow gestito, per impostazione predefinita tutti gli ambienti non archiviano i log delle attività nel bucket dell'ambiente. I log delle attività sono ancora disponibili in Cloud Logging e nell'interfaccia utente di Airflow.
Quando esegui l'upgrade dell'ambiente, la configurazione per il salvataggio dei log nel bucket dell'ambiente non viene modificata. Ad esempio, se esegui l'upgrade di un ambiente che ha salvato i log nel bucket dell'ambiente a una versione successiva, l'ambiente continua a salvare i log nel bucket dell'ambiente.
Per abilitare o disabilitare questa opzione, puoi utilizzare Google Cloud CLI, l'API Cloud Composer o Terraform. Non è possibile modificare questa opzione tramite Google Cloud la console.
Abilitare o disabilitare il salvataggio dei log delle attività nel bucket dell'ambiente durante la creazione di un ambiente
gcloud
Quando crei un ambiente, i seguenti argomenti specificano come devono essere salvati i log delle attività di Airflow:
- L'argomento
--disable-logs-in-cloud-logging-onlyconsente di salvare i log delle attività di Airflow nel bucket dell'ambiente. - L'argomento
--enable-logs-in-cloud-logging-onlydisabilita il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente. I log vengono salvati solo in Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, specifica come devono essere salvati i log delle attività di Airflow:
CLOUD_LOGGING_AND_CLOUD_STORAGEper salvare i log nel bucket dell'ambiente e in Cloud Logging.CLOUD_LOGGING_ONLYper salvare i log solo in Cloud Logging.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.PROJECT_ID: l'ID progetto .
Esempio:
// 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
Quando crei un ambiente, il campo storage_mode nel blocco task_logs_retention_config specifica come devono essere salvati i log delle attività di Airflow:
CLOUD_LOGGING_AND_CLOUD_STORAGEper salvare i log nel bucket dell'ambiente e in Cloud Logging.CLOUD_LOGGING_ONLYper salvare i log solo in 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"
}
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.
Esempio:
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"
}
}
}
}
Abilitare o disabilitare il salvataggio dei log delle attività nel bucket dell'ambiente per un ambiente esistente
gcloud
Quando aggiorni un ambiente, i seguenti argomenti abilitano o disabilitano il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente:
- L'argomento
--disable-logs-in-cloud-logging-onlyconsente di salvare i log delle attività di Airflow nel bucket dell'ambiente. I log vengono salvati nel bucket dell'ambiente e in Cloud Logging. - L'argomento
--enable-logs-in-cloud-logging-onlydisabilita il salvataggio dei log delle attività di Airflow nel bucket dell'ambiente. I log vengono salvati solo in Cloud Logging.
Per salvare i log di Airflow nel bucket dell'ambiente:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.
Esempio:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
Crea una richiesta API
environments.patch.In questa richiesta:
Nel parametro
updateMask, specifica la mascheraconfig.dataRetentionConfig.taskLogsRetentionConfig.storageMode.Nel corpo della richiesta, specifica come devono essere salvati i log delle attività di Airflow:
CLOUD_LOGGING_AND_CLOUD_STORAGEper salvare i log nel bucket dell'ambiente e in Cloud Logging.CLOUD_LOGGING_ONLYper salvare i log solo in Cloud Logging.
{
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Esempio:
// 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
Nel blocco task_logs_retention_config, nel campo storage_mode, specifica come devono essere salvati i log delle attività di Airflow:
CLOUD_LOGGING_AND_CLOUD_STORAGEper salvare i log nel bucket dell'ambiente e in Cloud Logging.CLOUD_LOGGING_ONLYper salvare i log solo in 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"
}
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.
Esempio:
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"
}
}
}
}