Creazione di ambienti Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Questa pagina spiega come creare un ambiente Cloud Composer 1.

Un ambiente Cloud Composer è un'installazione autonoma di Apache Airflow di cui è stato eseguito il deployment in un cluster Google Kubernetes Engine gestito. Puoi creare uno o più ambienti in un singolo progetto Google Cloud.

Prima di iniziare

Passaggio 1: Configurazione di base

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

Console

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

    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 sottocomponenti, quindi devi specificare un nome che sia valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco delle limitazioni.

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

    La località è la regione in cui si trova il cluster GKE dell'ambiente.

  4. Vai al passaggio successivo o fai clic su Crea per creare un ambiente.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION

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 sottocomponenti, quindi devi specificare un nome che sia valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco delle limitazioni.

  • LOCATION con la regione per l'ambiente.

    La località è la regione in cui si trova il cluster GKE dell'ambiente.

  • IMAGE_VERSION con il nome dell'immagine Cloud Composer. Se ometti questo argomento, viene utilizzata l'immagine Cloud Composer più recente per Cloud Composer 1. Puoi anche usare composer-1-airflow-1.10 per creare un ambiente con l'immagine Cloud Composer più recente.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15

API

Creare 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"
      }
    }
}

Sostituisci:

  • PROJECT_ID con l'ID progetto.

  • LOCATION con la regione per l'ambiente.

    La località è la regione in cui si trova il cluster GKE dell'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 sottocomponenti, quindi devi specificare un nome che sia valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco delle limitazioni.

  • IMAGE_VERSION con il nome dell'immagine Cloud Composer. Se ometti questo argomento, viene utilizzata l'immagine Cloud Composer più recente per Cloud Composer 1. Puoi anche utilizzare composer-1-airflow-1.10 per creare un ambiente con l'immagine di Cloud Composer più recente.

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-1.20.12-airflow-1.10.15"
      }
    }
}

Terraform

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

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
  }
}

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 sottocomponenti, quindi devi specificare un nome che sia valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket per un elenco delle limitazioni.

  • LOCATION con la regione per l'ambiente.

    La località è la regione in cui si trova il cluster GKE dell'ambiente.

  • IMAGE_VERSION con il nome dell'immagine Cloud Composer. Se ometti questo argomento, viene utilizzata l'immagine Cloud Composer più recente per Cloud Composer 1. Puoi anche utilizzare composer-1-airflow-1.10 per creare un ambiente con l'immagine di Cloud Composer più recente.

Esempio:

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

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
  }

}

Passaggio 2: (Facoltativo) Seleziona un account di servizio per il tuo ambiente

I nodi nel cluster del tuo ambiente vengono eseguiti come questo account di servizio.

Per impostazione predefinita, gli ambienti Cloud Composer utilizzano l'account di servizio predefinito di Compute Engine. Ti consigliamo di configurare un account di servizio gestito dall'utente per i tuoi ambienti Cloud Composer.

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

Console

Nella pagina Crea ambiente, nella sezione Configurazione nodo, seleziona un account di servizio per il tuo ambiente nell'elenco a discesa Account di servizio.

gcloud

Quando crei un ambiente, --service-account specifica l'account di servizio per l'ambiente.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "SERVICE_ACCOUNT"

Sostituisci:

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

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Quando crei un ambiente, nella risorsa Ambiente > EnvironmentConfig, specifica un account di servizio per il tuo ambiente.

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

