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
Abilita l'API Cloud Composer. Per l'elenco completo dei servizi usati da Cloud Composer, vedi Servizi richiesti da Cloud Composer.
Il tempo approssimativo per la creazione di un ambiente è 25 minuti.
Durante la creazione dell'ambiente, specifica un account di servizio. Cloud Composer associa questo account a un account di servizio Kubernetes del cluster del tuo ambiente.
Per impostazione predefinita, Gli ambienti Cloud Composer utilizzano account di servizio Compute Engine predefinito. Ti consigliamo di creare un servizio gestito dall'utente account che ha un ruolo specifico per Cloud Composer e lo utilizza per i tuoi ambienti.
Se crei un ambiente con Terraform, l'account di servizio utilizzato Terraform deve avere un ruolo con l'autorizzazione
composer.environments.create
abilitata.Per ulteriori informazioni sul service account per Terraform, consulta Riferimento alla configurazione del provider Google.
Per saperne di più sull'utilizzo di Terraform per creare un ambiente Cloud Composer, consulta la documentazione di Terraform.
Per ulteriori informazioni sui parametri aggiuntivi, consulta Riferimento agli argomenti Terraform.
IP privato: esistono requisiti specifici di rete e peering per creare un ambiente IP privato. Per ulteriori informazioni, vedi Configurazione dell'IP privato.
VPC condivisa: esistono requisiti di rete specifici per utilizzare la VPC condivisa con Cloud Composer. Per informazioni, consulta la pagina sulla configurazione del VPC condiviso.
VPC SC: per eseguire il deployment di ambienti Cloud Composer all'interno di un ambiente consulta Configurazione di VPC SC. Se utilizzato con Cloud Composer, i Controlli di servizio VPC prevedono limitazioni note.
Passaggio 1: Impostazione di base
Questo passaggio crea un ambiente Cloud Composer con nella posizione 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 minuscoli lettere, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare componenti secondari per l'ambiente, quindi devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket di restrizioni.
Nell'elenco a discesa Località, scegli una località per il tuo ambiente.
Una località è la regione in cui si trova l'ambiente.
Nell'elenco a discesa Versione immagine, seleziona un'immagine Cloud Composer con le completamente gestita 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. Ambiente viene utilizzato per creare i sottocomponenti dell'ambiente, quindi devi fornire un nome che sia valido anche come Cloud Storage il nome del bucket. 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 Cloud Composer.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3
API
Creare una richiesta API environments.create
. Specifica
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 minuscoli lettere, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare componenti secondari per l'ambiente, quindi devi fornire un nome 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 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-2.9.7-airflow-2.9.3"
}
}
}
Terraform
Per creare un ambiente con parametri predefiniti,
aggiungi il seguente blocco di risorse alla configurazione di 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 minuscoli lettere, numeri o trattini e non può terminare con un trattino. Il nome dell'ambiente viene utilizzato per creare componenti secondari per l'ambiente, quindi devi fornire un nome valido anche come nome del bucket Cloud Storage. Consulta le linee guida per la denominazione dei bucket di restrizioni.
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 Cloud Composer.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.9.7-airflow-2.9.3"
}
}
}
Passaggio 2: (Facoltativo) Seleziona un account di servizio per il tuo ambiente
Cloud Composer lega questo account di servizio all'account di servizio Kubernetes del tuo ambiente. I nodi nel cluster del tuo ambiente vengono eseguiti come l'account di servizio Kubernetes e utilizzare le associazioni per accedere alle risorse progetto Google Cloud, ad esempio i file di definizione DAG nel tuo del bucket dell'ambiente.
Per impostazione predefinita, gli ambienti Cloud Composer utilizzano l'account di servizio Compute Engine predefinito. I nostri suggerimenti di configurare un account di servizio gestito dall'utente Ambienti Cloud Composer.
Non puoi 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 l'ambiente.
gcloud
Quando crei un ambiente, --service-account
specifica l'account di servizio per l'ambiente.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--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-2.9.7-airflow-2.9.3 \
--service-account "example-account@example-project.iam.gserviceaccount.com"
API
Quando crei un ambiente, nella sezione Ambiente > Risorsa EnvironmentConfig, e specificare un account di servizio per il tuo ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
Sostituisci:
SERVICE_ACCOUNT
con l'account di servizio per il tuo ambiente.
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
}
}
}
Terraform
Quando crei un ambiente, utilizza il campo service_account
nel blocco node_config
.
resource "google_composer_environment" "example" {
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: Concedi le autorizzazioni necessarie al service account di Cloud Composer
Quando attivi l'API Cloud Composer nel tuo progetto, viene creato l'account Agente di servizio Composer. Cloud Composer utilizza questo account per eseguire operazioni progetto Google Cloud.
Il ruolo Estensione agente di servizio API Cloud Composer v2 fornisce ulteriori le autorizzazioni all'account dell'agente di servizio di Cloud Composer. Questo ruolo è non viene concesso automaticamente. Devi concederlo manualmente.
Console
Quando crei un ambiente nel tuo progetto, se Agente di servizio Cloud Composer non dispone delle autorizzazioni richieste per l'account di servizio dell'ambiente, viene visualizzata la sezione Concedi le autorizzazioni necessarie all'account di servizio Cloud Composer.
Aggiungi l'account dell'agente di servizio Cloud Composer come nuova entità sull'account di servizio del tuo ambiente e concedi l'API Cloud Composer v2 il ruolo Estensione agente di servizio.
Conferma di utilizzare l'account di servizio previsto per il tuo ambiente e fai clic su Concedi.
gcloud
Aggiungi l'account agente di servizio Cloud Composer come nuovo principale all'account di servizio del tuo ambiente e assegnagli il ruolo Estensione agente di servizio API Cloud Composer v2.
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT \
--member serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
Sostituisci:
SERVICE_ACCOUNT
con l'account di servizio per il tuo ambiente.PROJECT_NUMBER
con il numero di progetto.
Esempio:
gcloud iam service-accounts add-iam-policy-binding \
example-account@example-project.iam.gserviceaccount.com \
--member serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
API
Per concedere il ruolo, devi modificare il criterio di autorizzazione esistente utilizzando il pattern di lettura, modifica e scrittura:
- Leggi il criterio di autorizzazione esistente per l'account di servizio del tuo ambiente.
- Modificalo in modo da includere il ruolo
roles/composer.ServiceAgentV2Ext
per l'agente di servizio Cloud Composer. - Riscrivere il criterio di autorizzazione esistente.
Per saperne di più, vedi Controllare l'accesso tramite programmazione.
{
"role": "roles/composer.ServiceAgentV2Ext",
"members": [
"serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
]
}
Sostituisci:
PROJECT_NUMBER
con il numero del progetto.
Esempio:
{
"role": "roles/composer.ServiceAgentV2Ext",
"members": [
"serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
]
}
Terraform
Aggiungi una nuova associazione dei ruoli al criterio di autorizzazione dell'account di servizio del tuo ambiente.
Aggiungi l'account agente di servizio Cloud Composer come nuovo principale all'account di servizio del tuo ambiente e assegnagli il ruolo L'estensione agente di servizio API Cloud Composer v2.
Se non utilizzi Terraform per definire il criterio di autorizzazione dell'account di servizio dell'ambiente, non utilizzare l'esempio seguente. Aggiungi questa associazione utilizzando altri metodi.
resource "google_service_account_iam_member" "custom_service_account" {
provider = google-beta
service_account_id = "SERVICE_ACCOUNT"
role = "roles/composer.ServiceAgentV2Ext"
member = "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
}
Sostituisci:
SERVICE_ACCOUNT
con l'account di servizio per il tuo ambiente.PROJECT_NUMBER
con il numero del progetto.
Esempio:
resource "google_service_account_iam_member" "custom_service_account" {
provider = google-beta
service_account_id = "example-account@example-project.iam.gserviceaccount.com"
role = "roles/composer.ServiceAgentV2Ext"
member = "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
}
Passaggio 4: (Facoltativo) Configurare i parametri di scalabilità e prestazioni dell'ambiente
Per specificare la configurazione di scalabilità e prestazioni per il tuo ambiente, seleziona la configurazione delle dimensioni e dei carichi di lavoro dell'ambiente.
Puoi modificare tutti i parametri di rendimento e scala dopo aver creato un ambiente.
I seguenti parametri controllano la scalabilità e il rendimento:
Dimensioni dell'ambiente. Controlla i parametri di prestazioni dell'infrastruttura Cloud Composer gestita che include il database Airflow. Se hai intenzione di eseguire un gran numero di DAG e attività con un rendimento dell'infrastruttura più elevato, valuta la possibilità di selezionare dimensioni più grandi per l'ambiente. Per Ad esempio, la dimensione dell'ambiente più grande aumenta la quantità di log delle attività Airflow che il tuo ambiente è in grado di elaborare con un ritardo minimo.
Configurazione dei carichi di lavoro. Controlla la scalabilità e le prestazioni dei componenti dell'ambiente in esecuzione in un cluster GKE: gli scheduler di Airflow, il server web di Airflow e i worker di Airflow.
Airflow Scheduler. Analizza i file di definizione dei DAG, pianifica le esecuzioni dei DAG in base all'intervallo pianificato e accoda le attività per l'esecuzione Worker Airflow.
Il tuo ambiente può eseguire più di uno scheduler Airflow contemporaneamente nel tempo. Utilizza più scheduler per distribuire il carico tra diversi scheduler per migliorare prestazioni e affidabilità.
L'aumento del numero di scheduler non migliora sempre Airflow le prestazioni dei dispositivi. Ad esempio, avere un solo scheduler può fornire una migliore anziché averne due. Ciò può accadere quando il programmatore aggiuntivo non viene utilizzato e, di conseguenza, consuma le risorse del tuo ambiente senza contribuire al rendimento complessivo. Le prestazioni effettive dello scheduler dipendono dal numero di worker Airflow, dal numero di DAG e attività 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 del tuo ambiente. Se modifichi il numero di pianificatori, puoi sempre eseguire nuovamente il ridimensionamento dell'ambiente in base al numero originale di pianificatori.
Per ulteriori informazioni sulla configurazione di più scheduler, vedi Documentazione di Airflow.
Attivazione del flusso d'aria. Monitora in modo asincrono tutte le attività differite nel tuo ambiente. Se hai almeno un'istanza di attivatore nel tuo ambiente (o almeno due in ambienti altamente resilienti), puoi utilizzare gli operatori differibili nei tuoi DAG.
Server web Airflow. Esegue l'interfaccia web di Airflow in cui puoi per monitorare, gestire e visualizzare i DAG.
Worker di Airflow. Esegui attività pianificate da Airflow scheduler. Il numero minimo e massimo di worker in dell'ambiente cambia dinamicamente a seconda del numero di attività nel in coda.
Console
Puoi selezionare una preimpostazione per il tuo ambiente. Quando selezioni una preimpostazione, vengono selezionati automaticamente i parametri di scala e rendimento per quella preimpostazione. Hai anche la possibilità di selezionare una preimpostazione personalizzata e specificare tutti i parametri di scala e rendimento per il tuo ambiente.
Per selezionare la configurazione di scalabilità e prestazioni per il tuo ambiente, su la pagina Crea ambiente:
Per utilizzare valori predefiniti, nella sezione Risorse dell'ambiente, fai clic su Piccola, Media 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 nonché all'allocazione delle risorse per CPU, memoria e spazio di archiviazione.
Nella sezione Trigger, utilizza il campo Numero di trigger per inserire il numero di trigger nel tuo ambiente. Puoi impostare questo numero su 0 se non vuoi utilizzare operatori posticipabili nei tuoi DAG.
Se imposti almeno un attivatore per il tuo ambiente, utilizza i campi CPU e Memoria per configurare l'allocazione delle risorse per gli attivatori.
Nella sezione Processore DAG, specifica il numero di processori DAG nel tuo ambiente e la quantità di CPU, memoria e spazio di archiviazione per ciascun processore DAG.
Nella sezione Server web, specifica la quantità di CPU, memoria e 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 tuoi worker
Nella sezione Infrastruttura principale, in Dimensioni dell'ambiente seleziona la dimensione dell'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 pianificatori.--scheduler-cpu
specifica il numero di CPU per uno scheduler Airflow.--scheduler-memory
specifica la quantità di memoria per un pianificatore Airflow.--scheduler-storage
specifica la quantità di spazio su disco per un flusso di lavoro Airflow scheduler.--triggerer-count
specifica il numero di triggerer di Airflow in completamente gestito di Google Cloud. Il valore predefinito di questo flag è0
. Gli attivatori sono necessari se vuoi utilizzare operatori differibili nei tuoi 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 flusso 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 gli attivatori. Il valore massimo consentito è uguale al numero di CPU del triggerer moltiplicate 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
.--web-server-cpu
specifica il numero di CPU per il server web Airflow.--web-server-memory
specifica la quantità di memoria per il web Airflow server web.--web-server-storage
specifica la quantità di spazio su disco per Airflow server web.--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 tuo del cluster dell'ambiente esegue almeno questo numero di worker.--max-workers
specifica il numero massimo di worker Airflow. Il tuo del cluster dell'ambiente esegue al massimo questo numero di worker.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--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 \
--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 pianificatori.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.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 deve superare questo numero, anche se un numero inferiore di worker può gestire il carico.WORKERS_MAX
con il numero massimo di worker Airflow che il tuo dell'ambiente di rete. Il numero di worker nel tuo ambiente non deve superare questo numero, anche se è necessario un numero maggiore di worker per gestire il carico.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--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 \
--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 sezione Ambiente > EnvironmentConfig > Risorsa WorkloadsConfig, specifica l'ambiente di scalabilità e parametri di prestazioni.
{
"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
},
"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 la dimensione del disco per un pianificatore, in GB.SCHEDULER_COUNT
con il numero di pianificatori.TRIGGERER_COUNT
con il numero di triggerer. Il valore predefinito è0
. Gli attivatori sono necessari se vuoi utilizzare operatori differibili nei tuoi 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 attivatore, 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 attivatore, 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 dell'attivatore moltiplicato per 6,5.Ad esempio, se imposti
TRIGGERER_CPU
su1
, il valore il valore minimo diTRIGGERER_MEMORY
è1
e il Il valore massimo è6.5
.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 deve superare questo numero, anche se un numero inferiore di worker può gestire il carico.WORKERS_MAX
con il numero massimo di worker Airflow che il tuo dell'ambiente di rete. Il numero di worker nel tuo ambiente non superiore a questo numero, anche se è necessario un numero più elevato di worker per gestire il carico.ENVIRONMENT_SIZE
con le dimensioni 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
},
"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 un flusso di lavoro Airflow scheduler. - Il campo
scheduler.memory_gb
specifica la quantità di memoria per un Scheduler di Airflow. - Il campo
scheduler.storage_gb
specifica la quantità di spazio su disco per un pianificatore. - Il campo
scheduler.count
specifica il numero di pianificatori nel tuo ambiente. - Il campo
triggerer.cpu
specifica il numero di CPU per un attivatore Airflow. - Il campo
triggerer.memory_gb
specifica la quantità di memoria per un trigger Airflow. Il campo
triggerer.count
specifica il numero di attivatori nel tuo ambiente.Il campo
web_server.cpu
specifica il numero di CPU per l'impostazione Airflow server web.Il campo
web_server.memory_gb
specifica la quantità di memoria per il server web di 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 in del 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 la dimensione del disco per un pianificatore, in GB.SCHEDULER_COUNT
con il numero di pianificatori.TRIGGERER_COUNT
con il numero di attivatori.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 deve superare questo numero, anche se un numero inferiore di worker può gestire il carico.WORKERS_MAX
con il numero massimo di worker Airflow che il tuo dell'ambiente di rete. Il numero di worker nel tuo ambiente non superiore a questo numero, anche se è necessario un numero più elevato di worker per gestire il carico.ENVIRONMENT_SIZE
con le dimensioni 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 5: (Facoltativo) Attiva la modalità ad alta resilienza
Ambienti Cloud Composer a elevata resilienza sono ambienti che usano ridondanza e failover integrati meccanismi che riducono la suscettibilità dell'ambiente a errori a livello di zona le interruzioni del servizio Single Point of failure.
Un ambiente altamente resiliente viene eseguito su almeno due zone di una regione selezionata. Esattamente due scheduler Airflow, due scheduler
e almeno due triggerer
(se il numero di triggerer non è impostato su 0
) viene eseguito in
in zone separate.
Il numero minimo di worker è impostato su due e il cluster del tuo ambiente distribuisce le istanze worker tra le zone. Nel caso di un'interruzione a livello di zona,
le istanze worker vengono ripianificate in una zona diversa. Cloud SQL
altamente resiliente è un'istanza a livello di regione con un
principale e un'istanza in standby.
Console
Nella pagina Crea ambiente:
Nella sezione Modalità di resilienza, seleziona Elevata resilienza.
Nella sezione Risorse dell'ambiente, seleziona i parametri di scala per un ambiente estremamente resiliente. Gli ambienti altamente resilienti richiedono esattamente due pianificatori, zero o tra due e dieci attivatori e almeno due worker:
Fai clic su Custom (Personalizzate).
Nell'elenco a discesa Numero di pianificatori, seleziona
2
.Nell'elenco a discesa Numero di triggerer, seleziona
0
. o un valore compreso tra2
e10
. Configura l'allocazione di CPU e memoria per gli attivatori.Nell'elenco a discesa Numero minimo di worker, seleziona
2
o più, a seconda del numero di worker richiesto.
Nella sezione Configurazione di rete:
In Tipo di rete, seleziona Ambiente IP privato.
Se necessario, specifica altri parametri di rete.
gcloud
Quando crei un ambiente, l'argomento --enable-high-resilience
consente la modalità ad alta resilienza.
Imposta i seguenti argomenti:
--enable-high-resilience
--enable-private-environment
e altri parametri di rete per un ambiente IP privato, se richiesto- Da
--scheduler-count
a2
Da
--triggerer-count
a0
o un valore compreso tra2
e10
. Se utilizzi gli attivatori, sono necessari anche i flag--triggerer-cpu and
--triggerer-memory` per la creazione dell'ambiente.Per ulteriori informazioni su
--triggerer-count
,--triggerer-cpu
e--triggerer-memory
flag; consulta Configura la scalabilità dell'ambiente e i parametri delle prestazioni.--min-workers
a2
o più
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--enable-high-resilience \
--enable-private-environment \
--scheduler-count 2 \
--triggerer-count 2 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5 \
--min-workers 2
API
Quando crei un ambiente, nella sezione Ambiente > EnvironmentConfig, abilita il livello modalità di resilienza.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"resilience_mode": "HIGH_RESILIENCE"
}
}
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"resilience_mode": "HIGH_RESILIENCE"
}
}
Terraform
Quando crei un ambiente, il campo resilience_mode
nel blocco config
attiva la modalità di elevata resilienza.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
}
}
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
resilience_mode = "HIGH_RESILIENCE"
}
Passaggio 6: (Facoltativo) Specifica una zona per il database dell'ambiente
Puoi specificare una zona Cloud SQL preferita quando crei un ambiente di resilienza standard.
Console
Nella pagina Crea ambiente:
Nella sezione Configurazione avanzata, espandi l'elemento Mostra configurazione avanzata.
Nell'elenco Zona del database Airflow, seleziona un'opzione preferita nella zona Cloud SQL.
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-2.9.7-airflow-2.9.3 \
--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-2.9.7-airflow-2.9.3 \
--cloud-sql-preferred-zone us-central1-a
API
Quando crei un ambiente, nella risorsa Environment > DatabaseConfig, specifica la zona Cloud SQL preferita.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"databaseConfig": {
"zone": "SQL_ZONE"
}
}
}
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 7: (Facoltativo) Configurare il networking del tuo ambiente
I parametri di networking dipendono dal tipo di ambiente che vuoi crea:
Ambiente IP pubblico. Utilizza i parametri di rete predefiniti.
Ambiente IP privato (con PSC). In questa configurazione, il tuo ambiente utilizza Private Service Connect per la connettività.
Configura l'ambiente IP privato:
- Configura il networking del progetto per gli ambienti IP privati.
- Configurare Private Service Connect quando crei il tuo ambiente.
- Specifica altri parametri per l'ambiente IP privato. come descritto più dettagliatamente in questa sezione.
Per un ambiente IP privato con PSC, 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 del control plane GKE. Intervallo IP per il control plane GKE.
- Subnet di connessione Cloud Composer. Intervallo IP per la subnet di connessione Cloud Composer.
Ambiente IP privato (peering VPC). In questa configurazione, il tuo ambiente utilizza i peering VPC per la connettività.
Configura l'ambiente IP privato:
- Configura il networking del progetto per gli ambienti IP privati.
- Specifica altri parametri per l'ambiente IP privato, come descritto più avanti in questa sezione.
Per un ambiente IP privato con peering VPC, devi sapere:
- L'ID della 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 control plane GKE.
Intervallo IP per il peering VPC per esportare dall'interno Cloud Composer alla rete selezionata. I componenti dell'infrastruttura Cloud Composer utilizzano gli indirizzi IP di questo intervallo.
Intervallo IP per l'istanza Cloud SQL.
Per un ambiente VPC condiviso, devi eseguire una configurazione di rete aggiuntiva per il progetto host, quindi creare un ambiente IP pubblico o privato in un progetto di servizio. Segui le istruzioni nella pagina Configurazione di un VPC condiviso.
Per un ambiente VPC condiviso, devi sapere:
- L'ID rete VPC del progetto host
L'ID della subnet VPC del progetto host
Due intervalli IP secondari nella subnet VPC del progetto host:
- Intervallo IP secondario per i pod
- Intervallo IP secondario per i servizi
Quando crei un ambiente VPC condiviso con IP pubblico, devi comunque specificare la rete VPC, la subnet e gli intervalli IP secondari del progetto host per i pod e i servizi.
Per creare un ambiente VPC SC, devi creare un perimetro di servizio e poi creare ambienti IP privati all'interno di questo perimetro. Segui le istruzioni descritte in Configurare i Controlli di servizio VPC.
Altre opzioni di networking per gli ambienti sono:
- Indirizzi IP pubblici utilizzati privatamente. Se vuoi utilizzare più indirizzi IP, il tuo ambiente può utilizzare privatamente determinati intervalli di indirizzi IP pubblici come intervalli di indirizzi IP di subnet interni per pod e servizi.
- Reti autorizzate. Se vuoi accedere al piano di controllo nell'ambiente IP privato mediante HTTPS, puoi utilizzare Reti autorizzate per specificare intervalli CIDR in grado di farlo.
- Agente di mascheramento IP. Utilizzando gli ambienti con il mascheramento IP di indirizzi IP, puoi utilizzare le traduzioni many-to-one degli indirizzi IP configurazioni di networking dell'ambiente di rete. Per ulteriori 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 la rete sia configurata per il tipo di ambiente che vuoi creare.
Nella sezione Configurazione di rete, espandi l'elemento Mostra configurazione di rete.
Nell'elenco a discesa Rete, seleziona l'ID rete VPC.
Nell'elenco a discesa Subnet, seleziona l'ID della subnet VPC.
Nella sezione Intervallo IP secondario per i pod, seleziona o specifica l'intervallo IP secondario per i pod. Puoi usare un intervallo secondario esistente nella tua rete VPC o scegliere di utilizzare un intervallo creato automaticamente.
Nella sezione Intervallo IP secondario per i servizi, seleziona o specifica l'intervallo IP secondario per i servizi. Puoi utilizzare un'istanza secondaria esistente della tua rete VPC, oppure scegli di utilizzarne uno creato automaticamente.
Nella sezione Tipo di rete, seleziona l'opzione Ambiente IP privato per creare un ambiente IP privato.
Nella sezione Connettività di Composer, seleziona il tipo di rete per il tuo ambiente e specifica gli intervalli IP per i componenti dell'ambiente:
Per un ambiente che utilizza Private Service Connect:
Seleziona Private Service Connect per un ambiente che utilizza Private Service Connect.
Nella sezione Subnet di connessione Composer, specifica un intervallo IP per la subnet di connessione Cloud Composer. La dell'endpoint PSC viene selezionato da questo intervallo. Puoi specificare un intervallo personalizzato o scegliere di utilizzare quello predefinito.
Per un ambiente che utilizza i peering VPC:
Seleziona Peering VPC per un ambiente che utilizza i peering VPC.
Nella sezione Intervallo IP per la rete tenant di Composer, specifica un indirizzo IP per la rete tenant di Cloud Composer. Questa rete ospita il componente proxy SQL del tuo ambiente. Puoi specificare un intervallo personalizzato o scegliere di utilizzare quello predefinito.
Nella sezione Intervallo IP per la rete Cloud SQL, specifica un intervallo IP per l'istanza Cloud SQL. Puoi specificare un intervallo personalizzato o utilizzare quello predefinito.
Nell'intervallo IP per la rete del piano di controllo GKE specifica un intervallo IP per il piano di controllo GKE:
Per utilizzare l'intervallo IP predefinito per la regione dove si trova il tuo ambiente, seleziona Intervallo IP predefinito.
Per specificare un intervallo IP personalizzato, seleziona Intervallo IP personalizzato e inserisci un nella notazione CIDR nell'IP privato del master del cluster GKE .
Seleziona il livello di accesso per il piano di controllo GKE. La ha due endpoint. Un endpoint è privato, per l'utilizzo da parte di di nodi e VM nei cluster. Un altro endpoint è pubblico. Puoi specificare livello di accesso per l'endpoint pubblico:
Per abilitare l'accesso all'endpoint pubblico dalle reti autorizzate, seleziona Accedi all'endpoint del piano di controllo del cluster utilizzando della casella di controllo dell'indirizzo IP esterno.
L'utilizzo di questa opzione imposta il livello di accesso per il piano di controllo su "Accesso all'endpoint pubblico abilitato, reti autorizzate abilitate". In questo modo, viene fornito l'accesso limitato al control plane dalle reti autorizzate. Per impostazione predefinita, non vengono specificati indirizzi IP di origine. Puoi aggiungere reti autorizzate al cluster.
Per disattivare l'accesso all'endpoint pubblico dalle reti autorizzate, rimuovi la selezione dalla casella di controllo Accedi all'endpoint del control plane del cluster utilizzando l'indirizzo IP esterno.
Se utilizzi questa opzione, il livello di accesso per il piano di controllo "Accesso pubblico agli endpoint disabilitato". In questo modo viene impedito qualsiasi accesso a internet al piano di controllo.
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, il valore predefinito è in uso.
--enable-private-environment
abilita un ambiente IP privato.--network
specifica l'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 GKE dal piano di controllo.
(Ambienti con PSC)
--connection-subnetwork
specifica un intervallo per la subnet di connessione di Cloud Composer, che ospita l'endpoint PSC.(Ambienti con peering VPC)
--composer-network-ipv4-cidr
specifica un intervallo per la rete tenant di Cloud Composer. Questa rete ospita il componente proxy SQL del tuo ambiente.(Ambienti con peering VPC)
--cloud-sql-ipv4-cidr
specifica un intervallo per l'istanza Cloud SQL.
--enable-private-endpoint
controlla l'accesso a livello per il control plane 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
.L'utilizzo di questa opzione imposta il livello di accesso per il control plane su "Accesso all'endpoint pubblico abilitato, reti autorizzate abilitate". Ciò fornisce un accesso limitato al piano di controllo dalle reti autorizzate. Per impostazione predefinita, non vengono specificati indirizzi 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
.L'utilizzo di questa opzione imposta il livello di accesso per il piano di controllo su "Accesso all'endpoint pubblico disabilitato". In questo modo viene impedito qualsiasi accesso a internet al piano di controllo.
--enable-master-authorized-networks
e--master-authorized-networks
argomenti configurano 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-2.9.7-airflow-2.9.3 \
--enable-private-environment \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
--cluster-ipv4-cidr PODS_RANGE \
--services-ipv4-cidr SERVICES_RANGE \
--master-ipv4-cidr CONTROL_PLANE_RANGE \
--connection-subnetwork COMPOSER_PSC_RANGE \
Sostituisci:
NETWORK_ID
con l'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.COMPOSER_PSC_RANGE
con l'intervallo per la subnet di connessione Cloud Composer.
Passaggio 8: (Facoltativo) Aggiungere tag di rete
I tag di rete vengono applicati a tutte le VM del nodo nel cluster del tuo ambiente. I tag vengono utilizzati per identificare origini o destinazioni valide per la rete firewall. Ogni tag all'interno dell'elenco deve essere conforme allo standard RFC 1035.
Ad esempio, ti consigliamo di aggiungere tag di rete se prevedi di limitare 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 tutti delle VM dei nodi.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--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-2.9.7-airflow-2.9.3 \
--tags group1,production
API
Quando crei un ambiente, nella sezione Ambiente > Risorsa 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 l'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 9: (Facoltativo) Configura l'accesso di rete al server web
I parametri di accesso al server web di Airflow non dipendono dal tipo di ambiente. In alternativa, puoi configurare l'accesso al server web separatamente. Per 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 Consentire l'accesso solo da indirizzi IP specifici. Nell'intervallo IP specifica un intervallo IP nella notazione CIDR. Nella nel campo Description (Descrizione), specifica una descrizione facoltativa intervallo. Se vuoi specificare più di un intervallo, fai clic su Aggiungi IP intervallo.
Per vietare l'accesso per tutti gli indirizzi IP, seleziona Consenti l'accesso solo da indirizzi IP specifici, quindi fai clic su Elimina elemento accanto al campo voce di intervallo.
gcloud
Quando crei un ambiente, i seguenti argomenti controllano il livello di accesso del 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-2.9.7-airflow-2.9.3 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Sostituisci:
WS_IP_RANGE
con l'intervallo IP, in notazione CIDR, che può accedere all'interfaccia utente di Airflow.WS_RANGE_DESCRIPTION
con la descrizione dell'intervallo IP.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"
API
Quando crei un ambiente, nella risorsa Environment > EnvironmentConfig, specifica i parametri di accesso al server web.
Per fornire l'accesso al server web Airflow da tutti gli indirizzi IP, ometti
webServerNetworkAccessControl
.Per limitare l'accesso solo a intervalli IP specifici, specifica uno o più intervalli in
allowedIpRanges
.Per vietare l'accesso per tutti gli indirizzi IP, aggiungi
allowedIpRanges
e impostalo come elenco vuoto. Non specificare intervalli IP.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
}
}
}
Sostituisci:
WS_IP_RANGE
con l'intervallo IP, in notazione CIDR, che può accedere all'interfaccia utente di Airflow.WS_RANGE_DESCRIPTION
con la descrizione dell'intervallo IP.
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
}
}
}
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, in notazione CIDR, che può accedere all'interfaccia utente di Airflow.WS_RANGE_DESCRIPTION
con la descrizione dell'intervallo IP.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "office net 1"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "office net 3"
}
}
}
Passaggio 10: (Facoltativo) Specifica gli override della configurazione e le variabili di ambiente di Airflow
Puoi configurare gli override della configurazione di Airflow e variabili di ambiente quando crei un ambiente. Come in alternativa, puoi farlo in un secondo momento, dopo la creazione dell'ambiente.
Alcune opzioni di configurazione di Airflow sono bloccate e tu non possono sostituirle.
Per l'elenco delle opzioni di configurazione di Airflow disponibili, consulta Riferimento alla configurazione per Airflow 2 e Airflow 1.10.*
Per specificare le variabili di ambiente e gli override della configurazione di Airflow:
Console
Nella pagina Crea ambiente:
Nella sezione Variabili di ambiente, fai clic su Aggiungi la variabile di ambiente.
Inserisci il Nome e il Valore per la variabile di ambiente.
Nella sezione Override della configurazione Airflow, fai clic su Aggiungi override della configurazione Airflow.
Inserisci la Sezione, la Chiave e il Valore per la configurazione override dell'opzione.
Ad esempio:
Sezione Chiave Valore webserver
dag_orientation
TB
gcloud
Quando crei un ambiente, i seguenti argomenti controllano l'ambiente delle variabili e degli override della configurazione 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 di chiavi e valori separati da virgole per gli override della configurazione Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--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 diSECTION-KEY=VALUE
separati da virgole per eseguire gli override della configurazione. Separa il nome della sezione di configurazione con un simbolo-
, seguito dal nome della chiave. Ad esempio:core-dags_are_paused_at_creation
.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--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 sezione Ambiente > Risorsa EnvironmentConfig, specifica le variabili di ambiente e gli override della configurazione Airflow.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"SECTION-KEY": "OVERRIDE_VALUE"
},
"envVariables": {
"VAR_NAME": "VAR_VALUE",
}
}
}
}
Sostituisci:
SECTION
con la sezione del file di configurazione in cui viene usato Airflow di configurazione.KEY
con il nome dell'opzione di configurazione di Airflow.OVERRIDE_VALUE
con un valore dell'opzione di configurazione di Airflow.VAR_NAME
con il nome della variabile di ambiente.VAR_VALUE
con il valore della variabile di ambiente.
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"core-dags_are_paused_at_creation": "True",
"webserver-dag_orientation": "TB"
},
"envVariables": {
"SENDGRID_MAIL_FROM": "user@example.com",
"SENDGRID_API_KEY": "example-key"
}
}
}
}
Terraform
Quando crei un ambiente, i blocchi seguenti controllano le variabili di ambiente 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 Override della configurazione Airflow.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
airflow_config_overrides = {
SECTION-KEY = "OVERRIDE_VALUE"
}
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
Sostituisci:
SECTION
con la sezione del file di configurazione in cui viene usato Airflow di configurazione.KEY
con il nome dell'opzione di configurazione di Airflow.OVERRIDE_VALUE
con un valore dell'opzione di configurazione di Airflow.VAR_NAME
con il nome della variabile di ambiente.VAR_VALUE
con il valore della variabile di ambiente.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
airflow_config_overrides = {
core-dags_are_paused_at_creation = "True"
webserver-dag_orientation = "TB"
}
env_variables = {
SENDGRID_MAIL_FROM = "user@example.com"
SENDGRID_API_KEY = "example-key"
}
}
}
}
Passaggio 11. (Facoltativo) Specifica i periodi di manutenzione
I periodi di manutenzione predefiniti di Cloud Composer 2 hanno inizio 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
Individua la sezione Finestre di manutenzione.
Nell'elenco a discesa Fuso orario, scegli un fuso orario per la manutenzione finestre.
Imposta Ora di inizio, Giorni e Durata, in modo che il tempo combinato per la programmazione specificata è di almeno 12 ore in un 7 giorni finestra temporale continua. Ad esempio, un periodo di 4 ore ogni lunedì, mercoledì e venerdì fornisce la durata richiesta.
gcloud
I seguenti argomenti definiscono i parametri delle finestre 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-2.9.7-airflow-2.9.3 \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.DATETIME_START
con la data e l'ora di inizio nel formato di immissione della data/dell'ora. Viene utilizzata solo l'ora specificata del giorno, mentre la data specificata viene ignorata.DATETIME_END
con data e ora di fine nel formato di input di data/ora. Viene utilizzata solo l'ora specificata del giorno, mentre la data specificata viene ignorata. La data specificata e l'ora deve essere successiva alla data di inizio.MAINTENANCE_RECURRENCE
con una RRULE RFC 5545 per la manutenzione la ricorrenza delle finestre. 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 ripetizione in giorni della settimana selezionati.
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data 1° gennaio 2023 viene ignorata.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--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, Ambiente > Risorsa EnvironmentConfig, specifica parametri per i periodi di manutenzione:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Sostituisci:
DATETIME_START
con data e ora di inizio nel formato di input di data/ora. Viene utilizzata solo l'ora specificata del giorno, mentre la data specificata viene ignorata.DATETIME_END
con la data e l'ora di fine nel formato di immissione della data/dell'ora. Solo il viene utilizzata l'ora del giorno specificata, la data specificata viene ignorata. La 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 ripetizione in giorni della settimana selezionati.
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. 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 di data/ora. Solo il viene utilizzata l'ora del giorno specificata, la data specificata viene ignorata.DATETIME_END
con data e ora di fine nel formato di input di data/ora. Viene utilizzata solo l'ora specificata del giorno, mentre la data specificata viene ignorata. La 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 ripetizione in giorni della settimana selezionati.
- Il formato
L'esempio seguente specifica un periodo di manutenzione di 6 ore tra le 01:00 e le 07:00 (UTC) di mercoledì, sabato e domenica. La data 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 12: (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 Cloud Composer 2 versioni 2.1.2 e successive con Airflow versioni 2.2.5 e in un secondo momento.L'integrazione della derivazione dei dati viene attivata automaticamente in un nuovo ambiente Cloud Composer se sono soddisfatte le seguenti condizioni:
L'API Data Lineage è abilitata nel tuo progetto. Per ulteriori informazioni, consulta Abilitazione dell'API Data Lineage nella documentazione di Dataplex.
Un segmento di pubblico personalizzato Backend di derivazione non è configurato in Airflow.
Puoi disattivare l'integrazione della cronologia dei dati quando crei un ambiente. Ad esempio, se vuoi ignorare il comportamento automatico o scegliere di attivare il report sulla struttura dei dati in un secondo momento, dopo aver creato l'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, il --disable-cloud-data-lineage-integration
disabilita l'integrazione della derivazione dei dati.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--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-2.9.7-airflow-2.9.3 \
--disable-cloud-data-lineage-integration
Passaggio 13. (Facoltativo) Configura la crittografia dei dati (CMEK)
Per impostazione predefinita, i dati nel tuo ambiente sono criptati con una chiave fornita dal in tutti i canali Google.
Per utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati nel tuo ambiente, segui le istruzioni riportate in Utilizzo delle chiavi di crittografia gestite dal cliente.
Passaggio 14: (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 progetto. Il tuo ambiente usa questo bucket come avviene del bucket creato.
Per utilizzare un bucket di ambiente personalizzato, segui le istruzioni riportate in Utilizzare il bucket di un ambiente personalizzato.
Passaggio 15: (Facoltativo) Specifica le etichette dell'ambiente
Puoi assegnare etichette ai tuoi ambienti per suddividere i costi di fatturazione in base a queste etichette.
Console
Nella sezione Etichette della pagina Crea ambiente:
Fai clic su Aggiungi etichetta.
Nei campi Chiave e Valore, specifica le coppie chiave-valore per il etichette di ambiente.
gcloud
Quando crei un ambiente, l'argomento --labels
specifica un elenco separato da virgole di chiavi e valori con le etichette dell'ambiente.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.9.7-airflow-2.9.3 \
--labels LABELS
Sostituisci:
LABELS
con un elenco di coppieKEY=VALUE
separate da virgole per le etichette di ambiente.
Esempio:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3 \
--labels owner=engineering-team,env=production
API
Quando crei un ambiente, nella sezione 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
- Risoluzione dei problemi di creazione dell'ambiente
- Configurazione della rete VPC condivisa
- 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