Creare ambienti Cloud Composer

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Questa pagina spiega come creare un ambiente Cloud Composer.

Prima di iniziare

Passaggio 1: Crea o scegli il account di servizio di un ambiente

Quando crei un ambiente, specifichi un account di servizio. Questo service account è chiamato service account dell'ambiente. Il tuo ambiente utilizza questo account di servizio per eseguire la maggior parte delle operazioni.

Il account di servizio per il tuo ambiente non è un account utente. Un account di serviziot è un particolare tipo di account utilizzato da un'applicazione o da un'istanza di macchina virtuale (VM), non da una persona fisica.

Non puoi modificare il account di servizio del tuo ambiente in un secondo momento.

Se non hai ancora un account di servizio per gli ambienti Cloud Composer nel tuo progetto, crealo.

Consulta Creare ambienti (Terraform) per un esempio esteso di creazione di un account di servizio per il tuo ambiente in Terraform.

Per creare un nuovo account di servizio per il tuo ambiente:

  1. Crea un nuovo service account come descritto nella documentazione di Identity and Access Management.

  2. Assegna un ruolo, come descritto nella documentazione di Identity and Access Management. Il ruolo richiesto è Worker Composer (composer.worker).

  3. Per accedere ad altre risorse nel tuo progetto Google Cloud , concedi autorizzazioni aggiuntive per accedere a queste risorse a questo account di servizio. Il ruolo Worker Composer (composer.worker) fornisce questo insieme di autorizzazioni richiesto nella maggior parte dei casi. Aggiungi autorizzazioni aggiuntive a questo service account solo quando è necessario per il funzionamento dei tuoi DAG.

Passaggio 2: Impostazione di base

Questo passaggio crea un ambiente Cloud Composer con parametri predefiniti nella posizione specificata.

Console

  1. Nella console Google Cloud , vai alla pagina Crea ambiente.

    Vai a Crea ambiente

  2. Nel campo Nome, inserisci un nome per l'ambiente.

    Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare i sottocomponenti dell'ambiente, pertanto devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco di limitazioni.

  3. Nell'elenco a discesa Località, scegli una località per il tuo ambiente.

    Una località è la regione in cui si trova l'ambiente.

  4. Nell'elenco a discesa Versione immagine, seleziona un'immagine Cloud Composer con la versione richiesta di Airflow.

  5. Nell'elenco a discesa Service account, seleziona un account di servizio per il tuo ambiente.

    Se non hai ancora un service account per il tuo ambiente, vedi Creare o scegliere un service account per l'ambiente.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION \
    --service-account "SERVICE_ACCOUNT"

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.

    Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare i sottocomponenti dell'ambiente, pertanto devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco di limitazioni.

  • LOCATION con la regione per l'ambiente.

    Una località è la regione in cui si trova l'ambiente.

  • SERVICE_ACCOUNT con il account di servizio per il tuo ambiente.

  • IMAGE_VERSION: il nome di un'immagine di Cloud Composer.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
"

API

Crea una richiesta API environments.create. Specifica la configurazione nella risorsa Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "IMAGE_VERSION"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • PROJECT_ID con l'ID progetto.

  • LOCATION con la regione per l'ambiente.

    Una località è la regione in cui si trova l'ambiente.

  • ENVIRONMENT_NAME con il nome dell'ambiente.

    Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare i sottocomponenti dell'ambiente, pertanto devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco di limitazioni.

  • IMAGE_VERSION: il nome di un'immagine di Cloud Composer.

  • SERVICE_ACCOUNT con il account di servizio per il tuo ambiente.

Esempio:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-3-airflow-2.10.5-build.10"
    },
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Per creare un ambiente con parametri predefiniti in una posizione specificata, aggiungi il seguente blocco di risorse alla configurazione Terraform ed esegui terraform apply.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.

    Il nome deve iniziare con una lettera minuscola seguita da un massimo di 62 lettere minuscole, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare i sottocomponenti dell'ambiente, pertanto devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco di limitazioni.

  • LOCATION con la regione per l'ambiente.

    Una località è la regione in cui si trova l'ambiente.

  • IMAGE_VERSION: il nome di un'immagine di Cloud Composer.

  • SERVICE_ACCOUNT con il account di servizio per il tuo ambiente.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-3-airflow-2.10.5-build.10"
    }
    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Passaggio 3: (Facoltativo) Configurare i parametri di scalabilità e rendimento dell'ambiente

Per specificare la configurazione di scalabilità e prestazioni per il tuo ambiente, seleziona le dimensioni dell'ambiente e la configurazione dei carichi di lavoro.

Puoi modificare tutti i parametri di prestazioni e scalabilità dopo aver creato un ambiente.