Sostituisci:

  • SERVICE_ACCOUNT con l'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": {
    "nodeConfig": {
      "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Terraform

Quando crei un ambiente, utilizza il campo service_account nel blocco node_config.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Sostituisci:

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

Esempio:

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

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

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

Per specificare la configurazione di scalabilità e prestazioni per il tuo ambiente, fornisci il numero di nodi nel cluster GKE del tuo ambiente e seleziona i tipi di macchine per i componenti di ambiente.

Console

Nella pagina Crea ambiente:

  1. Nella sezione Configurazione nodo:

    • Inserisci il Conteggio nodi.

      Il numero di nodi è il numero di nodi di Google Kubernetes Engine nel cluster GKE dell'ambiente. Per impostazione predefinita, gli ambienti hanno 3 nodi.

      Puoi modificare questo valore dopo aver creato l'ambiente.

    • Scegli Tipo di macchina per i nodi.

      Il tipo di macchina per i nodi è tipo di macchina Compute Engine utilizzato per le istanze del cluster. Questo parametro determina il numero di CPU e la quantità di memoria per il tuo ambiente. Il tipo di macchina predefinito è n1-standard-1.

      Per modificare questo valore dopo aver creato l'ambiente, devi riconfigurare manualmente il cluster di ambiente.

    • Inserisci le Dimensioni del disco.

      Le dimensioni del disco, in GB, per i nodi di ambiente. Ogni nodo nel tuo ambiente ha questa quantità di spazio su disco. Seleziona una dimensione del disco più grande se prevedi di archiviare un volume elevato di dati in cartelle sincronizzate con le VM dell'ambiente. Ad esempio, nella cartella /data del bucket del tuo ambiente.

      La dimensione minima è 30 GB. La dimensione predefinita è 100 GB. Non puoi modificare questo parametro dopo aver creato un ambiente.

    • Scegli il Numero di scheduler.

      Il tuo ambiente può eseguire più scheduler Airflow contemporaneamente. Utilizza più scheduler per distribuire il carico tra diverse istanze dello scheduler, in modo da migliorare le prestazioni e l'affidabilità.

      Puoi specificare un numero di scheduler fino al numero di nodi nel tuo ambiente.

      L'aumento del numero di scheduler non migliora sempre le prestazioni di Airflow. Ad esempio, avere un solo scheduler può offrire prestazioni migliori rispetto a due. Questo può accadere quando lo scheduler aggiuntivo non viene utilizzato, consumando risorse del tuo ambiente senza contribuire alle prestazioni generali. Le prestazioni effettive dello scheduler dipendono dal numero di worker di Airflow, dal numero di DAG e di attività in esecuzione nel tuo ambiente e dalla configurazione di Airflow e dell'ambiente.

      Ti consigliamo di iniziare con due scheduler e di monitorare le prestazioni dell'ambiente. Se modifichi il numero di scheduler, puoi sempre scalare il tuo ambiente per riportarlo al numero originale.

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

  2. Espandi la voce Networking, override della configurazione di Airflow e funzionalità aggiuntive.

  3. Nella sezione Configurazione Cloud SQL, scegli Tipo di macchina Cloud SQL.

    Questo parametro determina il tipo di macchina per l'istanza Cloud SQL che esegue il database Airflow. Il tipo di macchina Cloud SQL predefinito è db-n1-standard-2.

  4. Nella sezione Configurazione server web, scegli Tipo di macchina server web.

    Questo parametro determina il tipo di macchina per l'istanza Compute Engine che esegue il server web Airflow.

    Il tipo di macchina del server web predefinito è composer-n1-webserver-2.

gcloud

Quando crei un ambiente, i seguenti argomenti controllano la scalabilità e i parametri delle prestazioni dell'ambiente:

  • --node-count specifica il numero di nodi nel tuo ambiente.

    Il numero di nodi è il numero di nodi di Google Kubernetes Engine nel cluster GKE dell'ambiente. Per impostazione predefinita, gli ambienti hanno 3 nodi.

    Puoi modificare questo valore dopo aver creato l'ambiente.

  • --scheduler-count specifica il numero di scheduler nel tuo ambiente.

    Il tuo ambiente può eseguire più scheduler Airflow contemporaneamente. Utilizza più scheduler per distribuire il carico tra diverse istanze dello scheduler, in modo da migliorare le prestazioni e l'affidabilità.

    Puoi specificare un numero di scheduler fino al numero di nodi nel tuo ambiente.

    L'aumento del numero di scheduler non migliora sempre le prestazioni di Airflow. Ad esempio, avere un solo scheduler può offrire prestazioni migliori rispetto a due. Questo può accadere quando lo scheduler aggiuntivo non viene utilizzato, consumando risorse del tuo ambiente senza contribuire alle prestazioni generali. Le prestazioni effettive dello scheduler dipendono dal numero di worker di Airflow, dal numero di DAG e di attività in esecuzione nel tuo ambiente e dalla configurazione di Airflow e dell'ambiente.

    Ti consigliamo di iniziare con due scheduler e di monitorare le prestazioni dell'ambiente. Se modifichi il numero di scheduler, puoi sempre scalare il tuo ambiente per riportarlo al numero originale.

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

  • --disk-size specifica la dimensione del disco per le VM dell'ambiente.

    Le dimensioni del disco, in GB, per i nodi di ambiente. Ogni nodo nel tuo ambiente ha questa quantità di spazio su disco. Seleziona una dimensione del disco più grande se prevedi di archiviare un volume elevato di dati in cartelle sincronizzate con le VM dell'ambiente. Ad esempio, nella cartella /data del bucket del tuo ambiente.

    La dimensione minima è 30 GB. La dimensione predefinita è 100 GB. Non puoi modificare questo parametro dopo aver creato un ambiente.

  • --machine-type specifica il tipo di macchina per le VM nodo.

    Il tipo di macchina per i nodi è tipo di macchina Compute Engine utilizzato per le istanze del cluster. Questo parametro determina il numero di CPU e la quantità di memoria per il tuo ambiente. Il tipo di macchina predefinito è n1-standard-1.

    Per modificare questo valore dopo aver creato l'ambiente, devi riconfigurare manualmente il cluster di ambiente.

  • --cloud-sql-machine-type specifica il tipo di macchina per l'istanza Cloud SQL.

    Questo parametro determina il tipo di macchina per l'istanza Cloud SQL che esegue il database Airflow. Il tipo di macchina Cloud SQL predefinito è db-n1-standard-2.

  • --web-server-machine-type specifica il tipo di macchina per l'istanza del server web Airflow.

    Questo parametro determina il tipo di macchina per l'istanza Compute Engine che esegue il server web Airflow.

    Il tipo di macchina del server web predefinito è composer-n1-webserver-2.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone NODE_ZONE \
    --node-count NODE_COUNT \
    --scheduler-count SCHEDULER_COUNT \
    --disk-size DISK_SIZE \
    --machine-type NODE_MACHINE_TYPE \
    --cloud-sql-machine-type SQL_MACHINE_TYPE \
    --web-server-machine-type WS_MACHINE_TYPE

Sostituisci:

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone us-central1-a \
    --node-count 6 \
    --scheduler-count 1 \
    --disk-size 50 \
    --machine-type n1-standard-2 \
    --cloud-sql-machine-type db-n1-standard-2 \
    --web-server-machine-type composer-n1-webserver-2

API

Quando crei un ambiente, nella risorsa Ambiente > EnvironmentConfig, specifica i parametri delle prestazioni e della scalabilità dell'ambiente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeCount": NODE_COUNT,
    "nodeConfig": {
      "machineType": "NODE_MACHINE_TYPE",
      "diskSizeGb": DISK_SIZE
    },
    "softwareConfig": {
      "schedulerCount": SCHEDULER_COUNT
    },
    "databaseConfig": {
      "machineType": "SQL_MACHINE_TYPE"
    },
    "webServerConfig": {
      "machineType": "WS_MACHINE_TYPE"
    }
  }
}

