Questa pagina documenta varie opzioni di configurazione dei modelli Dataflow Flex, tra cui:
- Autorizzazioni
- Variabili di ambiente Dockerfile
- Dipendenze del pacchetto
- Immagini Docker
- Opzioni pipeline
- Posizioni temporanee e temporanee
Per configurare un modello flessibile di esempio, consulta il tutorial sui modelli flessibili.
Informazioni sulle autorizzazioni dei modelli flessibili
Quando utilizzi i modelli flessibili, sono necessarie tre serie di autorizzazioni:
- Autorizzazioni per la creazione di risorse
- Autorizzazioni per creare un modello flessibile
- Autorizzazioni per eseguire un modello flessibile
Autorizzazioni per la creazione di risorse
Per sviluppare ed eseguire una pipeline Modello flessibile, devi creare varie risorse, ad esempio un bucket gestione temporanea. Per le attività di creazione di risorse una tantum, puoi utilizzare il ruolo Proprietario di base.
Autorizzazioni per creare un modello flessibile
In qualità di sviluppatore di un modello flessibile, devi creare il modello per renderlo disponibile agli utenti. La creazione comporta il caricamento delle specifiche del modello in un bucket Cloud Storage e il provisioning di un'immagine Docker con il codice e le dipendenze necessari per eseguire la pipeline. Per creare un modello flessibile, devi disporre dell'accesso in lettura e scrittura a Cloud Storage e dell'accesso in scrittura ad Artifact Registry al tuo repository Artifact Registry. Puoi concedere queste autorizzazioni assegnando i ruoli seguenti:
- Amministratore Storage (
roles/storage.admin
) - Editor Cloud Build (
roles/cloudbuild.builds.editor
) - Writer Artifact Registry (
roles/artifactregistry.writer
)
Autorizzazioni per eseguire un modello flessibile
Quando esegui un modello flessibile, Dataflow crea un job per te. Per creare il job, l'account di servizio Dataflow richiede la seguente autorizzazione:
dataflow.serviceAgent
Quando utilizzi Dataflow per la prima volta, il servizio assegna questo ruolo automaticamente, quindi non è necessario concedere questa autorizzazione.
Per impostazione predefinita, l'account di servizio Compute Engine viene utilizzato per le VM Avvio app e le VM worker. L'account di servizio richiede i seguenti ruoli e abilità:
- Amministratore oggetti Storage (
roles/storage.objectAdmin
) - Visualizzatore (
roles/viewer
) - Worker Dataflow (
roles/dataflow.worker
) - Accesso in lettura e scrittura al bucket di gestione temporanea
- Accesso in lettura all'immagine del modello flessibile
Per concedere l'accesso in lettura e scrittura al bucket di gestione temporanea, puoi utilizzare il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin
). Per maggiori informazioni, consulta Ruoli IAM per Cloud Storage.
Per concedere l'accesso in lettura all'immagine del modello flessibile, puoi utilizzare il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
). Per ulteriori informazioni, consulta Configurazione del controllo dell'accesso.
Imposta le variabili di ambiente Dockerfile richieste
Se vuoi creare il tuo Dockerfile per un job del modello flessibile, specifica le seguenti variabili di ambiente:
Java
Specifica FLEX_TEMPLATE_JAVA_MAIN_CLASS
e
FLEX_TEMPLATE_JAVA_CLASSPATH
nel tuo Dockerfile.
ENV | Descrizione | Obbligatorio |
---|---|---|
FLEX_TEMPLATE_JAVA_MAIN_CLASS |
Specifica la classe Java da eseguire per avviare il modello flessibile. | SÌ |
FLEX_TEMPLATE_JAVA_CLASSPATH |
Specifica la posizione dei file di classe. | SÌ |
FLEX_TEMPLATE_JAVA_OPTIONS |
Specifica le opzioni Java da passare durante l'avvio del modello flessibile. | NO |
Python
Specifica FLEX_TEMPLATE_PYTHON_PY_FILE
nel Dockerfile.
Per gestire le dipendenze della pipeline, imposta le variabili nel Dockerfile, come segue:
FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE
FLEX_TEMPLATE_PYTHON_PY_OPTIONS
FLEX_TEMPLATE_PYTHON_SETUP_FILE
FLEX_TEMPLATE_PYTHON_EXTRA_PACKAGES
Ad esempio, le seguenti variabili di ambiente sono impostate nel tutorial sui flussi di dati in Python sul modello flessibile in GitHub:
ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="${WORKDIR}/requirements.txt"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/streaming_beam.py"
ENV | Descrizione | Obbligatorio |
---|---|---|
FLEX_TEMPLATE_PYTHON_PY_FILE |
Specifica il file Python da eseguire per avviare il modello flessibile. | SÌ |
FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE |
Specifica il file dei requisiti con le dipendenze della pipeline. Per maggiori informazioni, consulta Dipendenze PyPI nella documentazione di Apache Beam. | NO |
FLEX_TEMPLATE_PYTHON_SETUP_FILE |
Specifica il percorso del file del pacchetto della pipeline "setup.py". Per maggiori informazioni, consulta Dipendenze dei file multiple nella documentazione di Apache Beam. | NO |
FLEX_TEMPLATE_PYTHON_EXTRA_PACKAGES |
Specifica i pacchetti che non sono disponibili pubblicamente. Per informazioni su come utilizzare pacchetti aggiuntivi, consulta Dipendenze locali o non PyPI. |
NO |
FLEX_TEMPLATE_PYTHON_PY_OPTIONS |
Specifica le opzioni Python da passare durante l'avvio del modello flessibile. | NO |
Dipendenze pacchetto
Quando una pipeline Python Dataflow utilizza dipendenze aggiuntive, potrebbe essere necessario configurare il modello flessibile per installare dipendenze aggiuntive sulle VM worker Dataflow.
Quando esegui un job Python Dataflow che utilizza i modelli flessibili in un ambiente che limita l'accesso a internet, devi preconfezionare le dipendenze quando crei il modello.
Utilizza una delle seguenti opzioni per prepacchettizzare le dipendenze Python.
Per istruzioni sulla gestione delle dipendenze delle pipeline nelle pipeline Java e Go, consulta Gestire le dipendenze delle pipeline in Dataflow.
Utilizza un file dei requisiti e prepara le dipendenze con il modello
Se utilizzi il tuo Dockerfile per definire l'immagine del modello flessibile, segui questi passaggi:
Crea un file
requirements.txt
che elenchi le dipendenze della pipeline.COPY requirements.txt /template/ ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="/template/requirements.txt"
Installa le dipendenze nell'immagine del modello flessibile.
RUN pip install --no-cache-dir -r $FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE
Scarica le dipendenze nella cache dei requisiti locali, in modalità temporanea per i worker Dataflow al momento dell'avvio del modello.
RUN pip download --no-cache-dir --dest /tmp/dataflow-requirements-cache -r $FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE
Di seguito è riportato un esempio di codice che mostra le dipendenze per il pre-download.
Utilizza un container personalizzato che preinstalla tutte le dipendenze
Questa opzione è preferita per le pipeline eseguite in ambienti senza accesso a internet.
Per utilizzare un container personalizzato, segui questi passaggi:
Crea un container personalizzato che preinstalla le dipendenze necessarie.
Preinstalla le stesse dipendenze nel Dockerfile del modello flessibile. Non usare l'opzione
FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE
.Un elemento
dataflow/flex-templates/streaming_beam/Dockerfile
modificato potrebbe avere l'aspetto del seguente esempio:FROM gcr.io/dataflow-templates-base/python3-template-launcher-base ENV FLEX_TEMPLATE_PYTHON_PY_FILE="/template/streaming_beam.py" COPY . /template RUN pip install --no-cache-dir -r /template/requirements.txt
In alternativa, per ridurre il numero di immagini da gestire, utilizza l'immagine container personalizzata come immagine di base per il modello flessibile.
Se utilizzi l'SDK Apache Beam versione 2.49.0 o precedenti, aggiungi l'opzione della pipeline
--sdk_location=container
in Avvio app della pipeline. Questa opzione indica alla pipeline di utilizzare l'SDK dal container personalizzato anziché scaricare l'SDK.options = PipelineOptions(beam_args, save_main_session=True, streaming=True, sdk_location="container")
Imposta il parametro
sdk_container_image
nel comandoflex-template run
. Ad esempio:gcloud dataflow flex-template run $JOB_NAME \ --region=$REGION \ --template-file-gcs-location=$TEMPLATE_PATH \ --parameters=sdk_container_image=$CUSTOM_CONTAINER_IMAGE \ --additional-experiments=use_runner_v2
Per maggiori informazioni, consulta Utilizzare container personalizzati in Dataflow.
Strutturare la pipeline come un pacchetto
Se struttura la pipeline come pacchetto,
utilizza l'opzione FLEX_TEMPLATE_PYTHON_SETUP_FILE
. Per saperne di più
sulla strutturazione della pipeline come pacchetto, consulta
Dipendenze file multiple
nella documentazione di Apache Beam.
Se utilizzi il tuo Dockerfile per definire l'immagine del modello flessibile, installa il pacchetto nel Dockerfile.
Il Dockerfile del modello flessibile potrebbe includere quanto segue:
COPY setup.py .
COPY main.py .
COPY package_name package_name
RUN pip install -e .
ENV FLEX_TEMPLATE_PYTHON_SETUP_FILE="${WORKDIR}/setup.py"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/main.py"
Se utilizzi questo metodo e usi un'immagine container personalizzata per preinstallare le dipendenze nell'ambiente di runtime, ti consigliamo di installare il pacchetto pipeline nell'immagine container personalizzata al momento della creazione. Non specificare l'opzione FLEX_TEMPLATE_PYTHON_SETUP_FILE
.
Per un esempio che segue questo approccio, consulta il tutorial Modello flessibile per una pipeline con dipendenze e un'immagine container personalizzata in GitHub.
Scegli un'immagine di base
Puoi utilizzare un'immagine di base fornita da Google per pacchettizzare le immagini container del tuo modello utilizzando Docker. Scegli il tag più recente dalle immagini di base dei modelli Flex.
Ti consigliamo di utilizzare un tag immagine specifico anziché latest
.
Specifica l'immagine di base nel seguente formato:
gcr.io/dataflow-templates-base/IMAGE_NAME:TAG
Sostituisci quanto segue:
IMAGE_NAME
: un'immagine di base fornita da GoogleTAG
: un nome di versione per l'immagine di base, disponibile nella documentazione di riferimento per le immagini di base dei modelli flessibili
Utilizza immagini container personalizzate
Se la tua pipeline utilizza un'immagine container personalizzata, ti consigliamo di usarla come immagine di base per l'immagine Docker del modello flessibile. A questo scopo, copia il programma binario di Avvio applicazioni del modello flessibile dall'immagine di base del modello fornita da Google sulla tua immagine personalizzata.
Un esempio di Dockerfile
per un'immagine che può essere utilizzata sia come immagine container personalizzata dell'SDK sia come modello flessibile potrebbe avere il seguente aspetto:
FROM gcr.io/dataflow-templates-base/IMAGE_NAME:TAG as template_launcher
FROM apache/beam_python3.10_sdk:2.55.1
# RUN <...Make image customizations here...>
# See: https://cloud.google.com/dataflow/docs/guides/build-container-image
# Configure the Flex Template here.
COPY --from=template_launcher /opt/google/dataflow/python_template_launcher /opt/google/dataflow/python_template_launcher
COPY my_pipeline.py /template/
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="/template/my_pipeline.py"
Sostituisci quanto segue:
IMAGE_NAME
: un'immagine di base fornita da Google. Ad esempio:python311-template-launcher-base
.TAG
: un tag di versione per l'immagine di base presente nella documentazione di riferimento per le immagini di base dei modelli flessibili. Per migliorare la stabilità e la risoluzione dei problemi, non utilizzarelatest
. Blocca su un tag di versione specifico.
Per un esempio che segue questo approccio, consulta il tutorial Modello flessibile per una pipeline con dipendenze e un'immagine container personalizzata.
Utilizzare un'immagine di un registro privato
Puoi creare un'immagine del modello flessibile archiviata in un registro Docker privato, se il registro privato utilizza HTTPS e ha un certificato valido.
Per utilizzare un'immagine da un registro privato, specifica il percorso dell'immagine e un nome utente e una password per il registro. Il nome utente e la password devono essere archiviati in Secret Manager. Puoi fornire il secret in uno dei seguenti formati:
projects/{project}/secrets/{secret}/versions/{secret_version}
projects/{project}/secrets/{secret}
Se utilizzi il secondo formato, perché non specifica la versione, Dataflow utilizza la versione più recente.
Se il registro utilizza un certificato autofirmato, devi anche specificare il percorso del certificato autofirmato in Cloud Storage.
La seguente tabella descrive le opzioni gcloud CLI che puoi utilizzare per configurare un registro privato.
Parametro | Descrizione |
---|---|
image
|
L'indirizzo del registry. Ad esempio:
gcp.repository.example.com:9082/registry/example/image:latest .
|
image-repository-username-secret-id
|
L'ID secret di Secret Manager per il nome utente per l'autenticazione
nel registro privato. Ad esempio:
projects/example-project/secrets/username-secret .
|
image-repository-password-secret-id
|
L'ID secret di Secret Manager per la password per l'autenticazione
nel registro privato. Ad esempio:
projects/example-project/secrets/password-secret/versions/latest .
|
image-repository-cert-path
|
L'URL Cloud Storage completo per un certificato autofirmato per il registro privato. Questo valore è obbligatorio solo se il registro utilizza un certificato autofirmato. Ad esempio:
gs://example-bucket/self-signed.crt .
|
Ecco un esempio di comando Google Cloud CLI che crea un modello flessibile utilizzando un'immagine in un registro privato con un certificato autofirmato.
gcloud dataflow flex-template build gs://example-bucket/custom-pipeline-private-repo.json --sdk-language=JAVA --image="gcp.repository.example.com:9082/registry/example/image:latest" --image-repository-username-secret-id="projects/example-project/secrets/username-secret" --image-repository-password-secret-id="projects/example-project/secrets/password-secret/versions/latest" --image-repository-cert-path="gs://example-bucket/self-signed.crt" --metadata-file=metadata.json
Per creare un modello flessibile, devi sostituire i valori di esempio e specificare opzioni diverse o aggiuntive. Per scoprire di più, consulta le seguenti risorse:
Specifica le opzioni della pipeline
Per informazioni sulle opzioni della pipeline supportate direttamente dai modelli flessibili, consulta Opzioni della pipeline.
Puoi anche utilizzare indirettamente qualsiasi opzione della pipeline Apache Beam. Se utilizzi un file metadata.json
per il job del modello flessibile, includi queste opzioni della pipeline nel file. Questo file di metadati deve essere nel formato TemplateMetadata
.
Altrimenti, quando avvii il job del modello flessibile, passa queste opzioni della pipeline utilizzando il campo dei parametri.
API
Includi le opzioni della pipeline utilizzando il campo parameters
.
gcloud
Includi le opzioni della pipeline utilizzando il flag parameters
.
Quando passi parametri di tipo List
o Map
, potrebbe essere necessario definire i parametri in un file YAML e utilizzare flags-file
.
Per un esempio di questo approccio, visualizza il passaggio "Crea un file con parametri..." in questa soluzione.
Quando utilizzi i modelli flessibili, puoi configurare alcune opzioni della pipeline durante l'inizializzazione della pipeline, ma le altre opzioni non possono essere modificate. Se gli argomenti della riga di comando richiesti dal modello flessibile vengono sovrascritti, il job potrebbe ignorare, sostituire o ignorare le opzioni della pipeline trasmesse dall'avvio dei modelli. Potrebbe non essere possibile avviare il job oppure un job che non utilizza il modello flessibile potrebbe essere avviato. Per maggiori informazioni, consulta Impossibile leggere il file del job.
Durante l'inizializzazione della pipeline, non modificare le seguenti opzioni della pipeline:
Java
runner
project
jobName
templateLocation
region
Python
runner
project
job_name
template_location
region
Go
runner
project
job_name
template_location
region
Blocca le chiavi SSH del progetto dalle VM che utilizzano chiavi SSH basate su metadati
Puoi impedire alle VM di accettare chiavi SSH archiviate nei metadati del progetto bloccando le chiavi SSH del progetto dalle VM. Utilizza il flag additional-experiments
con l'opzione di servizio block_project_ssh_keys
:
--additional-experiments=block_project_ssh_keys
Per maggiori informazioni, consulta le opzioni del servizio Dataflow.
Metadati
Puoi estendere il modello con metadati aggiuntivi in modo che i parametri personalizzati vengano convalidati quando il modello viene eseguito. Se vuoi creare metadati per il tuo modello, segui questi passaggi:
- Crea un file
metadata.json
utilizzando i parametri in Parametri dei metadati.Per visualizzare un esempio, vedi File di metadati di esempio.
- Archivia il file di metadati in Cloud Storage nella stessa cartella del modello.
Parametri dei metadati
Chiave parametro | Obbligatorio | Descrizione del valore | |
---|---|---|---|
name |
Sì | Il nome del modello. | |
description |
No | Un breve paragrafo di testo che descrive il modello. | |
streaming |
No | Se true , questo modello supporta lo streaming. Il valore predefinito è false . |
|
supportsAtLeastOnce |
No | Se true , questo modello supporta l'elaborazione almeno una volta. Il valore predefinito è false . Imposta questo parametro su true se il modello è progettato per funzionare con la modalità di flusso at-least-once.
|
|
supportsExactlyOnce |
No | Se true , questo modello supporta l'elaborazione "exactly-once". Il valore predefinito è true . |
|
defaultStreamingMode |
No | La modalità di streaming predefinita, per i modelli che supportano sia la modalità at-least-once che
la modalità "exactly-once". Utilizza uno dei seguenti valori: "AT_LEAST_ONCE" ,
"EXACTLY_ONCE" . Se non viene specificato, la modalità di streaming predefinita è "exactly-once".
|
|
parameters |
No | Un array di parametri aggiuntivi utilizzati dal modello. Per impostazione predefinita viene utilizzato un array vuoto. | |
name |
Sì | Il nome del parametro utilizzato nel modello. | |
label |
Sì | Una stringa leggibile utilizzata nella console Google Cloud per etichettare il parametro. | |
helpText |
Sì | Un breve paragrafo di testo che descrive il parametro. | |
isOptional |
No | false se il parametro è obbligatorio e true se il parametro è facoltativo. A meno che non venga impostato un valore, il valore predefinito di isOptional è false .
Se non includi questa chiave di parametro per i metadati, i metadati diventano un parametro obbligatorio. |
|
regexes |
No | Un array di espressioni regolari POSIX-egrep in forma di stringa utilizzato per convalidare il valore del parametro. Ad esempio, ["^[a-zA-Z][a-zA-Z0-9]+"] è una singola
espressione regolare che verifica che il valore inizi con una lettera e poi abbia uno o
più caratteri. Per impostazione predefinita viene utilizzato un array vuoto. |
Esempio di file di metadati
Java
{ "name": "Streaming Beam SQL", "description": "An Apache Beam streaming pipeline that reads JSON encoded messages from Pub/Sub, uses Beam SQL to transform the message data, and writes the results to a BigQuery", "parameters": [ { "name": "inputSubscription", "label": "Pub/Sub input subscription.", "helpText": "Pub/Sub subscription to read from.", "regexes": [ "[a-zA-Z][-_.~+%a-zA-Z0-9]{2,}" ] }, { "name": "outputTable", "label": "BigQuery output table", "helpText": "BigQuery table spec to write to, in the form 'project:dataset.table'.", "isOptional": true, "regexes": [ "[^:]+:[^.]+[.].+" ] } ] }
Python
{ "name": "Streaming beam Python flex template", "description": "Streaming beam example for python flex template.", "parameters": [ { "name": "input_subscription", "label": "Input PubSub subscription.", "helpText": "Name of the input PubSub subscription to consume from.", "regexes": [ "projects/[^/]+/subscriptions/[a-zA-Z][-_.~+%a-zA-Z0-9]{2,}" ] }, { "name": "output_table", "label": "BigQuery output table name.", "helpText": "Name of the BigQuery output table name.", "isOptional": true, "regexes": [ "([^:]+:)?[^.]+[.].+" ] } ] }
Puoi scaricare i file di metadati per i modelli forniti da Google dalla directory dei modelli di Dataflow.
Informazioni sulla posizione temporanea e temporanea
Google Cloud CLI fornisce le opzioni --staging-location
e --temp-location
quando esegui un modello flessibile.
Allo stesso modo, l'API REST Dataflow fornisce i campi stagingLocation
e tempLocation
per FlexTemplateRuntimeEnvironment.
Per i modelli flessibili, la posizione temporanea è l'URL di Cloud Storage in cui vengono scritti i file durante la fase temporanea dell'avvio di un modello. Dataflow legge questi file temporanei per creare il grafico del modello. La posizione temporanea è l'URL di Cloud Storage in cui vengono scritti i file temporanei durante la fase di esecuzione.
Aggiorna un job di modello flessibile
La seguente richiesta di esempio mostra come aggiornare un modello di job di flussi di dati utilizzando il metodo projects.locations.flexTemplates.launch. Se vuoi utilizzare gcloud CLI, consulta Aggiornare una pipeline esistente.
Se vuoi aggiornare un modello classico, utilizza invece projects.locations.templates.launch.
Segui i passaggi per creare un job di inserimento di flussi da un modello flessibile. Invia la seguente richiesta POST HTTP con i valori modificati:
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/flexTemplates:launch { "launchParameter": { "update": true "jobName": "JOB_NAME", "parameters": { "input_subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME", "output_table": "PROJECT_ID:DATASET.TABLE_NAME" }, "containerSpecGcsPath": "STORAGE_PATH" }, }
- Sostituisci
PROJECT_ID
con l'ID progetto. - Sostituisci
REGION
con l'regione Dataflow del job che stai aggiornando. - Sostituisci
JOB_NAME
con il nome esatto del job che vuoi aggiornare. - Imposta
parameters
sul tuo elenco di coppie chiave-valore. I parametri elencati sono specifici per questo esempio di modello. Se utilizzi un modello personalizzato, modifica i parametri in base alle esigenze. Se utilizzi il modello di esempio, sostituisci le seguenti variabili.- Sostituisci
SUBSCRIPTION_NAME
con il nome della tua sottoscrizione Pub/Sub. - Sostituisci
DATASET
con il tuo nome con il nome del set di dati BigQuery. - Sostituisci
TABLE_NAME
con il tuo con il nome della tabella BigQuery.
- Sostituisci
- Sostituisci
STORAGE_PATH
con la posizione di Cloud Storage del file del modello. La località deve iniziare congs://
.
- Sostituisci
Utilizza il parametro
environment
per modificare le impostazioni dell'ambiente. Per ulteriori informazioni, consultaFlexTemplateRuntimeEnvironment
.(Facoltativo) Per inviare la richiesta utilizzando curl (Linux, macOS o Cloud Shell), salva la richiesta in un file JSON ed esegui questo comando:
curl -X POST -d "@FILE_PATH" -H "Content-Type: application/json" -H "Authorization: Bearer $(gcloud auth print-access-token)" https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/flexTemplates:launch
Sostituisci FILE_PATH con il percorso del file JSON che contiene il corpo della richiesta.
Utilizza l'interfaccia di monitoraggio di Dataflow per verificare che sia stato creato un nuovo job con lo stesso nome. Questo job ha lo stato Aggiornato.
Limitazioni
Ai job dei modelli flessibili si applicano le seguenti limitazioni:
- Devi utilizzare un'immagine di base fornita da Google per pacchettizzare i container utilizzando Docker. Per un elenco delle immagini applicabili, consulta Immagini di base dei modelli flessibili.
- Il programma che crea la pipeline deve uscire dopo la chiamata di
run
affinché possa essere avviata. waitUntilFinish
(Java) ewait_until_finish
(Python) non sono supportati.
Passaggi successivi
- Per saperne di più sui modelli classici, sui modelli flessibili e sui relativi scenari d'uso, consulta Modelli Dataflow.
- Per informazioni sulla risoluzione dei problemi relativi ai modelli flessibili, consulta Risoluzione dei problemi relativi al timeout dei modelli flessibili.
- Per altre architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.