I seguenti parametri controllano la scalabilità e il rendimento:

  • Dimensioni dell'ambiente. Controlla i parametri di rendimento dell'infrastruttura Cloud Composer gestita che include il database Airflow. Se hai intenzione di eseguire un numero elevato di DAG e attività con un rendimento dell'infrastruttura superiore, valuta la possibilità di selezionare dimensioni più grandi per l'ambiente. Ad esempio, le dimensioni maggiori dell'ambiente aumentano la quantità di voci di log delle attività Airflow che l'ambiente può elaborare con un ritardo minimo.

  • Configurazione dei workload. Controlla la scalabilità e le prestazioni dei componenti di Airflow in esecuzione in un cluster GKE del tuo ambiente.

    • Scheduler di Airflow. Analizza i file di definizione DAG, pianifica le esecuzioni dei DAG in base all'intervallo pianificato e accoda le attività per l'esecuzione da parte dei worker di Airflow.

      Il tuo ambiente può eseguire più di uno scheduler Airflow contemporaneamente. Utilizza più scheduler per distribuire il carico tra diverse istanze dello scheduler in modo da migliorare i livelli di prestazioni e affidabilità.

      L'aumento del numero di scheduler non sempre migliora le prestazioni di Airflow. Ad esempio, avere un solo scheduler potrebbe fornire prestazioni migliori rispetto ad averne due. Ciò può accadere quando lo scheduler aggiuntivo non viene utilizzato e quindi consuma risorse del tuo ambiente senza contribuire al rendimento complessivo. Le prestazioni effettive dello scheduler dipendono dal numero di worker Airflow, dal numero di DAG e attività eseguiti nel tuo ambiente e dalla configurazione di Airflow e dell'ambiente.

      Ti consigliamo di iniziare con due scheduler e poi monitorare il rendimento del tuo ambiente. Se modifichi il numero di scheduler, puoi sempre scalare l'ambiente al numero originale di scheduler.

      Per saperne di più sulla configurazione di più scheduler, consulta la documentazione di Airflow.

    • Attivatore del flusso d'aria. Monitora in modo asincrono tutte le attività differite nel tuo ambiente. Se hai almeno un'istanza di attivatore nel tuo ambiente (o almeno due in ambienti a elevata resilienza), puoi utilizzare operatori decriptabili nei tuoi DAG.

      In Cloud Composer 3, il trigger Airflow è abilitato per impostazione predefinita. Se vuoi creare un ambiente senza trigger, imposta il numero di trigger su zero.

    • Processore DAG di Airflow. Elabora i file DAG e li trasforma in oggetti DAG. In Cloud Composer 3, questa parte dello scheduler viene eseguita come componente dell'ambiente separato.

    • Server web Airflow. Esegue l'interfaccia web di Airflow, che consente di monitorare, gestire e visualizzare i tuoi DAG.

    • Worker di Airflow. Esegui le attività pianificate dagli scheduler di Airflow. Il numero minimo e massimo di worker nel tuo ambiente cambia in modo dinamico a seconda del numero di attività in coda.

Console

Puoi selezionare una preimpostazione per il tuo ambiente. Quando selezioni una preimpostazione, vengono selezionati automaticamente i parametri di scala e rendimento per quella preimpostazione. Hai anche la possibilità di selezionare un preset personalizzato e specificare tutti i parametri di scalabilità e rendimento per il tuo ambiente.

Per selezionare la configurazione di scalabilità e prestazioni per il tuo ambiente, nella pagina Crea ambiente:

  • Per utilizzare i valori predefiniti, nella sezione Risorse dell'ambiente, fai clic su Piccola, Media o Grande.

  • Per specificare valori personalizzati per i parametri di scala e rendimento:

    1. Nella sezione Risorse dell'ambiente, fai clic su Personalizzato.

    2. Nella sezione Scheduler, imposta il numero di scheduler che vuoi utilizzare e l'allocazione delle risorse per CPU, memoria e spazio di archiviazione.

    3. Nella sezione Triggerer, utilizza il campo Numero di triggerer per inserire il numero di triggerer nel tuo ambiente.

      Se non vuoi utilizzare operatori differibili nei tuoi DAG, imposta il numero di attivatori su zero.

      Se imposti almeno un trigger per il tuo ambiente, utilizza i campi CPU e Memoria per configurare l'allocazione delle risorse per i trigger.

    4. Nella sezione Processore DAG, specifica il numero di processori DAG nel tuo ambiente e la quantità di CPU, memoria e spazio di archiviazione per ogni processore DAG.

      Gli ambienti a elevata resilienza richiedono almeno due processori DAG.

    5. Nella sezione Web server, specifica la quantità di CPU, memoria e spazio di archiviazione per il web server.

    6. Nella sezione Worker, specifica:

      • Il numero minimo e massimo di worker per i limiti di scalabilità automatica nel tuo ambiente.
      • L'allocazione di CPU, memoria e spazio di archiviazione per i worker
    7. Nella sezione Infrastruttura di base, seleziona le dimensioni dell'ambiente nell'elenco a discesa Dimensioni ambiente.

gcloud

Quando crei un ambiente, i seguenti argomenti controllano i parametri di scalabilità e rendimento dell'ambiente.

  • --environment-size specifica le dimensioni dell'ambiente.
  • --scheduler-count specifica il numero di scheduler.
  • --scheduler-cpu specifica il numero di CPU per uno scheduler Airflow.
  • --scheduler-memory specifica la quantità di memoria per uno scheduler Airflow.
  • --scheduler-storage specifica la quantità di spazio su disco per uno scheduler Airflow.

  • --triggerer-count specifica il numero di triggerer Airflow nel tuo ambiente. Il valore predefinito di questo flag è 0. Hai bisogno di attivatori se vuoi utilizzare operatori differibili nei tuoi DAG.

    • Per gli ambienti di resilienza standard, utilizza un valore compreso tra 0 e 10.
    • Per ambienti altamente resilienti, utilizza 0 o un valore compreso tra 2 e 10.
  • --triggerer-cpu specifica il numero di CPU per un trigger di Airflow, in unità vCPU. Valori consentiti: 0.5, 0.75, 1. Il valore predefinito è 0.5.

  • --triggerer-memory specifica la quantità di memoria per un trigger Airflow, in GB. Il valore predefinito è 0.5.

    La memoria minima richiesta è uguale al numero di CPU allocate per gli attivatori. Il valore massimo consentito è pari al numero di CPU del trigger moltiplicato per 6,5.

    Ad esempio, se imposti il flag --triggerer-cpu su 1, il valore minimo per --triggerer-memory è 1 e il valore massimo è 6.5.

  • --dag-processor-count specifica il numero di processori DAG nel tuo ambiente.

    Gli ambienti a elevata resilienza richiedono almeno due processori DAG.

  • --dag-processor-cpu specifica il numero di CPU per il processore DAG.

  • --dag-processor-memory specifica la quantità di memoria per il processore DAG.

  • --dag-processor-storage specifica la quantità di spazio su disco per il processore DAG.

  • --web-server-cpu specifica il numero di CPU per il server web Airflow.

  • --web-server-memory specifica la quantità di memoria per il server web Airflow.

  • --web-server-storage specifica la quantità di spazio su disco per il server web Airflow.

  • --worker-cpu specifica il numero di CPU per un worker Airflow.

  • --worker-memory specifica la quantità di memoria per un worker Airflow.

  • --worker-storage specifica la quantità di spazio su disco per un worker Airflow.

  • --min-workers specifica il numero minimo di worker Airflow. Il cluster del tuo ambiente esegue almeno questo numero di worker.

  • --max-workers specifica il numero massimo di worker Airflow. Il cluster del tuo ambiente esegue al massimo questo numero di worker.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --environment-size ENVIRONMENT_SIZE \
    --scheduler-count SCHEDULER_COUNT \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --dag-processor-count DAG_PROCESSOR_COUNT \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE \
    --min-workers WORKERS_MIN \
    --max-workers WORKERS_MAX