Sostituisci:

  • NODE_COUNT con il numero di nodi.
  • DISK_SIZE con le dimensioni del disco per le VM dell'ambiente, in GB.
  • NODE_MACHINE_TYPE con il tipo di macchina per le VM nodo. Questo valore deve contenere una zona per le VM dell'ambiente.
  • SCHEDULER_COUNT con il numero di scheduler.
  • SQL_MACHINE_TYPE con il tipo di macchina per l'istanza Cloud SQL.
  • WS_MACHINE_TYPE con il tipo di macchina per l'istanza del server web Airflow.

Esempio:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeCount": 6,
    "nodeConfig": {
      "machineType": "projects/example-project/zones/us-central1-a/machineTypes/n1-standard-2",
      "diskSizeGb": 50
    },
    "softwareConfig": {
      "schedulerCount": 1
    },
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    },
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

Quando crei un ambiente, i seguenti campi controllano la scalabilità e i parametri delle prestazioni dell'ambiente:

  • node_count nel blocco node_config specifica il numero di nodi nel tuo ambiente.

    Il numero di nodi è il numero di nodi di Google Kubernetes Engine nel cluster GKE dell'ambiente. Per impostazione predefinita, gli ambienti hanno 3 nodi.

    Puoi modificare questo valore dopo aver creato l'ambiente.

  • disk_size_gb nel blocco node_config specifica le dimensioni del disco per le VM dell'ambiente.

    Le dimensioni del disco, in GB, per i nodi di ambiente. Ogni nodo nel tuo ambiente ha questa quantità di spazio su disco. Seleziona una dimensione del disco più grande se prevedi di archiviare un volume elevato di dati in cartelle sincronizzate con le VM dell'ambiente. Ad esempio, nella cartella /data del bucket del tuo ambiente.

    La dimensione minima è 30 GB. La dimensione predefinita è 100 GB. Non puoi modificare questo parametro dopo aver creato un ambiente.

  • machine_type nel blocco node_config specifica il tipo di macchina per le VM nodo. Quando specifichi questo campo, fornisci anche una zona Compute Engine per le VM del tuo ambiente nel campo zone.

    Il tipo di macchina per i nodi è tipo di macchina Compute Engine utilizzato per le istanze del cluster. Questo parametro determina il numero di CPU e la quantità di memoria per il tuo ambiente. Il tipo di macchina predefinito è n1-standard-1.

    Per modificare questo valore dopo aver creato l'ambiente, devi riconfigurare manualmente il cluster di ambiente.

  • machine_type nel blocco database_config specifica il tipo di macchina per l'istanza Cloud SQL.

    Questo parametro determina il tipo di macchina per l'istanza Cloud SQL che esegue il database Airflow. Il tipo di macchina Cloud SQL predefinito è db-n1-standard-2.

  • machine_type nel blocco web_server_config specifica il tipo di macchina per l'istanza del server web Airflow.

    Questo parametro determina il tipo di macchina per l'istanza Compute Engine che esegue il server web Airflow.

    Il tipo di macchina del server web predefinito è composer-n1-webserver-2.

  • Il campo scheduler_count nel blocco software_config specifica il numero di scheduler nel tuo ambiente. Il tuo ambiente deve utilizzare Airflow 2.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      node_count = NODE_COUNT
      disk_size_gb = DISK_SIZE
      machine_type = "NODE_MACHINE_TYPE"
      zone = "NODE_ZONE"
    }

    software_config {
      scheduler_count = SCHEDULER_COUNT
    }

    database_config {
      machine_type = "SQL_MACHINE_TYPE"
    }

    web_server_config {
      machine_type = "WS_MACHINE_TYPE"
    }
  }
}

