Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Questa pagina spiega come creare un ambiente Cloud Composer.
- Per saperne di più sugli ambienti, consulta Architettura dell'ambiente.
- Per saperne di più sulla creazione di un ambiente con Terraform, consulta Creare ambienti (Terraform).
Prima di iniziare
Abilitare l'API Cloud Composer. Per l'elenco completo dei servizi utilizzati da Cloud Composer, vedi Servizi richiesti da Cloud Composer.
Il tempo approssimativo per creare un ambiente è di 25 minuti.
Durante la creazione dell'ambiente, specifichi un account di servizio. I nodi nel cluster del tuo ambiente vengono eseguiti con l'account di questo account.
Per impostazione predefinita, gli ambienti Cloud Composer utilizzano l'account di servizio predefinito di Compute Engine gestito da Google. Ti consigliamo di creare un account di servizio gestito dall'utente che ha un ruolo specifico per Cloud Composer e di utilizzarlo per i tuoi ambienti.
Se crei un ambiente con Terraform, l'account di servizio utilizzato da Terraform deve avere un ruolo con l'autorizzazione
composer.environments.create
abilitata.Per maggiori informazioni sull'account di servizio per Terraform, consulta la documentazione di riferimento sulla configurazione del provider Google.
Per ulteriori informazioni sull'utilizzo di Terraform per creare un ambiente Cloud Composer, consulta la documentazione di Terraform.
Per ulteriori informazioni sui parametri aggiuntivi, consulta Riferimento all'argomento Terraform.
IP privato: esistono requisiti specifici di rete e peering per creare un ambiente IP privato. Per maggiori informazioni, consulta Configurazione dell'IP privato.
VPC condiviso: esistono requisiti di rete specifici per utilizzare il VPC condiviso con Cloud Composer. Per informazioni, consulta Configurazione di un VPC condiviso.
VPC SC: per eseguire il deployment di ambienti Cloud Composer all'interno di un perimetro di sicurezza, consulta Configurazione di VPC SC. Se utilizzati con Cloud Composer, i Controlli di servizio VPC prevedono diverse limitazioni note.
Passaggio 1: Configurazione di base
Questo passaggio crea un ambiente Cloud Composer con i parametri predefiniti nella località specificata.
Console
Nella console Google Cloud, vai alla pagina Crea ambiente.
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 per l'ambiente, quindi devi fornire 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.
Nell'elenco a discesa Località, scegli una località per l'ambiente.
Una località è la regione in cui si trova l'ambiente.
Nell'elenco a discesa Versione immagine, seleziona un'immagine di Cloud Composer con la versione richiesta di Airflow.
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 i sottocomponenti per l'ambiente, quindi devi fornire 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.Una località è la regione in cui si trova l'ambiente.
IMAGE_VERSION
con il nome di un'immagine di Cloud Composer.
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.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 per l'ambiente, quindi devi fornire 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 di un'immagine di Cloud Composer.
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" {
provider = google-beta
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 i sottocomponenti per l'ambiente, quindi devi fornire 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.Una località è la regione in cui si trova l'ambiente.
IMAGE_VERSION
con il nome di un'immagine di Cloud Composer.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
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 l'ambiente
I nodi nel cluster del tuo ambiente vengono eseguiti con questo account di servizio.
Per impostazione predefinita, gli ambienti Cloud Composer utilizzano l'account di servizio Compute Engine predefinito. Ti consigliamo di configurare un account di servizio gestito dall'utente per i tuoi ambienti Cloud Composer.
Non potrai modificare l'account di servizio del tuo ambiente in un secondo momento.
Console
Nell'elenco a discesa Account di servizio della pagina Crea ambiente, seleziona un account di servizio per il tuo ambiente nella sezione Configurazione nodo.
gcloud
Quando crei un ambiente, il --service-account
specifica l'account di servizio per il tuo 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, specifica un account di servizio per l'ambiente nella risorsa Environment > EnvironmentConfig.
{
"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" {
provider = google-beta
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" {
provider = google-beta
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, specifica il numero di nodi nel cluster GKE del tuo ambiente e seleziona i tipi di macchina per i componenti dell'ambiente.
Console
Nella pagina Crea ambiente:
Nella sezione Configurazione dei nodi:
Inserisci il Conteggio nodi.
Il conteggio dei nodi corrisponde al numero di nodi di Google Kubernetes Engine nel cluster dell'ambiente. Per impostazione predefinita, gli ambienti hanno tre nodi.
Puoi modificare questo valore dopo aver creato l'ambiente.
Scegli Tipo di macchina per i nodi.
Il tipo di macchina per i nodi è il tipo di macchina Compute Engine utilizzato per le istanze 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 il tuo ambiente, devi riconfigurare manualmente il cluster di ambiente.
Inserisci le Dimensioni del disco.
La dimensione del disco, in GB, per i nodi di ambiente. Ogni nodo del tuo ambiente dispone di questa quantità di spazio su disco. Seleziona una dimensione del disco maggiore se prevedi di archiviare un grande volume di dati in cartelle sincronizzate con le VM dell'ambiente. ad esempio nella cartella
/data
del bucket dell'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ù di uno scheduler Airflow contemporaneamente. Utilizza più scheduler per distribuire il carico tra diverse istanze di scheduler per migliorare prestazioni e affidabilità.
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 e quindi consuma risorse del tuo ambiente senza contribuire alle prestazioni complessive. Le prestazioni effettive dello scheduler dipendono dal numero di worker di Airflow, dal numero di DAG e attività in esecuzione nel tuo ambiente e dalla configurazione di Airflow e dell'ambiente.
Ti consigliamo di iniziare con due scheduler e poi di monitorare le prestazioni dell'ambiente. Se modifichi il numero di scheduler, puoi sempre riportare l'ambiente al numero originale di scheduler.
Per ulteriori informazioni sulla configurazione di più scheduler, consulta la documentazione di Airflow.
Espandi l'elemento Networking, override della configurazione Airflow e funzionalità aggiuntive.
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
.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 predefinito del server web è
composer-n1-webserver-2
.
gcloud
Quando crei un ambiente, i seguenti argomenti controllano la scalabilità dell'ambiente e i parametri delle prestazioni:
--node-count
specifica il numero di nodi nel tuo ambiente.Il conteggio dei nodi corrisponde al numero di nodi di Google Kubernetes Engine nel cluster dell'ambiente. Per impostazione predefinita, gli ambienti hanno tre 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ù di uno scheduler Airflow contemporaneamente. Utilizza più scheduler per distribuire il carico tra diverse istanze di scheduler per migliorare prestazioni e affidabilità.
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 e quindi consuma risorse del tuo ambiente senza contribuire alle prestazioni complessive. Le prestazioni effettive dello scheduler dipendono dal numero di worker di Airflow, dal numero di DAG e attività in esecuzione nel tuo ambiente e dalla configurazione di Airflow e dell'ambiente.
Ti consigliamo di iniziare con due scheduler e poi di monitorare le prestazioni dell'ambiente. Se modifichi il numero di scheduler, puoi sempre riportare l'ambiente al numero originale di scheduler.
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.La dimensione del disco, in GB, per i nodi di ambiente. Ogni nodo del tuo ambiente dispone di questa quantità di spazio su disco. Seleziona una dimensione del disco maggiore se prevedi di archiviare un grande volume di dati in cartelle sincronizzate con le VM dell'ambiente. ad esempio nella cartella
/data
del bucket dell'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 è il tipo di macchina Compute Engine utilizzato per le istanze 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 il tuo 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 di Airflow.Questo parametro determina il tipo di macchina per l'istanza Compute Engine che esegue il server web Airflow.
Il tipo di macchina predefinito del server web è
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:
NODE_COUNT
con il numero di nodi.NODE_ZONE
con la zona Compute Engine per le VM del tuo ambiente.SCHEDULER_COUNT
con il numero di scheduler.DISK_SIZE
con la dimensione del disco per le VM dell'ambiente, in GB.NODE_MACHINE_TYPE
con il tipo di macchina per le VM nodo.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:
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 di scala e prestazioni 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 la dimensione 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 blocconode_config
specifica il numero di nodi nel tuo ambiente.Il conteggio dei nodi corrisponde al numero di nodi di Google Kubernetes Engine nel cluster dell'ambiente. Per impostazione predefinita, gli ambienti hanno tre nodi.
Puoi modificare questo valore dopo aver creato l'ambiente.
disk_size_gb
nel blocconode_config
specifica la dimensione del disco per le VM dell'ambiente.La dimensione del disco, in GB, per i nodi di ambiente. Ogni nodo del tuo ambiente dispone di questa quantità di spazio su disco. Seleziona una dimensione del disco maggiore se prevedi di archiviare un grande volume di dati in cartelle sincronizzate con le VM dell'ambiente. ad esempio nella cartella
/data
del bucket dell'ambiente.La dimensione minima è 30 GB. La dimensione predefinita è 100 GB. Non puoi modificare questo parametro dopo aver creato un ambiente.
machine_type
nel blocconode_config
specifica il tipo di macchina per le VM dei nodi. Se specifichi questo campo, indica anche una zona di Compute Engine per le VM dell'ambiente nel campozone
.Il tipo di macchina per i nodi è il tipo di macchina Compute Engine utilizzato per le istanze 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 il tuo ambiente, devi riconfigurare manualmente il cluster di ambiente.
machine_type
nel bloccodatabase_config
specifica il tipo di macchinaa 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 bloccoweb_server_config
specifica il tipo di macchina per l'istanza del server web di Airflow.Questo parametro determina il tipo di macchina per l'istanza Compute Engine che esegue il server web Airflow.
Il tipo di macchina predefinito del server web è
composer-n1-webserver-2
.Il campo
scheduler_count
nel bloccosoftware_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 la dimensione 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 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 del tuo 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:
- Configura il networking del progetto per gli ambienti IP privati.
- Specifica altri parametri per il tuo ambiente IP privato, come descritto più avanti in questa sezione.
Per un ambiente IP privato con peering VPC, devi sapere:
- ID rete VPC
- ID 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 un'ulteriore configurazione di rete 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 sapere:
- ID rete VPC del tuo progetto host
ID 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 del progetto host, la subnet e gli intervalli IP secondari 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 Configurare i Controlli di servizio VPC.
Le opzioni di networking aggiuntive 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 della 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 gli intervalli CIDR in grado di farlo.
- Agente di mascheramento IP. Se utilizzi gli ambienti con l'agente di mascheramento IP, puoi utilizzare traduzioni degli indirizzi IP many-to-one nelle configurazioni di networking del tuo ambiente. Per maggiori informazioni sulla creazione di ambienti con un agente di mascheramento IP, consulta Abilitare l'agente di mascheramento IP.
Console
Per creare un ambiente IP privato:
Assicurati che il networking sia configurato per il tipo di ambiente che vuoi creare.
Espandi l'elemento Networking, override della configurazione Airflow e funzionalità aggiuntive.
Nella sezione Configurazione di rete, seleziona la casella di controllo Abilita rete VPC nativa (utilizzando IP alias).
Nell'elenco a discesa Rete, seleziona l'ID della tua rete VPC.
Nell'elenco a discesa Subnet, seleziona l'ID della subnet VPC.
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.
Nella sezione Allocazione degli indirizzi IP dei servizi, 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.
Nella sezione IP privato, seleziona la casella di controllo Abilita IP privato.
Nella sezione IP privato del 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 il tuo 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 master del cluster GKE.
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 da nodi del cluster e 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 il relativo indirizzo IP esterno.
Se utilizzi questa opzione, il livello di accesso per il piano di controllo viene impostato su "Accesso pubblico agli endpoint abilitato, reti autorizzate abilitate". Ciò fornisce un accesso limitato al piano di controllo dalle reti autorizzate. Per impostazione predefinita, non viene specificato nessun indirizzo IP di origine. Puoi aggiungere al cluster reti autorizzate.
Per disabilitare l'accesso all'endpoint pubblico dalle reti autorizzate, deseleziona la casella di controllo Accedi all'endpoint master utilizzando il relativo indirizzo IP esterno.
Se utilizzi questa opzione, il livello di accesso per il piano di controllo viene impostato su "Accesso pubblico all'endpoint disabilitato". In questo modo viene impedito qualsiasi accesso a internet al piano di controllo.
Nella sezione IP privato del server web, specifica un intervallo IP per l'istanza del server web di Airflow.
Nella sezione IP privato 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-private-environment
abilita un ambiente IP privato.--enable-ip-alias
abilita la rete VPC nativa tramite indirizzi IP alias.Questo parametro è obbligatorio quando si utilizza
--enable-private-environment
o quando si configurano intervalli secondari per pod e servizi.--network
specifica il tuo ID rete VPC.--subnetwork
specifica l'ID della 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 al livello per il piano di controllo GKE. Il piano di controllo ha due endpoint. Un endpoint è privato e può essere utilizzato da nodi del cluster e VM. Un altro endpoint è pubblico. Puoi specificare il livello di accesso per l'endpoint pubblico:Per consentire 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 pubblico agli endpoint abilitato, reti autorizzate abilitate". Ciò fornisce un accesso limitato al piano di controllo dalle reti autorizzate. Per impostazione predefinita, non viene specificato nessun indirizzo IP di origine. Puoi aggiungere al cluster reti autorizzate.
Per disabilitare l'accesso all'endpoint pubblico dalle reti autorizzate, specifica l'argomento
--enable-private-endpoint
.Se utilizzi questa opzione, il livello di accesso per il piano di controllo viene impostato su "Accesso pubblico all'endpoint disabilitato". In questo modo viene impedito qualsiasi accesso a internet al piano di controllo.
Gli argomenti
--enable-master-authorized-networks
e--master-authorized-networks
configurano le reti autorizzate per il tuo ambiente.--enable-privately-used-public-ips
configura indirizzi IP pubblici utilizzati privatamente per il tuo ambiente.--enable-ip-masq-agent
attiva l'agente di mascheramento IP.
Esempio (ambiente IP privato)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-private-environment \
--enable-ip-alias \
--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) Aggiungere tag di rete
I tag di rete vengono applicati a tutte le VM nodo 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 alla specifica RFC 1035.
Ad esempio, potresti aggiungere tag di rete se prevedi di limitare il traffico per un ambiente IP privato con regole firewall.
Console
Nella pagina Crea ambiente:
- Individua la sezione Configurazione nodo.
- Nel campo Tag, specifica i tag di istanza per le VM del 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 di tag di rete separati da virgole.
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 Environment (Ambiente) > EnvironmentConfig specifica i tag di rete per il tuo 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 il tuo ambiente:
- Il campo
tags
nel blocconode_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"]
}
}
}
Sostituisci:
TAGS
con un elenco di tag di rete separati da virgole.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
tags = ["group1","production"]
}
}
}
Passaggio 6: (Facoltativo) Configurare l'accesso alla rete del 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.
Non puoi configurare gli intervalli IP consentiti utilizzando indirizzi IP privati.
Console
Nella sezione Configurazione del server web della pagina Crea ambiente:
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 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 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, specifica i parametri di accesso al server web nella risorsa Environment > EnvironmentConfig.
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 rendilo un elenco vuoto. Non specificare intervalli IP al suo interno.
{
"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 e le variabili di ambiente di Airflow
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 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 e le variabili di ambiente di Airflow:
Console
Nella pagina Crea ambiente:
Espandi l'elemento Networking, override della configurazione Airflow e funzionalità aggiuntive.
Nella sezione Variabili di ambiente, fai clic su Aggiungi variabile di ambiente.
Inserisci il Nome e il Valore per la variabile di ambiente.
Nella sezione Override della configurazione di Airflow, fai clic su Aggiungi override della configurazione di Airflow.
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 di variabili di ambiente separate da virgole.I nomi delle variabili possono contenere lettere maiuscole e minuscole, cifre 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 di 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 coppieNAME=VALUE
separate da virgole per le variabili di ambiente.CONFIG_OVERRIDES
con un elenco di coppie diSECTION-KEY=VALUE
separate da virgole per eseguire l'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-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 Environment (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 nel 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 per le variabili di ambiente di controllo e gli override della configurazione di Airflow:
Il blocco
env_variables
nel bloccosoftware_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 un numero.
Il blocco
airflow_config_overrides
nel bloccosoftware_config
specifica gli override della configurazione di 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"
}
}
}
}
Sostituisci:
SECTION
con la sezione nel 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" {
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 = "user@example.com"
SENDGRID_API_KEY = "example-key"
}
}
}
}
Passaggio 8: (Facoltativo) Specifica i periodi di manutenzione
Per impostazione predefinita, gli ambienti Cloud Composer 1 non hanno periodi di manutenzione definiti se li crei utilizzando la console Google Cloud, l'API o Terraform. Ti consigliamo di specificare i periodi di manutenzione per gli ambienti nuovi ed esistenti.
Se crei il tuo ambiente utilizzando gcloud CLI, il tuo ambiente ha periodi di manutenzione predefiniti dalle 00:00:00 alle 04:00:00 (GMT) il venerdì, il sabato e la domenica ogni settimana.
Per specificare periodi di manutenzione personalizzati per il tuo ambiente:
Console
Nella pagina Crea ambiente:
Espandi l'elemento Networking, override della configurazione Airflow e funzionalità aggiuntive.
Nella sezione Periodi di manutenzione, seleziona la casella di controllo Imposta una durata personalizzata per i periodi di manutenzione.
Nell'elenco a discesa Fuso orario, scegli un fuso orario per i periodi di manutenzione.
Imposta Ora di inizio, Giorni e Durata, in modo che l'ora combinata per la pianificazione specificata sia di almeno 12 ore in una finestra temporale continua 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 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-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 data e ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata e la data specificata viene ignorata.DATETIME_END
con data e ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata e la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCE
con una regola 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 ore 01:00 e le ore 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-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, specifica i parametri delle finestre di manutenzione nella risorsa Environment > EnvironmentConfig:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Sostituisci:
DATETIME_START
con data e ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata e la data specificata viene ignorata.DATETIME_END
con data e ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata e la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCE
con una regola 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 ore 01:00 e le ore 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"
}
}
}
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 data e ora di inizio nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata e la data specificata viene ignorata.DATETIME_END
con data e ora di fine nel formato di input data/ora. Viene utilizzata solo l'ora del giorno specificata e la data specificata viene ignorata. La data e l'ora specificate devono essere successive alla data di inizio.MAINTENANCE_RECURRENCE
con una regola 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.
- Il formato
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le ore 01:00 e le ore 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 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 Utilizzo delle chiavi di crittografia gestite dal cliente.
Passaggio 10: (Facoltativo) Specifica le etichette di ambiente
Puoi assegnare etichette ai tuoi ambienti per suddividere i costi di fatturazione in base a queste etichette.
Console
Nella pagina Crea ambiente:
Espandi l'elemento Networking, override della configurazione Airflow e funzionalità aggiuntive.
Nella sezione Etichette, fai clic su Aggiungi etichetta.
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 diKEY=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 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
(all'esterno 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"
}
}
Passaggio 11. (Facoltativo) Configurare altri parametri
Altri parametri includono:
Zona per i nodi di ambiente
Zona 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, vedi Versioni Python supportate.
Console
Nella pagina Crea ambiente:
Nella sezione Configurazione dei nodi:
Nell'elenco a discesa Zona, seleziona una zona per i nodi di ambiente.
Non puoi 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 Compute Engine per le VM del tuo ambiente.--oauth-scopes
specifica un elenco di ambiti OAuth separati da virgole. Includihttps://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 di ambiti OAuth separati da virgole.PYTHON_VERSION
con la versione Python (3
o2
).
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 Environment (Ambiente) > EnvironmentConfig specifica i vari parametri dell'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 ambiti aggiuntivi, aggiungi l'ambitohttps://www.googleapis.com/auth/cloud-platform
, seguito gli elementi dell'ambito aggiuntivi. ambiti.PYTHON_VERSION
con la versione Python (3
o2
).
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 blocconode_config
specifica una zona di Compute Engine per le VM dell'ambiente.Il campo
oauth_scopes
nel blocconode_config
specifica un elenco di ambiti OAuth separati da virgole.Il campo
python_version
nel bloccosoftware_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 di ambiti OAuth separati da virgole.PYTHON_VERSION
con la versione Python (3
o2
).
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) Applica forzatamente l'utilizzo dell'API beta
Puoi fare in modo che il tuo ambiente utilizzi la versione beta dell'API Cloud Composer
anche se il tuo ambiente non ha funzionalità in anteprima. In questo caso, il tuo ambiente viene creato utilizzando l'endpoint di servizio v1beta1
.
Console
Nella pagina Crea ambiente:
Espandi l'elemento Networking, override della configurazione Airflow e funzionalità aggiuntive.
Nella sezione API beta, seleziona la casella di controllo Applica l'utilizzo dell'API beta.
gcloud
Crea il tuo ambiente utilizzando
il comando gcloud beta composer
.
API
Crea il tuo ambiente utilizzando l'endpoint del servizio v1beta1
.
Terraform
Il provider Terraform per Cloud Composer utilizza l'API beta per impostazione predefinita.
Passaggi successivi
- Risolvere i problemi di creazione dell'ambiente
- Configurazione di un VPC condiviso
- Configurazione dei Controlli di servizio VPC
- Aggiunta e aggiornamento dei DAG
- Accesso alla UI di Airflow
- Aggiornare ed eliminare gli ambienti
- Informazioni sulle versioni di Cloud Composer