Sostituisci:

  • ENVIRONMENT_SIZE con small, medium o large.
  • SCHEDULER_COUNT con il numero di scheduler.
  • SCHEDULER_CPU con il numero di CPU per uno scheduler, in unità vCPU.
  • SCHEDULER_MEMORY con la quantità di memoria per uno scheduler.
  • SCHEDULER_STORAGE con le dimensioni del disco per uno scheduler.
  • TRIGGERER_COUNT con il numero di triggerer.
  • TRIGGERER_CPU con il numero di CPU per un trigger, in unità vCPU.
  • TRIGGERER_MEMORY con la quantità di memoria per un triggerer, in GB.

  • DAG_PROCESSOR_COUNT con il numero di processori DAG.

  • DAG_PROCESSOR_CPU con il numero di CPU per il processore DAG.

  • DAG_PROCESSOR_MEMORY con la quantità di memoria per il processore DAG.

  • DAG_PROCESSOR_STORAGE con la quantità di spazio su disco per il processore DAG.

  • WEB_SERVER_CPU con il numero di CPU per il server web, in unità vCPU.

  • WEB_SERVER_MEMORY con la quantità di memoria per il server web.

  • WEB_SERVER_STORAGE con la quantità di memoria per il server web.

  • WORKER_CPU con il numero di CPU per un worker, in unità vCPU.

  • WORKER_MEMORY con la quantità di memoria per un worker.

  • WORKER_STORAGE con la dimensione del disco per un worker.

  • WORKERS_MIN con il numero minimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se un numero inferiore di worker può gestire il carico.

  • WORKERS_MAX con il numero massimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se è necessario un numero maggiore di worker per gestire il carico.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --environment-size small \
    --scheduler-count 1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB \
    --scheduler-storage 2GB \
    --triggerer-count 1 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5GB \
    --dag-processor-count 1 \
    --dag-processor-cpu 0.5 \
    --dag-processor-memory 2GB \
    --dag-processor-storage 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB \
    --min-workers 2 \
    --max-workers 4

API

Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig > WorkloadsConfig, specifica i parametri di scalabilità e prestazioni dell'ambiente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE,
        "count": SCHEDULER_COUNT
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      },
      "dagProcessor": {
        "count": DAG_PROCESSOR_COUNT,
        "cpu": DAG_PROCESSOR_CPU,
        "memoryGb": DAG_PROCESSOR_MEMORY,
        "storageGb": DAG_PROCESSOR_STORAGE
      },
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE,
        "minCount": WORKERS_MIN,
        "maxCount": WORKERS_MAX
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE",
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • SCHEDULER_CPU con il numero di CPU per uno scheduler, in unità vCPU.
  • SCHEDULER_MEMORY con la quantità di memoria per uno scheduler, in GB.
  • SCHEDULER_STORAGE con le dimensioni del disco per uno scheduler, in GB.
  • SCHEDULER_COUNT con il numero di scheduler.

  • TRIGGERER_COUNT con il numero di triggerer. Il valore predefinito è 0. Hai bisogno di attivatori se vuoi utilizzare operatori differibili nei tuoi DAG.

    • Per gli ambienti di resilienza standard, utilizza un valore compreso tra 0 e 10.
    • Per ambienti altamente resilienti, utilizza 0 o un valore compreso tra 2 e 10.

    Se utilizzi almeno un trigger, devi specificare anche i parametri TRIGGERER_CPU e TRIGGERER_MEMORY:

  • TRIGGERER_CPU specifica il numero di CPU per un trigger, in unità vCPU. Valori consentiti: 0.5, 0.75, 1.

  • TRIGGERER_MEMORY configura la quantità di memoria per un trigger. La memoria minima richiesta è uguale al numero di CPU allocate per i trigger. Il valore massimo consentito è pari al numero di CPU del trigger moltiplicato per 6,5.

    Ad esempio, se imposti TRIGGERER_CPU su 1, il valore minimo per TRIGGERER_MEMORY è 1 e il valore massimo è 6.5.

  • DAG_PROCESSOR_COUNT con il numero di processori DAG.

    Gli ambienti a elevata resilienza richiedono almeno due processori DAG.

  • DAG_PROCESSOR_CPU con il numero di CPU per il processore DAG, in unità vCPU.

  • DAG_PROCESSOR_MEMORY con la quantità di memoria per il processore DAG, in GB.

  • DAG_PROCESSOR_STORAGE con la quantità di spazio su disco per il processore DAG, in GB.

  • WEB_SERVER_CPU con il numero di CPU per il server web, in unità vCPU.

  • WEB_SERVER_MEMORY con la quantità di memoria per il server web, in GB.

  • WEB_SERVER_STORAGE con le dimensioni del disco per il server web, in GB.

  • WORKER_CPU con il numero di CPU per un worker, in unità vCPU.

  • WORKER_MEMORY con la quantità di memoria per un worker, in GB.

  • WORKER_STORAGE con le dimensioni del disco per un worker, in GB.

  • WORKERS_MIN con il numero minimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se un numero inferiore di worker può gestire il carico.

  • WORKERS_MAX con il numero massimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se è necessario un numero maggiore di worker per gestire il carico.

  • ENVIRONMENT_SIZE con le dimensioni dell'ambiente, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM o ENVIRONMENT_SIZE_LARGE.