Sostituisci:

  • NODE_COUNT con il numero di nodi.
  • DISK_SIZE con le dimensioni del disco per le VM dell'ambiente, in GB.
  • NODE_MACHINE_TYPE con il tipo di macchina per le VM nodo.
  • NODE_ZONE con la zona di Compute Engine per le VM del tuo ambiente.
  • SCHEDULER_COUNT con il numero di scheduler.
  • SQL_MACHINE_TYPE con il tipo di macchina per l'istanza Cloud SQL.
  • WS_MACHINE_TYPE con il tipo di macchina per l'istanza del server web Airflow.

Esempio:

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

  config {

    node_config {
      node_count = 4
      disk_size_gb = 100
      zone = "us-central1-a"
      machine_type = "n1-standard-2"
    }

    software_config {
      scheduler_count = 2
    }

    database_config {
      machine_type = "db-n1-standard-2"
    }

    web_server_config {
      machine_type = "composer-n1-webserver-2"
    }
  }
}

Passaggio 4: (Facoltativo) Configurare il networking dell'ambiente

I parametri di Networking dipendono dal tipo di ambiente che vuoi creare:

  • Ambiente IP pubblico: utilizza i parametri di rete predefiniti.

  • Ambiente IP privato (peering VPC). In questa configurazione, il tuo ambiente utilizza i peering VPC per la connettività.

    Configura il tuo ambiente IP privato:

    1. Configura il networking del progetto per gli ambienti IP privati.
    2. Specifica altri parametri per l'ambiente IP privato, come descritto più avanti in questa sezione.

    Per un ambiente IP privato con peering VPC, devi conoscere:

    • Il tuo ID rete VPC
    • L'ID della tua subnet VPC
    • Due intervalli IP secondari nella subnet VPC:

      • Intervallo IP secondario per i pod
      • Intervallo IP secondario per i servizi
    • Intervalli IP per i componenti dell'ambiente:

      • Intervallo IP per il piano di controllo GKE.

      • Intervallo IP del server web.

      • Intervallo IP per l'istanza Cloud SQL.

  • Per un ambiente VPC condiviso, devi eseguire una configurazione di rete aggiuntiva per il progetto host, quindi creare un ambiente IP pubblico o privato in un progetto di servizio. Segui le istruzioni nella pagina Configurazione del VPC condiviso.

    Per un ambiente VPC condiviso, devi conoscere:

    • L'ID di rete VPC del progetto host
    • L'ID della subnet VPC del progetto host
    • Due intervalli IP secondari nella subnet VPC del progetto host:

      • Intervallo IP secondario per i pod
      • Intervallo IP secondario per i servizi

    Quando crei un ambiente VPC condiviso con IP pubblico, devi comunque specificare la rete VPC, la subnet e gli intervalli IP secondari del progetto host per pod e servizi.

  • Per creare un ambiente SC VPC, devi creare un perimetro di servizio e, quindi, creare ambienti IP privati all'interno di questo perimetro. Segui le istruzioni descritte in Configurazione dei Controlli di servizio VPC.

  • Ulteriori opzioni di networking per gli ambienti sono:

    • Indirizzi IP pubblici utilizzati privatamente. Se vuoi utilizzare più indirizzi IP, il tuo ambiente può utilizzare privatamente determinati intervalli di indirizzi IP pubblici come intervalli di indirizzi IP di subnet interni per pod e servizi.
    • Reti autorizzate. Se vuoi accedere al piano di controllo del tuo ambiente IP privato utilizzando HTTPS, puoi utilizzare le reti autorizzate per specificare intervalli CIDR in grado di farlo.

    • Agente di mascheramento IP. Se utilizzi gli ambienti con l'agente Masquerade IP, puoi utilizzare traduzioni di indirizzi IP many-to-one nelle configurazioni di networking del tuo ambiente. Per ulteriori informazioni sulla creazione di ambienti con l'agente di mascheramento IP, consulta Abilitare l'agente di mascheramento IP.

