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. Cloud Composer associa questo account a un account di servizio Kubernetes del cluster dell'ambiente.
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.
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-3-airflow-2.7.3-build.6
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-3-airflow-2.7.3-build.6"
}
}
}
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-3-airflow-2.7.3-build.6"
}
}
}
Passaggio 2: (Facoltativo) Seleziona un account di servizio per l'ambiente
Cloud Composer associa questo account di servizio all'account di servizio Kubernetes del tuo ambiente. I nodi nel cluster del tuo ambiente vengono eseguiti come account di servizio Kubernetes e utilizzano le associazioni per accedere alle risorse nel tuo progetto Google Cloud, ad esempio i file di definizione dei DAG nel bucket dell'ambiente.
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 gli ambienti Cloud Composer.
Non potrai modificare l'account di servizio del tuo ambiente in un secondo momento.
Console
Nella pagina Crea ambiente, nell'elenco a discesa Account di servizio, seleziona un account di servizio per il tuo ambiente.
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-3-airflow-2.7.3-build.6 \
--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-3-airflow-2.7.3-build.6 \
--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, seleziona le dimensioni dell'ambiente e la configurazione dei carichi di lavoro.
Puoi modificare tutti i parametri di prestazioni e scalabilità dopo aver creato un ambiente.
I seguenti parametri controllano la scala e le prestazioni:
Dimensioni dell'ambiente. Controlla i parametri delle prestazioni dell'infrastruttura Cloud Composer gestita che include il database Airflow. Valuta la possibilità di selezionare una dimensione dell'ambiente più grande se vuoi eseguire un numero elevato di DAG e attività.
Configurazione dei carichi di lavoro. Controlla la scalabilità e le prestazioni dei componenti del tuo ambiente che vengono eseguiti in un cluster GKE: scheduler di Airflow, server web Airflow e worker di Airflow.
Scheduler di Airflow. Analizza i file di definizione dei DAG, pianifica le esecuzioni dei DAG in base all'intervallo pianificato e accoda le attività per l'esecuzione da parte dei worker di Airflow.
Il tuo ambiente può eseguire più di uno scheduler Airflow contemporaneamente. Utilizza più scheduler per distribuire il carico tra diverse istanze 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.
Trigger di Airflow. Monitora in modo asincrono tutte le attività differite nel tuo ambiente. Se nel tuo ambiente è presente almeno un'istanza dell'attivatore (o almeno due in ambienti altamente resilienti), puoi utilizzare operatori posticipabili nei DAG.
Processore DAG Airflow. Elabora i file DAG e li trasforma in oggetti DAG. In Cloud Composer 3, questa parte dello scheduler viene eseguita come componente dell'ambiente separato.
Server web Airflow. Esegue l'interfaccia web di Airflow in cui puoi monitorare, gestire e visualizzare i DAG.
Worker Airflow. Eseguire attività pianificate dagli scheduler di Airflow. Il numero minimo e massimo di worker nell'ambiente cambiano in modo dinamico a seconda del numero di attività nella coda.
Console
Puoi selezionare una preimpostazione per il tuo ambiente. Quando selezioni un valore preimpostato, i relativi parametri di scalabilità e prestazioni vengono selezionati automaticamente. Puoi anche selezionare un preset personalizzato e specificare tutti i parametri di scalabilità e prestazioni per il tuo ambiente.
Per selezionare la configurazione di scalabilità e prestazioni per il tuo ambiente, nella pagina Crea ambiente:
Per utilizzare i valori predefiniti, nella sezione Risorse dell'ambiente, fai clic su Piccolo, Medio o Grande.
Per specificare valori personalizzati per i parametri di scala e di rendimento:
Nella sezione Risorse dell'ambiente, fai clic su Personalizzato.
Nella sezione Scheduler, imposta il numero di scheduler che vuoi utilizzare e l'allocazione delle risorse per la relativa CPU, memoria e spazio di archiviazione.
Nella sezione Triggerer, utilizza il campo Numero di triggerer per inserire il numero di triggerer nel tuo ambiente. Puoi impostare questo numero su 0 se non vuoi utilizzare operatori reimpostabili nei DAG.
Se imposti almeno un triggerer per il tuo ambiente, utilizza i campi CPU e Memoria per configurare l'allocazione delle risorse per i triggerer.
Nella sezione Processore DAG, specifica il numero di processori DAG nel tuo ambiente e la quantità di CPU, memoria e spazio di archiviazione per ogni processore DAG.
Nella sezione Server web, specifica la quantità di CPU, memoria e spazio di archiviazione per il server web.
Nella sezione Worker, specifica:
- Il numero minimo e massimo di worker per i limiti di scalabilità automatica nel tuo ambiente.
- L'allocazione di CPU, memoria e spazio di archiviazione per i worker
Nella sezione Infrastruttura principale, seleziona la dimensione dell'ambiente nell'elenco a discesa Dimensioni ambiente.
gcloud
Quando crei un ambiente, i seguenti argomenti controllano i parametri di scalabilità e prestazioni dell'ambiente.
--environment-size
specifica le dimensioni dell'ambiente.--scheduler-count
specifica il numero di scheduler.--scheduler-cpu
specifica il numero di CPU per uno scheduler Airflow.--scheduler-memory
specifica la quantità di memoria per uno scheduler di Airflow.--scheduler-storage
specifica la quantità di spazio su disco per uno scheduler Airflow.--triggerer-count
specifica il numero di triggerer di Airflow nel tuo ambiente. Il valore predefinito di questo flag è0
. Hai bisogno di triggerer se vuoi utilizzare operatori decriptabili nei DAG.- Per ambienti di resilienza standard, utilizza un valore compreso tra
0
e10
. - Per ambienti altamente resilienti, utilizza
0
o un valore compreso tra2
e10
.
- Per ambienti di resilienza standard, utilizza un valore compreso tra
--triggerer-cpu
specifica il numero di CPU per un attivatore Airflow, in unità vCPU. Valori consentiti:0.5
,0.75
,1
. Il valore predefinito è0.5
.--triggerer-memory
specifica la quantità di memoria per un triggerer Airflow, in GB. Il valore predefinito è0.5
.La memoria minima richiesta è uguale al numero di CPU allocate per i triggerer. Il valore massimo consentito è uguale al numero di CPU dell'attivatore moltiplicato per 6,5.
Ad esempio, se imposti il flag
--triggerer-cpu
su1
, il valore minimo per--triggerer-memory
è1
e il valore massimo è6.5
.--dag-processor-cpu
specifica il numero di CPU per il processore DAG.--dag-processor-memory
specifica la quantità di memoria per il processore DAG.--dag-processor-storage
specifica la quantità di spazio su disco per il processore DAG.--web-server-cpu
specifica il numero di CPU per il server web Airflow.--web-server-memory
specifica la quantità di memoria per il server web Airflow.--web-server-storage
specifica la quantità di spazio su disco per il server web Airflow.--worker-cpu
specifica il numero di CPU per un worker Airflow.--worker-memory
specifica la quantità di memoria per un worker Airflow.--worker-storage
specifica la quantità di spazio su disco per un worker Airflow.--min-workers
specifica il numero minimo di worker Airflow. Il cluster del tuo ambiente esegue almeno questo numero di worker.--max-workers
specifica il numero massimo di worker Airflow. Il cluster del tuo ambiente esegue al massimo questo numero di worker.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.6 \
--environment-size ENVIRONMENT_SIZE \
--scheduler-count SCHEDULER_COUNT \
--scheduler-cpu SCHEDULER_CPU \
--scheduler-memory SCHEDULER_MEMORY \
--scheduler-storage SCHEDULER_STORAGE \
--triggerer-count TRIGGERER_COUNT \
--triggerer-cpu TRIGGERER_CPU \
--triggerer-memory TRIGGERER_MEMORY \
--dag-processor-cpu DAG_PROCESSOR_CPU \
--dag-processor-memory DAG_PROCESSOR_MEMORY \
--dag-processor-storage DAG_PROCESSOR_STORAGE \
--web-server-cpu WEB_SERVER_CPU \
--web-server-memory WEB_SERVER_MEMORY \
--web-server-storage WEB_SERVER_STORAGE \
--worker-cpu WORKER_CPU \
--worker-memory WORKER_MEMORY \
--worker-storage WORKER_STORAGE \
--min-workers WORKERS_MIN \
--max-workers WORKERS_MAX
Sostituisci:
ENVIRONMENT_SIZE
consmall
,medium
olarge
.SCHEDULER_COUNT
con il numero di scheduler.SCHEDULER_CPU
con il numero di CPU per uno scheduler, in unità vCPU.SCHEDULER_MEMORY
con la quantità di memoria per uno scheduler.SCHEDULER_STORAGE
con le dimensioni del disco per uno scheduler.TRIGGERER_COUNT
con il numero di triggerer.TRIGGERER_CPU
con il numero di CPU per un triggerer, in unità vCPU.TRIGGERER_MEMORY
con la quantità di memoria per un triggerer, in GB.DAG_PROCESSOR_CPU
con il numero di CPU per il processore DAG.DAG_PROCESSOR_MEMORY
con la quantità di memoria per il processore DAG.DAG_PROCESSOR_STORAGE
con la quantità di spazio su disco per il processore DAG.WEB_SERVER_CPU
con il numero di CPU per il server web, in unità vCPU.WEB_SERVER_MEMORY
con la quantità di memoria per il server web.WEB_SERVER_STORAGE
con la quantità di memoria per il server web.WORKER_CPU
con il numero di CPU per un worker, in unità vCPU.WORKER_MEMORY
con la quantità di memoria per un worker.WORKER_STORAGE
con le dimensioni del disco per un worker.WORKERS_MIN
con il numero minimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se un numero inferiore di worker è in grado di gestire il carico.WORKERS_MAX
con il numero massimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se per gestire il carico è necessario un numero più elevato di worker.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.6 \
--environment-size small \
--scheduler-count 1 \
--scheduler-cpu 0.5 \
--scheduler-memory 2.5GB \
--scheduler-storage 2GB \
--triggerer-count 1 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5GB \
--dag-processor-cpu 0.5 \
--dag-processor-memory 2GB \
--dag-processor-storage 1GB \
--web-server-cpu 1 \
--web-server-memory 2.5GB \
--web-server-storage 2GB \
--worker-cpu 1 \
--worker-memory 2GB \
--worker-storage 2GB \
--min-workers 2 \
--max-workers 4
API
Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig > WorkloadsConfig, specifica i parametri di scalabilità e prestazioni dell'ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": SCHEDULER_CPU,
"memoryGb": SCHEDULER_MEMORY,
"storageGb": SCHEDULER_STORAGE,
"count": SCHEDULER_COUNT
},
"triggerer": {
"count": TRIGGERER_COUNT,
"cpu": TRIGGERER_CPU,
"memoryGb": TRIGGERER_MEMORY
},
"dagProcessor": {
"count": 1,
"cpu": DAG_PROCESSOR_CPU,
"memoryGb": DAG_PROCESSOR_MEMORY,
"storageGb": DAG_PROCESSOR_STORAGE
},
"webServer": {
"cpu": WEB_SERVER_CPU,
"memoryGb": WEB_SERVER_MEMORY,
"storageGb": WEB_SERVER_STORAGE
},
"worker": {
"cpu": WORKER_CPU,
"memoryGb": WORKER_MEMORY,
"storageGb": WORKER_STORAGE,
"minCount": WORKERS_MIN,
"maxCount": WORKERS_MAX
}
},
"environmentSize": "ENVIRONMENT_SIZE"
}
}
Sostituisci:
SCHEDULER_CPU
con il numero di CPU per uno scheduler, in unità vCPU.SCHEDULER_MEMORY
con la quantità di memoria per uno scheduler, in GB.SCHEDULER_STORAGE
con le dimensioni del disco per uno scheduler, in GB.SCHEDULER_COUNT
con il numero di scheduler.TRIGGERER_COUNT
con il numero di triggerer. Il valore predefinito è0
. Hai bisogno di triggerer se vuoi utilizzare operatori decriptabili nei DAG.- Per ambienti di resilienza standard, utilizza un valore compreso tra
0
e10
. - Per ambienti altamente resilienti, utilizza
0
o un valore compreso tra2
e10
.
Se utilizzi almeno un triggerer, devi specificare anche i parametri
TRIGGERER_CPU
eTRIGGERER_MEMORY
:- Per ambienti di resilienza standard, utilizza un valore compreso tra
TRIGGERER_CPU
specifica il numero di CPU per un triggerer, in unità vCPU. Valori consentiti:0.5
,0.75
,1
.TRIGGERER_MEMORY
configura la quantità di memoria per un triggerer. La memoria minima richiesta è uguale al numero di CPU allocate per i triggerer. Il valore massimo consentito è uguale al numero di CPU del triggerer moltiplicato per 6,5.Ad esempio, se imposti
TRIGGERER_CPU
su1
, il valore minimo perTRIGGERER_MEMORY
è1
e il valore massimo è6.5
.DAG_PROCESSOR_CPU
con il numero di CPU per il processore DAG, in unità vCPU.DAG_PROCESSOR_MEMORY
con la quantità di memoria per il processore DAG, in GB.DAG_PROCESSOR_STORAGE
con la quantità di spazio su disco per il processore DAG, in GB.WEB_SERVER_CPU
con il numero di CPU per il server web, in unità vCPU.WEB_SERVER_MEMORY
con la quantità di memoria per il server web, in GB.WEB_SERVER_STORAGE
con le dimensioni del disco per il server web, in GB.WORKER_CPU
con il numero di CPU per un worker, in unità vCPU.WORKER_MEMORY
con la quantità di memoria per un worker, in GB.WORKER_STORAGE
con le dimensioni del disco per un worker, in GB.WORKERS_MIN
con il numero minimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se un numero inferiore di worker è in grado di gestire il carico.WORKERS_MAX
con il numero massimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se per gestire il carico è necessario un numero più elevato di worker.ENVIRONMENT_SIZE
con la dimensione dell'ambienteENVIRONMENT_SIZE_SMALL
,ENVIRONMENT_SIZE_MEDIUM
oENVIRONMENT_SIZE_LARGE
.
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": 2.5,
"memoryGb": 2.5,
"storageGb": 2,
"count": 1
},
"triggerer": {
"cpu": 0.5,
"memoryGb": 0.5,
"count": 1
},
"dagProcessor": {
"count": 1,
"cpu": 0.5,
"memoryGb": 2,
"storageGb": 1
},
"webServer": {
"cpu": 1,
"memoryGb": 2.5,
"storageGb": 2
},
"worker": {
"cpu": 1,
"memoryGb": 2,
"storageGb": 2,
"minCount": 2,
"maxCount": 4
}
},
"environmentSize": "ENVIRONMENT_SIZE_SMALL"
}
}
Terraform
Quando crei un ambiente, i seguenti argomenti controllano i parametri di scalabilità e prestazioni dell'ambiente.
Nel blocco
config
:- Il campo
environment_size
controlla le dimensioni dell'ambiente.
- Il campo
Nel blocco
workloads_config
:- Il campo
scheduler.cpu
specifica il numero di CPU per uno scheduler di Airflow. - Il campo
scheduler.memory_gb
specifica la quantità di memoria per uno scheduler di Airflow. - Il campo
scheduler.storage_gb
specifica la quantità di spazio su disco per uno scheduler. - Il campo
scheduler.count
specifica il numero di scheduler nel tuo ambiente. - Il campo
triggerer.cpu
specifica il numero di CPU per un attivatore di Airflow. - Il campo
triggerer.memory_gb
specifica la quantità di memoria per un triggerer di Airflow. Il campo
triggerer.count
specifica il numero di triggerer nel tuo ambiente.Il campo
dag_processor.cpu
specifica il numero di CPU per un processore DAG.Il campo
dag_processor.memory_gb
specifica la quantità di memoria per un processore DAG.Il campo
dag_processor.storage_gb
specifica la quantità di spazio su disco per un processore DAG.Il campo
dag_processor.count
specifica il numero di processori DAG.Il campo
web_server.cpu
specifica il numero di CPU per il server web Airflow.Il campo
web_server.memory_gb
specifica la quantità di memoria per il server web Airflow.Il campo
web_server.storage_gb
specifica la quantità di spazio su disco per il server web Airflow.Il campo
worker.cpu
specifica il numero di CPU per un worker Airflow.Il campo
worker.memory_gb
specifica la quantità di memoria per un worker Airflow.Il campo
worker.storage_gb
specifica la quantità di spazio su disco per un worker Airflow.Il campo
worker.min_count
specifica il numero minimo di worker nel tuo ambiente.Il campo
worker.max_count
specifica il numero massimo di worker nel tuo ambiente.
- Il campo
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
workloads_config {
scheduler {
cpu = SCHEDULER_CPU
memory_gb = SCHEDULER_MEMORY
storage_gb = SCHEDULER_STORAGE
count = SCHEDULER_COUNT
}
triggerer {
count = TRIGGERER_COUNT
cpu = TRIGGERER_CPU
memory_gb = TRIGGERER_MEMORY
}
web_server {
cpu = WEB_SERVER_CPU
memory_gb = WEB_SERVER_MEMORY
storage_gb = WEB_SERVER_STORAGE
}
worker {
cpu = WORKER_CPU
memory_gb = WORKER_MEMORY
storage_gb = WORKER_STORAGE
min_count = WORKERS_MIN
max_count = WORKERS_MAX
}
}
environment_size = "ENVIRONMENT_SIZE"
}
}
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.SCHEDULER_CPU
con il numero di CPU per uno scheduler, in unità vCPU.SCHEDULER_MEMORY
con la quantità di memoria per uno scheduler, in GB.SCHEDULER_STORAGE
con le dimensioni del disco per uno scheduler, in GB.SCHEDULER_COUNT
con il numero di scheduler.TRIGGERER_COUNT
con il numero di triggerer.TRIGGERER_CPU
con il numero di CPU per un triggerer, in unità vCPU.TRIGGERER_MEMORY
con la quantità di memoria per un triggerer, in GB.WEB_SERVER_CPU
con il numero di CPU per il server web, in unità vCPU.WEB_SERVER_MEMORY
con la quantità di memoria per il server web, in GB.WEB_SERVER_STORAGE
con le dimensioni del disco per il server web, in GB.WORKER_CPU
con il numero di CPU per un worker, in unità vCPU.WORKER_MEMORY
con la quantità di memoria per un worker, in GB.WORKER_STORAGE
con le dimensioni del disco per un worker, in GB.WORKERS_MIN
con il numero minimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se un numero inferiore di worker è in grado di gestire il carico.WORKERS_MAX
con il numero massimo di worker Airflow che il tuo ambiente può eseguire. Il numero di worker nel tuo ambiente non supera questo numero, anche se per gestire il carico è necessario un numero più elevato di worker.ENVIRONMENT_SIZE
con la dimensione dell'ambienteENVIRONMENT_SIZE_SMALL
,ENVIRONMENT_SIZE_MEDIUM
oENVIRONMENT_SIZE_LARGE
.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
workloads_config {
scheduler {
cpu = 2.5
memory_gb = 2.5
storage_gb = 2
count = 1
}
triggerer {
count = 1
cpu = 0.5
memory_gb = 0.5
}
web_server {
cpu = 1
memory_gb = 2.5
storage_gb = 2
}
worker {
cpu = 1
memory_gb = 2
storage_gb = 2
min_count = 2
max_count = 4
}
}
environment_size = "ENVIRONMENT_SIZE_SMALL"
}
}
Passaggio 4: (Facoltativo) Specifica una zona per il database dell'ambiente
Puoi specificare una zona Cloud SQL preferita per il tuo ambiente.
Console
Nella pagina Crea ambiente:
Nella sezione Configurazione avanzata, espandi l'elemento Mostra configurazione avanzata.
Nell'elenco Zona del database Airflow, seleziona una zona Cloud SQL preferita.
gcloud
Quando crei un ambiente, l'argomento --cloud-sql-preferred-zone
specifica una zona Cloud SQL preferita.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.6 \
--cloud-sql-preferred-zone SQL_ZONE
Sostituisci quanto segue:
SQL_ZONE
: zona Cloud SQL preferita. Questa zona deve trovarsi nella regione in cui si trova l'ambiente.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.6 \
--cloud-sql-preferred-zone us-central1-a
API
Quando crei un ambiente, nella risorsa Ambiente > DatabaseConfig, specifica la zona Cloud SQL preferita.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"databaseConfig": {
"zone": "SQL_ZONE"
}
}
}
Sostituisci quanto segue:
SQL_ZONE
: zona Cloud SQL preferita. Questa zona deve trovarsi nella regione in cui si trova l'ambiente.
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"databaseConfig": {
"zone": "us-central1-a"
}
}
}
Terraform
Quando crei un ambiente, il campo zone
nel blocco database_config
specifica la zona Cloud SQL preferita.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
database_config {
zone = "SQL_ZONE"
}
}
}
Sostituisci quanto segue:
SQL_ZONE
: zona Cloud SQL preferita. Questa zona deve trovarsi nella regione in cui si trova l'ambiente.
Passaggio 5: (Facoltativo) Configurare il networking del tuo ambiente
Puoi configurare il networking di Cloud Composer 3 nei seguenti modi:
- In un ambiente IP pubblico, i componenti Airflow del tuo ambiente possono accedere a internet.
- In un ambiente IP privato, i componenti Airflow del tuo ambiente non hanno accesso a internet.
- Gli ambienti IP privato e IP pubblico possono connettersi alla rete VPC come opzione separata.
- Puoi specificare l'intervallo IP interno del tuo ambiente. Questo intervallo non può essere modificato in un secondo momento.
Puoi abilitare l'accesso a internet durante l'installazione di pacchetti PyPI. Ad esempio, il tuo ambiente IP privato può continuare a installare pacchetti PyPI dall'indice dei pacchetti Python, se abiliti questa opzione.
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.
Console
Assicurati che il networking sia configurato per il tipo di ambiente che vuoi creare.
Nella sezione Configurazione di rete, espandi l'elemento Mostra configurazione di rete.
Se vuoi connettere il tuo ambiente a una rete VPC, seleziona un collegamento di rete nel campo Collegamento di rete. Puoi anche creare un nuovo collegamento di rete. Per ulteriori informazioni, consulta Connettere un ambiente a una rete VPC.
Se vuoi creare un ambiente IP privato, nella sezione Tipo di rete, seleziona l'opzione Ambiente IP privato.
Se vuoi aggiungere tag di rete, consulta Aggiungere tag di rete per maggiori informazioni.
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.--network
specifica il tuo ID rete VPC.--subnetwork
specifica l'ID della subnet VPC.
--composer-internal-ipv4-cidr-block
specifica l'intervallo IP interno dell'ambiente. Questo intervallo è utilizzato da Cloud Composer nel progetto tenant del tuo ambiente.
Esempio (ambiente IP privato con una rete VPC connessa)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.6 \
--enable-private-environment \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
Sostituisci:
NETWORK_ID
con il tuo ID rete VPC.SUBNETWORK_ID
con l'ID della tua subnet VPC.
Passaggio 6: (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 di rete.
- Nel campo Tag di rete, inserisci i tag di rete per il tuo ambiente.
gcloud
Quando crei un ambiente, i seguenti argomenti controllano i tag di rete:
--tags
specifica un elenco separato da virgole di tag di rete applicati a tutte le VM dei nodi.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.6 \
--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-3-airflow-2.7.3-build.6 \
--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 7: (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 pagina Crea ambiente:
Nella sezione Configurazione di rete, espandi l'elemento Mostra configurazione di rete.
Nella sezione Controllo dell'accesso di rete al server web:
Per fornire l'accesso al server web Airflow da tutti gli indirizzi IP, seleziona Consenti l'accesso da tutti gli indirizzi IP.
Per limitare l'accesso solo a intervalli IP specifici, seleziona Consenti l'accesso solo da indirizzi IP specifici. Nel campo Intervallo IP, specifica un intervallo IP nella notazione CIDR. Nel campo Descrizione, specifica una descrizione facoltativa per questo intervallo. Se vuoi specificare più di un intervallo, fai clic su Aggiungi intervallo IP.
Per vietare l'accesso per tutti gli indirizzi IP, seleziona Consenti l'accesso solo da indirizzi IP specifici e fai clic su Elimina elemento accanto alla voce vuota dell'intervallo.
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-3-airflow-2.7.3-build.6 \
--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-3-airflow-2.7.3-build.6 \
--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 8: (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:
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-3-airflow-2.7.3-build.6 \
--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-3-airflow-2.7.3-build.6 \
--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 9: (Facoltativo) Specifica i periodi di manutenzione
Le finestre di manutenzione predefinite in Cloud Composer 3 sono definite nel seguente modo:
- Tutti gli orari sono nel fuso orario locale della regione in cui si trova il tuo ambiente, ma l'ora legale viene ignorata.
- Il martedì, mercoledì, giovedì e venerdì i periodi di manutenzione sono dalle 00:00:00 alle 02:00:00.
- Il sabato, la domenica e il lunedì i periodi di manutenzione sono dalle 00:00:00 alle 04:00:00.
Per specificare periodi di manutenzione personalizzati per il tuo ambiente:
Console
Nella pagina Crea ambiente
Individua la sezione Finestre 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-3-airflow-2.7.3-build.6 \
--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-3-airflow-2.7.3-build.6 \
--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 10: (Facoltativo) Integrazione della derivazione dei dati
La derivazione dei dati è una funzionalità di Dataplex che consente di monitorare lo spostamento dei dati.
L'integrazione della derivazione dei dati è disponibile in tutte le versioni di Cloud Composer 3.L'integrazione della derivazione dei dati viene abilitata automaticamente in un nuovo ambiente Cloud Composer se vengono soddisfatte le seguenti condizioni:
L'API Data Lineage è abilitata nel tuo progetto. Per saperne di più, consulta Attivazione dell'API Data Lineage nella documentazione di Dataplex.
In Airflow non è configurato un backend di derivazione personalizzato.
Puoi disabilitare l'integrazione della derivazione dei dati quando crei un ambiente. Ad esempio, se vuoi eseguire l'override del comportamento automatico o scegliere di abilitare la derivazione dei dati in un secondo momento, dopo la creazione dell'ambiente.
Console
Per disabilitare l'integrazione della derivazione dei dati, nella pagina Crea ambiente:
Nella sezione Configurazione avanzata, espandi l'elemento Mostra configurazione avanzata.
Nella sezione Integrazione della derivazione dei dati Dataplex, seleziona Disabilita l'integrazione con la derivazione dei dati Dataplex.
gcloud
Quando crei un ambiente, l'argomento --disable-cloud-data-lineage-integration
disabilita l'integrazione della derivazione dei dati.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.6 \
--disable-cloud-data-lineage-integration
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.6 \
--disable-cloud-data-lineage-integration
Passaggio 11. (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 12: (Facoltativo) Utilizza il bucket di un ambiente personalizzato
Quando crei un ambiente, Cloud Composer crea automaticamente un bucket per l'ambiente.
In alternativa, puoi specificare un bucket Cloud Storage personalizzato dal tuo progetto. Il tuo ambiente utilizza questo bucket come se fosse creato automaticamente.
Per utilizzare un bucket di ambiente personalizzato, segui le istruzioni riportate in Utilizzare il bucket di un ambiente personalizzato.
Passaggio 13: (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 sezione Etichette della pagina Crea ambiente:
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-3-airflow-2.7.3-build.6 \
--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-3-airflow-2.7.3-build.6 \
--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"
}
}
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