Gestisci le impostazioni dei job con Dataflow Config Store

Utilizza Dataflow Config Store per configurare e gestire le impostazioni dei job in tutte le risorse di Resource Manager, tra cui organizzazioni, cartelle e progetti Google Cloud .

Con Dataflow Config Store, puoi impostare policy di configurazione su larga scala senza modificare il codice delle singole pipeline, i modelli di job o gli script di deployment. Ad esempio, puoi impostare un tipo di macchina di avvio predefinito per un'intera organizzazione o cartella per mitigare le carenze di tipi di macchine Compute Engine, facilitare le migrazioni delle macchine o standardizzare il dimensionamento delle risorse.

Impostazioni supportate e limitazioni

Dataflow Config Store supporta le seguenti impostazioni:

  • default_launcher_machine_type: specifica il tipo di macchina Compute Engine predefinito (ad esempio e2-standard-2 o n2-standard-2) utilizzato dalla VM di avvio del template per i job con template flessibile.

Dataflow Config Store presenta le seguenti limitazioni:

  • L'impostazione default_launcher_machine_type si applica solo alla VM di avvio del template per i job con template flessibile. Non influisce sulle VM worker o sui job dei modelli classici. Per configurare i tipi di macchine delle VM worker, consulta Configura le VM worker Dataflow.
  • Quando scegli come target un progetto, devi specificare il numero di progetto numerico. Gli ID progetto non sono supportati.
  • Le impostazioni di Config Store sono regionali e si applicano solo ai job in esecuzione nella stessa regione Dataflow.

Impostazione della precedenza di risoluzione

All'avvio di un job Dataflow, le impostazioni vengono risolte utilizzando un modello di precedenza gerarchico in cui la configurazione più specifica ha la precedenza:

  1. Configurazione a livello di job: impostazioni passate esplicitamente durante l'invio del job (ad esempio tramite opzioni della pipeline o parametri di esecuzione).
  2. Impostazione a livello di progetto: un'impostazione di Config Store configurata direttamente nel progetto in cui viene eseguito il job.
  3. Impostazione a livello di cartella o organizzazione: un'impostazione di Config Store configurata sulle risorse predecessore nella gerarchia di Resource Manager. La cartella predecessore più vicina al progetto ha la precedenza sulle cartelle di livello superiore e sull'organizzazione.
  4. Valore predefinito a livello di servizio Dataflow: valori predefiniti del servizio integrato utilizzati quando non viene definito alcun override a livello di gerarchia di job o Resource Manager.

Prima di iniziare

Prima di gestire o ispezionare le impostazioni di Config Store, assicurati di disporre delle autorizzazioni Identity and Access Management (IAM) richieste per il progetto, la cartella o l'organizzazione di destinazione.

Autorizzazioni obbligatorie

Operazione Autorizzazione obbligatoria
Crea o aggiorna un'impostazione dataflow.configStoreSettings.create
Visualizza un'impostazione configurata esplicitamente dataflow.configStoreSettings.get
Elenca le impostazioni di una risorsa dataflow.configStoreSettings.list
Risolvi l'impostazione effettiva dataflow.configStoreSettings.resolve
Elimina un override delle impostazioni dataflow.configStoreSettings.delete

Ruoli predefiniti

Puoi concedere i seguenti ruoli predefiniti nel progetto, nella cartella o nell'organizzazione di destinazione oppure creare ruoli personalizzati con le autorizzazioni richieste:

  • Dataflow Admin (roles/dataflow.admin): include le autorizzazioni per creare, recuperare, elencare, risolvere ed eliminare le impostazioni di Config Store (dataflow.configStoreSettings.*).
  • Sviluppatore Dataflow (roles/dataflow.developer): include autorizzazioni di sola lettura per recuperare, elencare e risolvere le impostazioni di Config Store.
  • Visualizzatore Dataflow (roles/dataflow.viewer): include autorizzazioni di sola lettura per ottenere, elencare e risolvere le impostazioni di Config Store.

Per saperne di più, consulta Controllo dell'accesso con IAM.

Gestisci le impostazioni utilizzando gcloud CLI

Puoi gestire le impostazioni di Config Store utilizzando gcloud CLI.

Specifica l'ambito della risorsa di destinazione