Console

Per creare un ambiente IP privato:

  1. Assicurati che il networking sia configurato per il tipo di ambiente che vuoi creare.

  2. Espandi la voce Networking, override della configurazione di Airflow e funzionalità aggiuntive.

  3. Nella sezione Configurazione di rete, seleziona la casella di controllo Abilita rete VPC nativa (utilizzando alias-IP).

  4. Nell'elenco a discesa Rete, seleziona il tuo ID rete VPC.

  5. Nell'elenco a discesa Subnet, seleziona l'ID della tua subnet VPC.

  6. Nella sezione Allocazione degli indirizzi IP dei pod, specifica l'intervallo IP secondario per i pod. Puoi utilizzare un intervallo secondario esistente nella tua rete VPC o specificarne uno nuovo nella notazione CIDR.

  7. Nella sezione Allocazione degli indirizzi IP del servizio, specifica l'intervallo IP secondario per i servizi. Puoi utilizzare un intervallo secondario esistente nella tua rete VPC o specificarne uno nuovo nella notazione CIDR.

  8. Nella sezione IP privato, seleziona la casella di controllo Abilita IP privato.

  9. Nella sezione IP privato master del cluster GKE, specifica un intervallo IP per il piano di controllo GKE:

    • Per utilizzare l'intervallo IP predefinito per la regione in cui si trova l'ambiente, seleziona Intervallo IP predefinito.

    • Per specificare un intervallo IP personalizzato, seleziona Intervallo IP personalizzato e inserisci un intervallo nella notazione CIDR nel campo IP privato del master del cluster GKE.

  10. Seleziona il livello di accesso per il piano di controllo GKE. Il piano di controllo ha due endpoint. Un endpoint è privato e può essere utilizzato dai nodi del cluster e dalle VM. Un altro endpoint è pubblico. Puoi specificare il livello di accesso per l'endpoint pubblico:

    • Per abilitare l'accesso all'endpoint pubblico dalle reti autorizzate, seleziona la casella di controllo Accedi all'endpoint master utilizzando l'indirizzo IP esterno.

      Se utilizzi questa opzione, il livello di accesso per il piano di controllo viene impostato su "Accesso agli endpoint pubblico abilitato, reti autorizzate abilitate". Ciò fornisce l'accesso limitato al piano di controllo dalle reti autorizzate. Per impostazione predefinita, non viene specificato alcun indirizzo IP di origine. Puoi aggiungere reti autorizzate al negozio.

    • Per disabilitare l'accesso all'endpoint pubblico dalle reti autorizzate, deseleziona la casella di controllo Accedi all'endpoint master utilizzando l'indirizzo IP esterno.

      Questa opzione consente di impostare il livello di accesso per il piano di controllo su "Accesso agli endpoint pubblico disabilitato". Questo impedisce al piano di controllo di accedere a internet del tutto.

  11. Nella sezione IP privato server web, specifica un intervallo IP per l'istanza del server web Airflow.

  12. Nella sezione IP privato di Cloud SQL, specifica un intervallo IP per l'istanza Cloud SQL.

gcloud

Assicurati che il networking sia configurato per il tipo di ambiente che vuoi creare.

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

  • --enable-ip-alias attiva la rete VPC nativa utilizzando indirizzi IP alias.

    Questo parametro è obbligatorio quando si utilizza --enable-private-environment o quando si configurano intervalli secondari per pod e servizi.

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

  • --network specifica il tuo ID rete VPC.

  • --subnetwork specifica l'ID della tua subnet VPC.

  • --cluster-secondary-range-name o --cluster-ipv4-cidr configura l'intervallo secondario per i pod.

  • --services-secondary-range-name o--services-ipv4-cidr per configurare l'intervallo secondario per i servizi.

  • --master-ipv4-cidr specifica un intervallo per il piano di controllo GKE.

  • --web-server-ipv4-cidr specifica un intervallo per l'istanza del server web Airflow.

  • --cloud-sql-ipv4-cidr specifica un intervallo per l'istanza Cloud SQL.

  • --enable-private-endpoint controlla l'accesso a livello per il piano di controllo GKE. Il piano di controllo ha due endpoint. Un endpoint è privato e può essere utilizzato dai nodi del cluster e dalle VM. Un altro endpoint è pubblico. Puoi specificare il livello di accesso per l'endpoint pubblico:

    • Per abilitare l'accesso all'endpoint pubblico dalle reti autorizzate, ometti l'argomento --enable-private-endpoint.

      Se utilizzi questa opzione, il livello di accesso per il piano di controllo viene impostato su "Accesso agli endpoint pubblico abilitato, reti autorizzate abilitate". Ciò fornisce l'accesso limitato al piano di controllo dalle reti autorizzate. Per impostazione predefinita, non viene specificato alcun indirizzo IP di origine. Puoi aggiungere reti autorizzate al negozio.

    • Per disabilitare l'accesso all'endpoint pubblico dalle reti autorizzate, specifica l'argomento --enable-private-endpoint.

      Questa opzione consente di impostare il livello di accesso per il piano di controllo su "Accesso agli endpoint pubblico disabilitato". Questo impedisce al piano di controllo di accedere a internet del tutto.

  • --enable-ip-masq-agent attiva l'agente di mascheramento IP.