Esempio:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": 2.5,
        "memoryGb": 2.5,
        "storageGb": 2,
        "count": 1
      },
      "triggerer": {
        "cpu": 0.5,
        "memoryGb": 0.5,
        "count": 1
      },
      "dagProcessor": {
        "count": 1,
        "cpu": 0.5,
        "memoryGb": 2,
        "storageGb": 1
      },
      "webServer": {
        "cpu": 1,
        "memoryGb": 2.5,
        "storageGb": 2
      },
      "worker": {
        "cpu": 1,
        "memoryGb": 2,
        "storageGb": 2,
        "minCount": 2,
        "maxCount": 4
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE_SMALL",
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando crei un ambiente, i seguenti argomenti controllano i parametri di scalabilità e rendimento dell'ambiente.

  • Nel blocco config:

    • Il campo environment_size controlla le dimensioni dell'ambiente.
  • Nel blocco workloads_config:

    • Il campo scheduler.cpu specifica il numero di CPU per uno scheduler Airflow.
    • Il campo scheduler.memory_gb specifica la quantità di memoria per uno scheduler Airflow.
    • Il campo scheduler.storage_gb specifica la quantità di spazio su disco per uno scheduler.
    • Il campo scheduler.count specifica il numero di scheduler nel tuo ambiente.
    • Il campo triggerer.cpu specifica il numero di CPU per un trigger di Airflow.
    • Il campo triggerer.memory_gb specifica la quantità di memoria per un triggerer Airflow.
    • Il campo triggerer.count specifica il numero di triggerer nel tuo ambiente.

    • Il campo dag_processor.cpu specifica il numero di CPU per un processore DAG.

    • Il campo dag_processor.memory_gb specifica la quantità di memoria per un processore DAG.

    • Il campo dag_processor.storage_gb specifica la quantità di spazio su disco per un processore DAG.

    • Il campo dag_processor.count specifica il numero di processori DAG.

      Gli ambienti a elevata resilienza richiedono almeno due processori DAG.

    • Il campo web_server.cpu specifica il numero di CPU per il server web di Airflow.

    • Il campo web_server.memory_gb specifica la quantità di memoria per il server web Airflow.

    • Il campo web_server.storage_gb specifica la quantità di spazio su disco per il server web Airflow.

    • Il campo worker.cpu specifica il numero di CPU per un worker Airflow.

    • Il campo worker.memory_gb specifica la quantità di memoria per un worker Airflow.

    • Il campo worker.storage_gb specifica la quantità di spazio su disco per un worker Airflow.

    • Il campo worker.min_count specifica il numero minimo di worker nel tuo ambiente.

    • Il campo worker.max_count specifica il numero massimo di worker nel tuo ambiente.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
      dag_processor {
        cpu = DAG_PROCESSOR_CPU
        memory_gb = DAG_PROCESSOR_MEMORY
        storage_gb = DAG_PROCESSOR_STORAGE
        count = DAG_PROCESSOR_COUNT
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

    environment_size = "ENVIRONMENT_SIZE"

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • SERVICE_ACCOUNT con il account di servizio per il tuo ambiente.
  • SCHEDULER_CPU con il numero di CPU per uno scheduler, in unità vCPU.
  • SCHEDULER_MEMORY con la quantità di memoria per uno scheduler, in GB.
  • SCHEDULER_STORAGE con le dimensioni del disco per uno scheduler, in GB.
  • SCHEDULER_COUNT con il numero di scheduler.
  • TRIGGERER_COUNT con il numero di triggerer.
  • TRIGGERER_CPU con il numero di CPU per un trigger, in unità vCPU.
  • TRIGGERER_MEMORY con la quantità di memoria per un triggerer, in GB.

  • DAG_PROCESSOR_CPU con il numero di CPU per il processore DAG, in unità vCPU.

  • DAG_PROCESSOR_MEMORY con la quantità di memoria per il processore DAG, in GB.

  • DAG_PROCESSOR_STORAGE con la quantità di spazio su disco per il processore DAG, in GB.

  • DAG_PROCESSOR_COUNT con il numero di processori DAG.

  • WEB_SERVER_CPU con il numero di CPU per il server web, in unità vCPU.

  • WEB_SERVER_MEMORY con la quantità di memoria per il server web, in GB.

  • WEB_SERVER_STORAGE con le dimensioni del disco per il server web, in GB.

  • WORKER_CPU con il numero di CPU per un worker, in unità vCPU.

  • WORKER_MEMORY con la quantità di memoria per un worker, in GB.

  • WORKER_STORAGE con le dimensioni del disco per un worker, in GB.

  • WORKERS_MIN con il numero minimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se un numero inferiore di worker può gestire il carico.

  • WORKERS_MAX con il numero massimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se è necessario un numero maggiore di worker per gestire il carico.

  • ENVIRONMENT_SIZE con le dimensioni dell'ambiente, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM o ENVIRONMENT_SIZE_LARGE.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {

      scheduler {
        cpu = 2.5
        memory_gb = 2.5
        storage_gb = 2
        count = 1
      }
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
      dag_processor {
        cpu = 1
        memory_gb = 2
        storage_gb = 1
        count = 1
    }
      web_server {
        cpu = 1
        memory_gb = 2.5
        storage_gb = 2
      }
      worker {
        cpu = 1
        memory_gb = 2
        storage_gb = 2
        min_count = 2
        max_count = 4
      }
    }

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }

  }
}

