Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)
Quando crei un ambiente, puoi specificare un bucket Cloud Storage personalizzato come bucket dell'ambiente. L'ambiente utilizza questo bucket nello stesso modo del bucket dell'ambiente predefinito, e il bucket dell'ambiente predefinito non viene creato.
Con un bucket personalizzato puoi:
- Utilizzare una configurazione del bucket conforme ai tuoi requisiti.
- Utilizzare un bucket esistente in modo continuo per scopi di sviluppo o test periodici.
- Riutilizzare un bucket esistente di un ambiente precedente e mantenere le integrazioni CI/CD e dei dati.
- Eliminare e ricreare un ambiente senza dover trasferire dati tra i bucket.
- Precompilare il bucket personalizzato con i dati richiesti, ad esempio i file DAG, e poi creare un ambiente.
Prima di iniziare
- Questa funzionalità è supportata a partire dalla versione 2.5.0 di Managed Airflow. Le versioni precedenti di Managed Airflow (seconda generazione) non supportano questa funzionalità.
- Il bucket personalizzato deve trovarsi nella stessa regione dell'ambiente. I bucket multiregionali e a due regioni non sono supportati.
- Il bucket personalizzato e l'ambiente devono trovarsi nello stesso progetto.
- Il bucket personalizzato deve avere la classe di archiviazione Standard.
- Al bucket personalizzato non devono essere applicate policy di conservazione o blocchi delle policy di conservazione.
- Il bucket personalizzato non deve avere lo spazio dei nomi gerarchico abilitato.
Non è possibile utilizzare lo stesso bucket personalizzato con più ambienti contemporaneamente. Managed Airflow genera un errore se il bucket specificato è già utilizzato da un altro ambiente. È possibile eliminare un ambiente e poi utilizzare lo stesso bucket per un altro ambiente.
Se hai abilitato il salvataggio dei log nel bucket dell'ambiente, se elimini un ambiente e poi utilizzi lo stesso bucket per un altro ambiente, il nuovo ambiente non mostra i log delle attività di Airflow dell' ambiente precedente nell'interfaccia utente di Airflow. I log rimangono nel bucket, ma il nuovo ambiente non li associa ad alcuna esecuzione DAG.
Managed Airflow non aggiunge autorizzazioni IAM mancanti al bucket Cloud Storage quando viene utilizzato per creare un ambiente. Assicurati che il account di servizio dell'ambiente disponga delle autorizzazioni del ruolo Worker di Composer sul bucket.
Creare un ambiente con un bucket personalizzato
Console
Per specificare un bucket Cloud Storage personalizzato quando crei un ambiente:
- Nella pagina Crea ambiente, nella sezione Configurazione avanzata, fai clic su Mostra configurazione avanzata.
- Seleziona Bucket personalizzato.
- Nel campo Nome bucket, specifica o seleziona un bucket.
gcloud
Quando crei un ambiente, l'argomento --storage-bucket specifica il bucket personalizzato dell'ambiente.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--storage-bucket CUSTOM_STORAGE_BUCKET
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.CUSTOM_STORAGE_BUCKET: il nome di un bucket Cloud Storage. Puoi anche specificare l'URI del bucket (con il prefissogs://).
Esempio:
gcloud composer environments create example-environment \
--location us-cental1 \
--storage-bucket us-central1-example-bucket
API
Quando crei un ambiente, nella risorsa Environment > StorageConfig, specifica un bucket personalizzato per l'ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"storageConfig": {
"bucket": "CUSTOM_STORAGE_BUCKET"
}
}
Sostituisci quanto segue:
PROJECT_ID: l'ID progetto .LOCATION: la regione in cui si trova l'ambiente.ENVIRONMENT_NAME: il nome dell'ambiente.CUSTOM_STORAGE_BUCKET: il nome di un bucket Cloud Storage (senza il prefissogs://).
Esempio:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"storageConfig": {
"bucket": "us-central1-example-bucket"
}
}
Terraform
Quando crei un ambiente, il campo bucket nel blocco storage_config specifica il bucket personalizzato dell'ambiente.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
storage_config {
bucket = CUSTOM_STORAGE_BUCKET
}
}
Sostituisci quanto segue:
ENVIRONMENT_NAME: il nome dell'ambiente.LOCATION: la regione in cui si trova l'ambiente.CUSTOM_STORAGE_BUCKET: il nome di un bucket Cloud Storage. Puoi anche specificare l'URI del bucket (con il prefissogs://).
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
storage_config {
bucket = "gs://us-central1-example-bucket"
}
}