gcloud composer environments create ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version composer-1.20.12-airflow-1.10.15 \
  --enable-ip-alias \
  --enable-private-environment \
  --network NETWORK_ID \
  --subnetwork SUBNETWORK_ID \
  --cluster-ipv4-cidr PODS_RANGE \
  --services-ipv4-cidr SERVICES_RANGE \
  --master-ipv4-cidr CONTROL_PLANE_RANGE \
  --web-server-ipv4-cidr WEB_SERVER_RANGE \
  --cloud-sql-ipv4-cidr SQL_RANGE

Sostituisci:

  • NETWORK_ID con il tuo ID rete VPC.
  • SUBNETWORK_ID con l'ID della tua subnet VPC.
  • PODS_RANGE con l'intervallo secondario per i pod.
  • SERVICES_RANGE con l'intervallo secondario per i servizi.
  • CONTROL_PLANE_RANGE con l'intervallo secondario per il piano di controllo GKE.

  • WEB_SERVER_RANGE con l'intervallo secondario per l'istanza del server web Airflow.

  • SQL_RANGE con l'intervallo per l'istanza Cloud SQL.

Passaggio 5: (Facoltativo) Aggiungi tag di rete

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

Ad esempio, potrebbe essere opportuno aggiungere tag di rete se intendi limitare il traffico per un ambiente IP privato con regole firewall.

Console

Nella pagina Crea ambiente:

  1. Individua la sezione Configurazione nodo.
  2. Nel campo Tag, specifica i tag di istanza per le VM nodo.

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 dei nodi.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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-1.20.12-airflow-1.10.15 \
    --tags group1,production

API

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

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

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"
      ]
    }
  }
}

Terraform

Quando crei un ambiente, i seguenti campi definiscono i tag di rete per l'ambiente:

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

  config {

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

Sostituisci:

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

Esempio:

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

  config {
    node_config {
      tags = ["group1","production"]
    }
  }
}

Passaggio 6: (Facoltativo) Configurare l'accesso alla rete al server web

I parametri di accesso al server web di Airflow non dipendono dal tipo di ambiente. In alternativa, puoi configurare l'accesso al server web separatamente. Ad esempio, un ambiente IP privato può comunque avere la UI di Airflow accessibile da internet.

Al momento non puoi configurare gli intervalli IP consentiti utilizzando indirizzi IP privati.

Console

Nella pagina Crea ambiente, nella sezione Configurazione del 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 nella notazione CIDR. Nel campo Descrizione, specifica una descrizione facoltativa per l'intervallo. Se vuoi specificare più di un intervallo, fai clic su Aggiungi intervallo IP.

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

gcloud

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

  • --web-server-allow-all fornisce l'accesso a 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 diversi 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-1.20.12-airflow-1.10.15 \
    --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 alla UI di Airflow.
  • WS_RANGE_DESCRIPTION con la descrizione dell'intervallo IP.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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 Ambiente > 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 per tutti gli indirizzi IP, aggiungi allowedIpRanges e rendilo un elenco vuoto. Non specificare al suo interno intervalli IP.

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

Sostituisci:

  • WS_IP_RANGE con l'intervallo IP, nella notazione CIDR, che può accedere alla UI 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"
        }
      ]
    }
  }
}

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"
      }

    }

  }
}

Sostituisci:

  • WS_IP_RANGE con l'intervallo IP, nella notazione CIDR, che può accedere alla UI 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"
      }

    }
}

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

Puoi impostare gli override della configurazione di Airflow e le variabili di ambiente quando crei un ambiente. In alternativa, puoi farlo in un secondo momento, dopo la creazione dell'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 il riferimento sulla configurazione di Airflow 2 e Airflow 1.10.*

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