Passaggio 4: (Facoltativo) Attiva la modalità ad alta resilienza

A resilienza elevata (ad alta disponibilità) Gli ambienti Cloud Composer sono ambienti che utilizzano meccanismi di ridondanza e failover integrati che riducono la suscettibilità dell'ambiente a errori a livello di zona e interruzioni dovute a single point of failure.

Un ambiente a elevata resilienza è multizona e viene eseguito in almeno due zone di una regione selezionata. I seguenti componenti vengono eseguiti in zone separate:

Il numero minimo di worker è impostato su due e il cluster del tuo ambiente distribuisce le istanze worker tra le zone. In caso di interruzione del servizio a livello di zona, le istanze di lavoro interessate vengono riprogrammate in una zona diversa. Il componente Cloud SQL di un ambiente a elevata resilienza ha un'istanza principale e un'istanza di standby distribuite tra le zone.

Console

Nella pagina Crea ambiente:

  1. Nella sezione Modalità di resilienza, seleziona Resilienza elevata.

  2. Nella sezione Risorse ambiente, seleziona i parametri di scalabilità per un ambiente a elevata resilienza. Gli ambienti a resilienza elevata richiedono esattamente due scheduler, zero o un numero compreso tra due e dieci trigger e almeno due worker:

    1. Fai clic su Custom (Personalizzate).

    2. Nell'elenco a discesa Numero di scheduler, seleziona 2.

    3. Nell'elenco a discesa Numero di attivatori, seleziona 0 o un valore compreso tra 2 e 10. Configura l'allocazione di CPU e memoria per i trigger.

    4. Nell'elenco a discesa Numero minimo di worker, seleziona 2 o un valore superiore, a seconda del numero di worker richiesto.

  3. Nella sezione Configurazione di rete:

    1. In Tipo di networking, seleziona Ambiente IP privato.

    2. Se necessario, specifica altri parametri di rete.

gcloud

Quando crei un ambiente, l'argomento --enable-high-resilience attiva la modalità ad alta resilienza.