Quando utilizzi i comandi gcloud dataflow config-store-settings, specifica l'ambito della risorsa di destinazione utilizzando uno dei seguenti flag che si escludono a vicenda. Non combinarli nello stesso comando.

  • Progetto: --project=PROJECT_NUMBER (utilizza il numero di progetto Google Cloud numerico, non l'ID progetto)
  • Cartella: --folder=FOLDER_ID (l'ID numerico della tua cartella)
  • Organizzazione: --organization=ORGANIZATION_ID (l'ID organizzazione numerico)

Crea o aggiorna un'impostazione di Config Store

Per creare un'impostazione in un progetto, una cartella o un'organizzazione, esegui il comando gcloud dataflow config-store-settings create. Se l'impostazione esiste già nella risorsa di destinazione, l'esecuzione di nuovo del comando create con un --value diverso sovrascrive il valore dell'impostazione esistente:

gcloud dataflow config-store-settings create SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --value="SETTING_VALUE"

Sostituisci quanto segue:

  • SETTING_ID: l'ID dell'impostazione supportata da configurare, ad esempio default_launcher_machine_type.
  • PROJECT_NUMBER: il tuo numero di progetto Google Cloudnumerico. Per scegliere come target una cartella o un'organizzazione anziché un progetto, sostituisci --project=PROJECT_NUMBER con --folder=FOLDER_ID o --organization=ORGANIZATION_ID.
  • REGION: la regione Dataflow in cui si applica l'impostazione, ad esempio us-central1.
  • SETTING_VALUE: il valore dell'impostazione, ad esempio e2-standard-2 per default_launcher_machine_type.

Recupera un'impostazione di Config Store

Per recuperare un'impostazione configurata direttamente su una risorsa, esegui il comando gcloud dataflow config-store-settings describe:

gcloud dataflow config-store-settings describe SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Sostituisci quanto segue:

  • SETTING_ID: l'ID dell'impostazione supportata da recuperare, ad esempio default_launcher_machine_type.
  • PROJECT_NUMBER: il tuo numero di progetto Google Cloudnumerico. Per scegliere come target una cartella o un'organizzazione anziché un progetto, sostituisci --project=PROJECT_NUMBER con --folder=FOLDER_ID o --organization=ORGANIZATION_ID.
  • REGION: la regione Dataflow dell'impostazione, ad esempio us-central1.

Impostazioni di List Config Store

Per elencare tutte le impostazioni di Config Store configurate direttamente su una risorsa, esegui il comando gcloud dataflow config-store-settings list:

gcloud dataflow config-store-settings list \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --page-size=10

Sostituisci quanto segue:

  • PROJECT_NUMBER: il tuo numero di progetto Google Cloudnumerico. Per scegliere come target una cartella o un'organizzazione anziché un progetto, sostituisci --project=PROJECT_NUMBER con --folder=FOLDER_ID o --organization=ORGANIZATION_ID.
  • REGION: la regione Dataflow da cui elencare le impostazioni, ad esempio us-central1.

Risolvi l'impostazione effettiva

Per valutare quale valore di impostazione si applica ai job avviati all'interno di una gerarchia di risorse, esegui il comando gcloud dataflow config-store-settings resolve. Questo comando funge da dry run per confermare il valore di impostazione utilizzato da un job:

gcloud dataflow config-store-settings resolve SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Sostituisci quanto segue:

  • SETTING_ID: l'ID dell'impostazione supportata da risolvere, ad esempio default_launcher_machine_type.
  • PROJECT_NUMBER: il tuo numero di progetto Google Cloudnumerico. Per scegliere come target una cartella o un'organizzazione anziché un progetto, sostituisci --project=PROJECT_NUMBER con --folder=FOLDER_ID o --organization=ORGANIZATION_ID.
  • REGION: la regione Dataflow in cui viene eseguito il job, ad esempio us-central1.

L'output restituisce il valore setting effettivo, insieme a tutti i valori choices candidati nella gerarchia:

setting:
  name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
choices:
- name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
- name: organizations/987654321098/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: n1-standard-1

In questo esempio, sia il progetto che l'organizzazione definiscono un valore e l'impostazione più specifica a livello di progetto (e2-standard-2) ha la precedenza.

Elimina un'impostazione di Config Store

Per rimuovere un override delle impostazioni da una risorsa, esegui il comando gcloud dataflow config-store-settings delete:

gcloud dataflow config-store-settings delete SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Sostituisci quanto segue:

  • SETTING_ID: l'ID dell'impostazione supportata da eliminare, ad esempio default_launcher_machine_type.
  • PROJECT_NUMBER: il tuo numero di progetto Google Cloudnumerico. Per scegliere come target una cartella o un'organizzazione anziché un progetto, sostituisci --project=PROJECT_NUMBER con --folder=FOLDER_ID o --organization=ORGANIZATION_ID.
  • REGION: la regione Dataflow dell'impostazione, ad esempio us-central1.

Quando elimini un'impostazione, Dataflow torna a qualsiasi impostazione configurata nelle cartelle o nelle organizzazioni principali o ai valori predefiniti a livello di servizio.

Risolvi gli errori di Config Store

L'elenco seguente descrive come risolvere gli errori comuni di Config Store:

  • INVALID_ARGUMENT (HTTP 400): il valore dell'impostazione non è supportato (ad esempio un tipo di macchina Compute Engine non valido), --project specifica un ID progetto anziché un numero di progetto numerico o --location non è una regione Dataflow valida.
  • NOT_FOUND (HTTP 404): l'impostazione non è stata creata direttamente sulla risorsa specificata. Esegui gcloud dataflow config-store-settings list per visualizzare le impostazioni della risorsa o resolve per controllare le impostazioni ereditate.
  • PERMISSION_DENIED (HTTP 403): il chiamante non dispone delle autorizzazioni IAM richieste nell'ambito del progetto, della cartella o dell'organizzazione di destinazione.
  • ABORTED (HTTP 409): un aggiornamento simultaneo ha modificato l'impostazione durante la tua richiesta. Riprova a eseguire il comando.
  • Il job non va a buon fine dopo la creazione di un'impostazione: la creazione di un'impostazione di Config Store convalida il formato dell'impostazione, ma non controlla la disponibilità risorsa di regione. Un job può comunque non riuscire al momento del lancio se la risorsa configurata non è disponibile. Ad esempio, un tipo di macchina potrebbe non essere supportato nella regione di destinazione oppure la zona potrebbe avere una carenza di risorse. Per risolvere il problema, aggiorna l'impostazione in modo da utilizzare un tipo di macchina disponibile. Per ulteriori informazioni, consulta Regioni e zone disponibili ed Esaurimento delle risorse VM di Launcher.

Passaggi successivi