Console

Nella pagina Crea ambiente:

  1. Espandi la voce Networking, override della configurazione di Airflow e funzionalità aggiuntive.

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

  3. Inserisci il nome e il valore per la variabile di ambiente.

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

  5. Inserisci la Sezione, la Chiave e il 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 di variabili di ambiente separate da virgole.

    I nomi delle variabili possono contenere lettere maiuscole e minuscole, numeri e trattini bassi, ma non possono iniziare con un numero.

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

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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 di coppie SECTION-KEY=VALUE separate da virgole per gli override della configurazione. Separa il nome della sezione di configurazione con un 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-1.20.12-airflow-1.10.15 \
    --env-variables SENDGRID_MAIL_FROM=user@example.com,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 Ambiente > 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",
      }
    }
  }
}

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 Airflow.
  • OVERRIDE_VALUE con un valore dell'opzione di configurazione 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": "user@example.com",
        "SENDGRID_API_KEY": "example-key"
      }
    }
  }
}

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, numeri e trattini bassi, ma non possono iniziare con un numero.

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

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }
  }
}

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 Airflow.
  • OVERRIDE_VALUE con un valore dell'opzione di configurazione 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" {
  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 = "user@example.com"
        SENDGRID_API_KEY = "example-key"
      }
    }
  }
}

Passaggio 8: (Facoltativo) Specifica i periodi di manutenzione

Per impostazione predefinita, i periodi di manutenzione vanno dalle 00:00:00 alle 04:00:00 (GMT) il venerdì, il sabato e la domenica di ogni settimana.

Per definire i periodi di manutenzione per il tuo ambiente:

Console

Nella pagina Crea ambiente:

  1. Espandi la voce Networking, override della configurazione di Airflow e funzionalità aggiuntive.

  2. Nella sezione Periodi di manutenzione, seleziona la casella di controllo Imposta un orario personalizzato per i periodi di manutenzione.

  3. Nell'elenco a discesa Fuso orario, scegli un fuso orario per i periodi di manutenzione.

  4. Imposta Ora di inizio, Giorni e Lunghezza, in modo che il tempo combinato per la pianificazione specificata sia di almeno 12 ore in una finestra temporale di 7 giorni. Ad esempio, un periodo di 4 ore ogni lunedì, mercoledì e venerdì fornisce il tempo richiesto.

gcloud

I seguenti argomenti definiscono i parametri del periodo di manutenzione:

  • --maintenance-window-start imposta l'ora di inizio di una finestra 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-1.20.12-airflow-1.10.15 \
    --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 di 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 di 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 di finestre 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 sei ore tra l'01:00 e le 07:00 (UTC) il mercoledì, il sabato e la domenica. La data del 1° gennaio 2023 viene ignorata.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15 \
  --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 Ambiente > 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"
    }
  }
}

Sostituisci:

  • DATETIME_START con la data e l'ora di inizio nel formato di input di 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 di 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 sei ore tra l'01:00 e le 07:00 (UTC) il mercoledì, il sabato e la 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"
    }
  }
}

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"
    }
  }
}

Sostituisci:

  • DATETIME_START con la data e l'ora di inizio nel formato di input di 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 di 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 sei ore tra l'01:00 e le 07:00 (UTC) il mercoledì, il sabato e la 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 9: (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 Utilizzare le chiavi di crittografia gestite dal cliente.

Passaggio 10: (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 pagina Crea ambiente:

  1. Espandi la voce Networking, override della configurazione di Airflow e funzionalità aggiuntive.

  2. Nella sezione Etichette, fai clic su Aggiungi etichetta.

  3. 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 di ambiente.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --labels LABELS

Sostituisci:

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

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --labels owner=engineering-team,env=production

API

Quando crei un ambiente, nella risorsa Ambiente 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 di ambiente.
  • LABEL_VALUE con il valore dell'etichetta di 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 (all'esterno del blocco config).

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Sostituisci:

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

Esempio:

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

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

}

Passaggio 11: (Facoltativo) Configurare altri parametri

Altri parametri includono:

  • Zona per i nodi di ambiente

    la zona di Compute Engine in cui eseguire il deployment dei nodi cluster. In questo parametro puoi selezionare una zona specifica nella località del tuo ambiente.

    Per impostazione predefinita, viene selezionata automaticamente una zona casuale.

  • Ambiti OAuth

    Gli ambiti OAuth sono un insieme di ambiti delle API di Google che devono essere resi disponibili su tutte le VM dei nodi. Se vuoto, il valore predefinito è https://www.googleapis.com/auth/cloud-platform.

    Se specifichi ambiti OAuth personalizzati, includi https://www.googleapis.com/auth/cloud-platform nell'elenco degli ambiti specificati.

  • Versione Python

    Se il tuo ambiente utilizza Airflow 1.10.* e versioni precedenti di Airflow, puoi fare in modo che il tuo ambiente utilizzi Python 2. La versione Python predefinita è Python 3. Per ulteriori informazioni sul supporto di Python 2 in Cloud Composer, consulta Versioni Python supportate.