Imposta i seguenti argomenti:

  • --enable-high-resilience
  • --enable-private-environment e altri parametri di networking per un ambiente IP privato, se necessario
  • Da --scheduler-count a 2
  • --triggerer-count-0 o un valore compreso tra 2 e 10. Se utilizzi gli attivatori, sono necessari anche i flag --triggerer-cpu and--triggerer-memory` per la creazione dell'ambiente.

    Per ulteriori informazioni sui flag --triggerer-count, --triggerer-cpu e --triggerer-memory, consulta Configurare i parametri di scalabilità e prestazioni dell'ambiente.

  • Da --min-workers a 2 o più

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-high-resilience \
    --enable-private-environment \
    --scheduler-count 2 \
    --triggerer-count 2 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5 \
    --min-workers 2

API

Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig, attiva la modalità ad alta resilienza.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE",
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }

  }
}

Esempio:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE",
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }

  }
}

Terraform

Quando crei un ambiente, il campo resilience_mode nel blocco config attiva la modalità di resilienza elevata.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "HIGH_RESILIENCE"

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }

  }
}

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "HIGH_RESILIENCE"

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Passaggio 5: (Facoltativo) Specifica una zona per il database dell'ambiente

Puoi specificare una zona Cloud SQL preferita quando crei un ambiente di resilienza standard.

Console

Nella pagina Crea ambiente:

  1. Nella sezione Configurazione avanzata, espandi l'elemento Mostra configurazione avanzata.

  2. Nell'elenco Zona del database Airflow, seleziona una zona Cloud SQL preferita.

gcloud

Quando crei un ambiente, l'argomento --cloud-sql-preferred-zone specifica una zona Cloud SQL preferita.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --cloud-sql-preferred-zone SQL_ZONE

Sostituisci quanto segue:

  • SQL_ZONE: zona Cloud SQL preferita. Questa zona deve trovarsi nella regione in cui si trova l'ambiente.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --cloud-sql-preferred-zone us-central1-a

API

Quando crei un ambiente, nella risorsa Environment > DatabaseConfig, specifica la zona Cloud SQL preferita.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "databaseConfig": {
      "zone": "SQL_ZONE"
    },
      "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci quanto segue:

  • SQL_ZONE: zona Cloud SQL preferita. Questa zona deve trovarsi nella regione in cui si trova l'ambiente.

Esempio:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "databaseConfig": {
      "zone": "us-central1-a"
    },
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando crei un ambiente, il campo zone nel blocco database_config specifica la zona Cloud SQL preferita.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    database_config {
      zone = "SQL_ZONE"
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci quanto segue:

  • SQL_ZONE: zona Cloud SQL preferita. Questa zona deve trovarsi nella regione in cui si trova l'ambiente.

Passaggio 6: (Facoltativo) Configura il networking del tuo ambiente

Puoi configurare il networking di Cloud Composer 3 nei seguenti modi:

Console

  1. Assicurati che la rete sia configurata per il tipo di ambiente che vuoi creare.

  2. Nella sezione Configurazione di rete, espandi l'elemento Mostra configurazione di rete.

  3. Se vuoi connettere il tuo ambiente a una rete VPC, seleziona un collegamento di rete nel campo Collegamento di rete. Puoi anche creare un nuovo collegamento di rete. Per maggiori informazioni, consulta Connettere un ambiente a una rete VPC.

  4. Se vuoi creare un ambiente IP privato, nella sezione Tipo di networking seleziona l'opzione Ambiente IP privato.

  5. Se vuoi aggiungere tag di rete, consulta l'articolo Aggiungere tag di rete per maggiori informazioni.

gcloud

Assicurati che la rete sia configurata per il tipo di ambiente che vuoi creare.

Quando crei un ambiente, i seguenti argomenti controllano i parametri di rete. Se ometti un parametro, viene utilizzato il valore predefinito.

  • --enable-private-environment consente un ambiente IP privato.

  • --network specifica l'ID della tua rete VPC.

  • --subnetwork specifica l'ID subnet VPC.

Esempio (ambiente IP privato con una rete VPC connessa)

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-private-environment \
    --network NETWORK_ID \
    --subnetwork SUBNETWORK_ID \

Sostituisci:

  • NETWORK_ID con l'ID rete VPC.
  • SUBNETWORK_ID con l'ID subnet VPC.

Passaggio 7. (Facoltativo) Aggiungere tag di rete

I tag di rete vengono applicati a tutte le VM dei nodi nel cluster dell'ambiente. I tag vengono utilizzati per identificare origini o destinazioni valide per i firewall di rete. Ogni tag all'interno dell'elenco deve essere conforme allo standard RFC 1035.

Ad esempio, potresti voler aggiungere tag di rete se prevedi di limitare il traffico per un ambiente IP privato con regole firewall.

Console

Nella pagina Crea ambiente:

  1. Individua la sezione Configurazione di rete.
  2. Nel campo Tag di rete, inserisci i tag di rete per il tuo ambiente.

gcloud

Quando crei un ambiente, i seguenti argomenti controllano i tag di rete:

  • --tags specifica un elenco separato da virgole di tag di rete applicati a tutte le VM del nodo.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --tags TAGS

Sostituisci:

  • TAGS con un elenco separato da virgole di tag di rete.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --tags group1,production

API

Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig, specifica i tag di rete per l'ambiente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "tags": [
        "TAG"
      ],
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • TAG con un tag di rete.

Esempio:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "tags": [
        "group1",
        "production"
      ],
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando crei un ambiente, i seguenti campi definiscono i tag di rete per il tuo ambiente:

  • Il campo tags nel blocco node_config specifica un elenco separato da virgole di tag di rete applicati a tutte le VM del nodo.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      tags = ["TAGS"]
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • TAGS con un elenco separato da virgole di tag di rete.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      tags = ["group1","production"]
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Passaggio 8. (Facoltativo) Configurare l'accesso di rete al server web

I parametri di accesso al server web Airflow non dipendono dal tipo di ambiente. Puoi invece configurare l'accesso al server web separatamente. Ad esempio, un ambiente IP privato può comunque avere l'interfaccia utente di Airflow accessibile da internet.

Non puoi configurare gli intervalli IP consentiti utilizzando indirizzi IP privati.

Console

Nella pagina Crea ambiente:

  1. Nella sezione Configurazione di rete, espandi l'elemento Mostra configurazione di rete.

  2. Nella sezione Controllo dell'accesso di rete al server web:

    • Per fornire l'accesso al server web Airflow da tutti gli indirizzi IP, seleziona Consenti l'accesso da tutti gli indirizzi IP.

    • Per limitare l'accesso solo a intervalli IP specifici, seleziona Consenti l'accesso solo da indirizzi IP specifici. Nel campo Intervallo IP, specifica un intervallo IP in notazione CIDR. Nel campo Descrizione, specifica una descrizione facoltativa per questo intervallo. Se vuoi specificare più di un intervallo, fai clic su Aggiungi intervallo IP.

    • Per vietare l'accesso a tutti gli indirizzi IP, seleziona Consenti l'accesso solo da indirizzi IP specifici e fai clic su Elimina elemento accanto alla voce di intervallo vuota.

gcloud

Quando crei un ambiente, i seguenti argomenti controllano il livello di accesso al server web:

  • --web-server-allow-all fornisce l'accesso ad Airflow da tutti gli indirizzi IP. Questa è l'opzione predefinita.

  • --web-server-allow-ip limita l'accesso solo a intervalli IP di origine specifici. Per specificare più intervalli IP, utilizza questo argomento più volte.

  • --web-server-deny-all vieta l'accesso per tutti gli indirizzi IP.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Sostituisci:

  • WS_IP_RANGE con l'intervallo IP, nella notazione CIDR, che può accedere all'interfaccia utente di Airflow.
  • WS_RANGE_DESCRIPTION con la descrizione dell'intervallo IP.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"

API

Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig, specifica i parametri di accesso al server web.

  • Per fornire l'accesso al server web Airflow da tutti gli indirizzi IP, ometti webServerNetworkAccessControl.

  • Per limitare l'accesso solo a intervalli IP specifici, specifica uno o più intervalli in allowedIpRanges.

  • Per vietare l'accesso a tutti gli indirizzi IP, aggiungi allowedIpRanges e crea un elenco vuoto. Non specificare intervalli IP.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    },
      "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • WS_IP_RANGE con l'intervallo IP, nella notazione CIDR, che può accedere all'interfaccia utente di Airflow.
  • WS_RANGE_DESCRIPTION con la descrizione dell'intervallo IP.

Esempio:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    },
      "nodeConfig": {
        "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando crei un ambiente, il blocco allowed_ip_range nel blocco web_server_network_access_control contiene intervalli IP che possono accedere al server web.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • WS_IP_RANGE con l'intervallo IP, nella notazione CIDR, che può accedere all'interfaccia utente di Airflow.
  • WS_RANGE_DESCRIPTION con la descrizione dell'intervallo IP.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }
    }

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }

}

Passaggio 9: (Facoltativo) Specifica gli override della configurazione di Airflow e le variabili di ambiente

Puoi configurare gli override della configurazione di Airflow e le variabili di ambiente quando crei un ambiente. In alternativa, puoi farlo in un secondo momento, dopo aver creato l'ambiente.

Alcune opzioni di configurazione di Airflow sono bloccate e non puoi eseguirne l'override.

Per l'elenco delle opzioni di configurazione di Airflow disponibili, consulta Riferimento alla configurazione per Airflow 2 e Airflow 1.10.*.

Per specificare gli override della configurazione Airflow e le variabili di ambiente:

Console

Nella pagina Crea ambiente:

  1. Nella sezione Variabili di ambiente, fai clic su Aggiungi variabile di ambiente.

  2. Inserisci il Nome e il Valore della variabile di ambiente.

  3. Nella sezione Override della configurazione Airflow, fai clic su Aggiungi override della configurazione Airflow.

  4. Inserisci Sezione, Chiave e Valore per l'override dell'opzione di configurazione.

    Ad esempio:

    Sezione Chiave Valore
    webserver dag_orientation TB

gcloud

Quando crei un ambiente, i seguenti argomenti controllano le variabili di ambiente e gli override della configurazione di Airflow:

  • --env-variables specifica un elenco separato da virgole di variabili di ambiente.

    I nomi delle variabili possono contenere lettere maiuscole e minuscole, cifre e trattini bassi, ma non possono iniziare con una cifra.

  • --airflow-configs specifica un elenco di chiavi e valori separati da virgole per gli override della configurazione di Airflow.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Sostituisci:

  • ENV_VARS con un elenco di coppie NAME=VALUE separate da virgole per le variabili di ambiente.
  • CONFIG_OVERRIDES con un elenco separato da virgole di coppie SECTION-KEY=VALUE per gli override della configurazione. Separa il nome della sezione di configurazione con il simbolo -, seguito dal nome della chiave. Ad esempio: core-dags_are_paused_at_creation.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --env-variables SENDGRID_MAIL_FROM=[email protected],SENDGRID_API_KEY=example-key \
    --airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB

API

Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig, specifica le variabili di ambiente e gli override della configurazione di Airflow.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "SECTION-KEY": "OVERRIDE_VALUE"
      },
      "envVariables": {
        "VAR_NAME": "VAR_VALUE",
      }
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • SECTION con la sezione del file di configurazione in cui si trova l'opzione di configurazione di Airflow.
  • KEY con il nome dell'opzione di configurazione di Airflow.
  • OVERRIDE_VALUE con un valore dell'opzione di configurazione di Airflow.
  • VAR_NAME con il nome della variabile di ambiente.
  • VAR_VALUE con il valore della variabile di ambiente.

Esempio:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "core-dags_are_paused_at_creation": "True",
        "webserver-dag_orientation": "TB"
      },
      "envVariables": {
        "SENDGRID_MAIL_FROM": "[email protected]",
        "SENDGRID_API_KEY": "example-key"
      }
    },
    "nodeConfig": {
        "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando crei un ambiente, i seguenti blocchi controllano le variabili di ambiente e gli override della configurazione di Airflow:

  • Il blocco env_variables nel blocco software_config specifica le variabili di ambiente.

    I nomi delle variabili possono contenere lettere maiuscole e minuscole, cifre e trattini bassi, ma non possono iniziare con una cifra.

  • Il blocco airflow_config_overrides nel blocco software_config specifica gli override della configurazione Airflow.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }

  }
}

Sostituisci:

  • SECTION con la sezione del file di configurazione in cui si trova l'opzione di configurazione di Airflow.
  • KEY con il nome dell'opzione di configurazione di Airflow.
  • OVERRIDE_VALUE con un valore dell'opzione di configurazione di Airflow.
  • VAR_NAME con il nome della variabile di ambiente.
  • VAR_VALUE con il valore della variabile di ambiente.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    software_config {

      airflow_config_overrides = {
        core-dags_are_paused_at_creation = "True"
        webserver-dag_orientation = "TB"
      }

      env_variables = {
        SENDGRID_MAIL_FROM = "[email protected]"
        SENDGRID_API_KEY = "example-key"
      }
    }

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Passaggio 10: (Facoltativo) Specifica i periodi di manutenzione

I periodi di manutenzione predefiniti in Cloud Composer 3 sono definiti nel seguente modo:

  • Tutti gli orari sono espressi nel fuso orario locale della regione in cui si trova il tuo ambiente, ma l'ora legale non viene presa in considerazione.
  • I periodi di manutenzione di martedì, mercoledì, giovedì e venerdì vanno dalle 00:00:00 alle 02:00:00.
  • Nei periodi di manutenzione di sabato, domenica e lunedì, l'orario è dalle 00:00:00 alle 04:00:00.

Per specificare periodi di manutenzione personalizzati per il tuo ambiente:

Console

Nella pagina Crea ambiente

  1. Individua la sezione Periodi di manutenzione.

  2. Nell'elenco a discesa Fuso orario, scegli un fuso orario per le finestre di manutenzione.

  3. Imposta Ora di inizio, Giorni e Durata in modo che:

    • Almeno 12 ore di tempo sono allocate in una singola settimana.

    • Puoi utilizzare più fasce orarie, ma la durata di ciascuna deve essere di almeno 4 ore.

    Ad esempio, un periodo di 4 ore ogni lunedì, mercoledì e venerdì fornisce la quantità di tempo richiesta.

gcloud

I seguenti argomenti definiscono i parametri dei periodi di manutenzione:

  • --maintenance-window-start imposta l'ora di inizio di un periodo di manutenzione.
  • --maintenance-window-end imposta l'ora di fine di un periodo di manutenzione.
  • --maintenance-window-recurrence imposta la ricorrenza del periodo di manutenzione.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • DATETIME_START con la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora specificata del giorno, la data specificata viene ignorata.
  • DATETIME_END con la data e l'ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora specificata del giorno, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.
  • MAINTENANCE_RECURRENCE con una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Cloud Composer supporta due formati:

  • Il formato FREQ=DAILY specifica una ricorrenza giornaliera.

  • Il formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA specifica una ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data del 1° gennaio 2023 viene ignorata.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-3-airflow-2.10.5-build.10 \
  --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig, specifica i parametri delle finestre di manutenzione:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "maintenanceWindow": {
        "startTime": "DATETIME_START",
        "endTime": "DATETIME_END",
        "recurrence": "MAINTENANCE_RECURRENCE"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • DATETIME_START con la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata.
  • DATETIME_END con la data e l'ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.
  • MAINTENANCE_RECURRENCE con una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Cloud Composer supporta due formati:

  • Il formato FREQ=DAILY specifica una ricorrenza giornaliera.

  • Il formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA specifica una ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data del 1° gennaio 2023 viene ignorata.

Esempio:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Terraform

Il blocco maintenance_window specifica i periodi di manutenzione per il tuo ambiente:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

  • DATETIME_START con la data e l'ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata.
  • DATETIME_END con la data e l'ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata, la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.
  • MAINTENANCE_RECURRENCE con una RRULE RFC 5545 per la ricorrenza dei periodi di manutenzione. Cloud Composer supporta due formati:

    • Il formato FREQ=DAILY specifica una ricorrenza giornaliera.
    • Il formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA specifica una ricorrenza nei giorni della settimana selezionati.

L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data del 1° gennaio 2023 viene ignorata.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Passaggio 11. (Facoltativo) Integrazione della derivazione dei dati

La derivazione dei dati è una funzionalità di Dataplex Universal Catalog che consente di monitorare lo spostamento dei dati.

L'integrazione della derivazione dei dati è disponibile in tutte le versioni di Cloud Composer 3.

L'integrazione della derivazione dei dati viene abilitata automaticamente in un nuovo ambiente Cloud Composer se vengono soddisfatte le seguenti condizioni:

  • L'API Data Lineage è abilitata nel tuo progetto. Per saperne di più, consulta la sezione Attivazione dell'API Data Lineage nella documentazione di Dataplex Universal Catalog.

  • Un backend Lineage personalizzato non è configurato in Airflow.

Puoi disattivare l'integrazione della derivazione dei dati quando crei un ambiente. Ad esempio, se vuoi ignorare il comportamento automatico o scegliere di attivare la derivazione dei dati in un secondo momento, dopo la creazione dell'ambiente.

Console

Per disattivare l'integrazione della derivazione dei dati, nella pagina Crea ambiente:

  1. Nella sezione Configurazione avanzata, espandi l'elemento Mostra configurazione avanzata.

  2. Nella sezione Integrazione della derivazione dei dati Dataplex, seleziona Disabilita l'integrazione con la derivazione dei dati Dataplex.

gcloud

Quando crei un ambiente, l'argomento --disable-cloud-data-lineage-integration disattiva l'integrazione della derivazione dei dati.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --disable-cloud-data-lineage-integration

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --disable-cloud-data-lineage-integration

Passaggio 12. (Facoltativo) Configurare la crittografia dei dati (CMEK)

Per impostazione predefinita, i dati nel tuo ambiente sono criptati con una chiave fornita da Google.

Per utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati nel tuo ambiente, segui le istruzioni descritte in Utilizzo delle chiavi di crittografia gestite dal cliente.

Passaggio 13. (Facoltativo) Utilizza il bucket di un ambiente personalizzato

Quando crei un ambiente, Cloud Composer crea automaticamente un bucket per l'ambiente.

In alternativa, puoi specificare un bucket Cloud Storage personalizzato dal tuo progetto. Il tuo ambiente utilizza questo bucket nello stesso modo del bucket creato automaticamente.

Per utilizzare un bucket dell'ambiente personalizzato, segui le istruzioni riportate in Utilizzare il bucket di un ambiente personalizzato.

Passaggio 14. (Facoltativo) Configurare la conservazione del database

Se abiliti la conservazione del database nel tuo ambiente, Cloud Composer rimuove periodicamente dal database Airflow i record relativi alle esecuzioni DAG e alle sessioni utente precedenti al periodo di tempo specificato. Le informazioni sull'esecuzione del DAG più recente vengono sempre conservate.

Per impostazione predefinita, la conservazione del database è abilitata. Per configurare il periodo di conservazione per un nuovo ambiente o disattivare la conservazione del database, segui le istruzioni descritte in Configurare la norma di conservazione del database. Puoi anche configurare la conservazione del database in un secondo momento.

Passaggio 15. (Facoltativo) Specifica le etichette dell'ambiente

Puoi assegnare etichette ai tuoi ambienti per suddividere i costi di fatturazione in base a queste etichette.

Console

Nella sezione Etichette della pagina Crea ambiente:

  1. Fai clic su Aggiungi etichetta.

  2. Nei campi Chiave e Valore, specifica le coppie chiave-valore per le etichette dell'ambiente.

gcloud

Quando crei un ambiente, l'argomento --labels specifica un elenco separato da virgole di chiavi e valori con etichette dell'ambiente.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "SERVICE_ACCOUNT" \
    --labels LABELS

Sostituisci:

  • LABELS con un elenco di coppie KEY=VALUE separate da virgole per le etichette dell'ambiente.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.10.5-build.10 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --labels owner=engineering-team,env=production

API

Quando crei un ambiente, nella risorsa Environment, specifica le etichette per l'ambiente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  }
}

Sostituisci:

  • LABEL_KEY con una chiave dell'etichetta dell'ambiente.
  • LABEL_VALUE con un valore dell'etichetta dell'ambiente.

Esempio:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "labels": {
    "owner": "engineering-team",
    "env": "production"
  }
}

Terraform

Quando crei un ambiente, specifica le etichette nel blocco labels ( al di fuori del blocco config).

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Sostituisci:

  • LABEL_KEY con una chiave dell'etichetta dell'ambiente.
  • LABEL_VALUE con un valore dell'etichetta dell'ambiente.

Esempio:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  labels = {
    owner = "engineering-team"
    env = "production"
  }

}

Passaggi successivi