Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird beschrieben, wie Sie das Speichern von Airflow-Aufgabenprotokollen im Bucket der Umgebung für eine neue oder vorhandene Umgebung aktivieren.
Optional können Sie die Synchronisierung von Aufgabenprotokollen mit dem Bucket der Umgebung aktivieren.
Hinweis
Ab Cloud Composer-Version 2.8.0 werden in allen Umgebungen standardmäßig keine Aufgabenprotokolle im Bucket der Umgebung gespeichert. Aufgabenprotokolle sind weiterhin in Cloud Logging und in der Airflow-Benutzeroberfläche verfügbar.
Wenn Sie diese Funktion aktivieren, werden Protokolle sowohl in Cloud Logging als auch im Bucket der Umgebung gespeichert.
Wenn Sie Ihre Umgebung aktualisieren, wird die Konfiguration zum Speichern von Protokollen im Bucket der Umgebung nicht geändert. Wenn Sie beispielsweise eine Umgebung, in der Protokolle im Bucket der Umgebung gespeichert wurden, auf eine neuere Version umstellen, werden weiterhin Protokolle im Bucket der Umgebung gespeichert.
Wenn Sie das Speichern von Aufgabenprotokollen im Bucket der Umgebung deaktivieren, werden die Protokolle, die bereits im Bucket der Umgebung gespeichert wurden, nicht automatisch gelöscht.
Sie können diese Option mit der Google Cloud CLI, der Cloud Composer API oder Terraform aktivieren oder deaktivieren. Diese Option kann nicht über die Google Cloud Console geändert werden.
Beim Erstellen einer Umgebung das Speichern von Aufgabenprotokollen im Bucket der Umgebung aktivieren oder deaktivieren
gcloud
Beim Erstellen einer Umgebung geben die folgenden Argumente an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:
- Mit dem Argument
--disable-logs-in-cloud-logging-only
können Airflow-Aufgaben-Logs im Bucket der Umgebung gespeichert werden. - Mit dem
--enable-logs-in-cloud-logging-only
-Argument wird das Speichern von Airflow-Aufgabenprotokollen im Bucket der Umgebung deaktiviert. Protokolle werden nur in Cloud Logging gespeichert.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.
Beispiel:
gcloud composer environments create example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration > Datenerhaltungskonfiguration > TaskLogsRetentionConfig an, wie Airflow-Task-Logs gespeichert werden müssen:
CLOUD_LOGGING_AND_CLOUD_STORAGE
, um Protokolle im Bucket der Umgebung und in Cloud Logging zu speichern.CLOUD_LOGGING_ONLY
, um Logs nur in Cloud Logging zu speichern.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.PROJECT_ID
: die Projekt-ID.
Beispiel:
// 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
Beim Erstellen einer Umgebung gibt das Feld storage_mode
im Block task_logs_retention_config
an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:
CLOUD_LOGGING_AND_CLOUD_STORAGE
, um Protokolle im Bucket der Umgebung und in Cloud Logging zu speichern.CLOUD_LOGGING_ONLY
, um Logs nur in Cloud Logging zu speichern.
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"
}
}
}
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.
Beispiel:
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"
}
}
}
}
Speichern von Aufgabenprotokollen im Bucket der Umgebung für eine vorhandene Umgebung aktivieren oder deaktivieren
gcloud
Wenn Sie eine Umgebung aktualisieren, aktivieren oder deaktivieren die folgenden Argumente das Speichern von Airflow-Aufgabenprotokollen im Bucket der Umgebung:
- Mit dem Argument
--disable-logs-in-cloud-logging-only
können Airflow-Aufgaben-Logs im Bucket der Umgebung gespeichert werden. Logs werden im Bucket der Umgebung und in Cloud Logging gespeichert. - Mit dem
--enable-logs-in-cloud-logging-only
-Argument wird das Speichern von Airflow-Aufgabenprotokollen im Bucket der Umgebung deaktiviert. Protokolle werden nur in Cloud Logging gespeichert.
So speichern Sie Airflow-Protokolle im Bucket der Umgebung:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.
Beispiel:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
Erstellen Sie eine API-Anfrage
environments.patch
.In dieser Anfrage:
Geben Sie im Parameter
updateMask
die Maskeconfig.dataRetentionConfig.taskLogsRetentionConfig.storageMode
an.Geben Sie im Anfragetext an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:
CLOUD_LOGGING_AND_CLOUD_STORAGE
, um Logs im Bucket der Umgebung und in Cloud Logging zu speichern.CLOUD_LOGGING_ONLY
, um Logs nur in Cloud Logging zu speichern.
{
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Beispiel:
// 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
Geben Sie im Block task_logs_retention_config
im Feld storage_mode
an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:
CLOUD_LOGGING_AND_CLOUD_STORAGE
, um Protokolle im Bucket der Umgebung und in Cloud Logging zu speichern.CLOUD_LOGGING_ONLY
, um Logs nur in Cloud Logging zu speichern.
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"
}
}
}
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.
Beispiel:
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"
}
}
}
}