Console

Nella pagina Crea ambiente:

  1. Nella sezione Configurazione nodo:

    • Nell'elenco a discesa Zona, seleziona una zona per i tuoi nodi di ambiente.

      Non potrai cambiare zona in un secondo momento.

    • Nel campo Ambiti OAuth, specifica gli ambiti OAuth per le VM del nodo.

      Non puoi modificare gli ambiti OAuth in un secondo momento.

      Per specificare diversi ambiti OAuth, fornisci un elenco di valori separati da virgole. Includi https://www.googleapis.com/auth/cloud-platform nell'elenco degli ambiti specificati.

    • Nel campo Versione Python, scegli la versione di Python.

      Non puoi modificare la versione Python in un secondo momento.

gcloud

Quando crei un ambiente, i seguenti argomenti controllano vari parametri dell'ambiente:

  • --zone specifica una zona di Compute Engine per le VM del tuo ambiente.

  • --oauth-scopes specifica un elenco di ambiti OAuth separati da virgole. Includi https://www.googleapis.com/auth/cloud-platform nell'elenco degli ambiti specificati.

  • --python-version specifica la versione di Python.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone ZONE \
    --oauth-scopes OAUTH_SCOPES \
    --python-version PYTHON_VERSION

Sostituisci:

  • ZONE con il nome della zona Compute Engine.
  • OAUTH_SCOPES con un elenco separato da virgole di ambiti OAuth.
  • PYTHON_VERSION con la versione Python (3 o 2).

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone us-central1-a \
    --oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery  \
    --python-version 3

API

Quando crei un ambiente, nella risorsa Ambiente > EnvironmentConfig, specifica vari parametri del tuo ambiente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "location": "projects/PROJECT_ID/zones/ZONE",
      "oauthScopes": [
        "OAUTH_SCOPE"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "PYTHON_VERSION"
    }
  }
}

Sostituisci:

  • ZONE con il nome della zona Compute Engine.
  • OAUTH_SCOPE con un ambito OAuth. Per specificare ulteriori ambiti, aggiungi l'ambito https://www.googleapis.com/auth/cloud-platform, seguito dagli elementi aggiuntivi.
  • PYTHON_VERSION con la versione Python (3 o 2).

Esempio:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "location": "projects/example-project/zones/us-central1-a",
      "oauthScopes": [
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/bigquery"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "3"
    }
  }
}

Terraform

Quando crei un ambiente, i seguenti campi controllano vari parametri dell'ambiente:

  • Il campo zone nel blocco node_config specifica una zona di Compute Engine per le VM dell'ambiente.

  • Il campo oauth_scopes nel blocco node_config specifica un elenco separato da virgole di ambiti OAuth.

  • Il campo python_version nel blocco software_config specifica la versione di Python.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      zone = "ZONE"
      oauth_scopes = "[OAUTH_SCOPES]"
    }

    software_config {
      python_version = "PYTHON_VERSION"
    }
  }
}

Sostituisci:

  • ZONE con il nome della zona Compute Engine.
  • OAUTH_SCOPES con un elenco separato da virgole di ambiti OAuth.
  • PYTHON_VERSION con la versione Python (3 o 2).

Esempio:

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

  config {
    node_config {
      zone = "us-central1-a"
      oauth_scopes = "[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery]"
    }
    software_config {
      python_version = "3"
    }
  }
}

Passaggio 12: (Facoltativo) Applicare l'utilizzo dell'API beta

Puoi fare in modo che il tuo ambiente utilizzi l'API Cloud Composer beta, anche se non dispone di funzionalità in anteprima. In questo caso, l'ambiente viene creato utilizzando l'endpoint di servizio v1beta1.

Console

Nella pagina Crea ambiente:

  1. Espandi la voce Networking, override della configurazione di Airflow e funzionalità aggiuntive.

  2. Nella sezione API beta, seleziona la casella di controllo Applica l'utilizzo dell'API beta.

gcloud

Crea l'ambiente utilizzando il comando gcloud beta composer.

API

Crea l'ambiente utilizzando l'endpoint di servizio v1beta1.

Terraform

Il provider Terraform per Cloud Composer utilizza l'API beta per impostazione predefinita.

Passaggi successivi