Esegui un workflow utilizzando le librerie client di Cloud
Questa guida rapida mostra come eseguire un workflow e visualizzare i risultati dell'esecuzione utilizzando le librerie client Cloud.
Per saperne di più sull'installazione delle librerie client Cloud e sulla configurazione dell'ambiente di sviluppo, consulta la panoramica delle librerie client Workflows.
Puoi completare i seguenti passaggi utilizzando Google Cloud CLI nel terminale o in Cloud Shell.
Prima di iniziare
I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente Google Cloud vincolato.
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Abilita l'API Workflows:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable workflows.googleapis.com
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Creare un progetto Google Cloud :
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il progetto Google Cloud che stai creando. -
Seleziona il progetto Google Cloud che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del progetto Google Cloud .
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .
Abilita l'API Workflows:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable workflows.googleapis.com
-
Configura l'autenticazione:
-
Assicurati di disporre del ruolo IAM Creazione account di servizio
(
roles/iam.serviceAccountCreator) e del ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin). Scopri come concedere i ruoli. -
Crea l'account di servizio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sostituisci
SERVICE_ACCOUNT_NAMEcon un nome per il account di servizio. -
Concedi il ruolo IAM
roles/logging.logWriteral account di servizio:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/logging.logWriter
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME: il nome del account di servizioPROJECT_ID: l'ID progetto in cui hai creato il account di servizio
-
Assicurati di disporre del ruolo IAM Creazione account di servizio
(
- Se necessario, scarica e installa lo strumento di gestione del codice sorgente Git.
Per scoprire di più sui ruoli e sulle autorizzazioni dei account di servizio, consulta Concedi l'autorizzazione dei workflow per l'accesso alle Google Cloud risorse.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare questa guida rapida, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
-
Utente Service Account (
roles/iam.serviceAccountUser) -
Workflows Admin (
roles/workflows.admin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Esegui il deployment di un flusso di lavoro di esempio
Dopo aver definito un workflow, esegui il deployment per renderlo disponibile per l'esecuzione. Il passaggio di deployment verifica anche che il file di origine possa essere eseguito.
Il seguente workflow invia una richiesta a un'API pubblica e poi restituisce la risposta dell'API.
Crea un file di testo con il nome file
myFirstWorkflow.yamlcon il seguente contenuto:Dopo aver creato il workflow, puoi eseguirne il deployment, ma non eseguirlo:
gcloud workflows deploy myFirstWorkflow \ --source=myFirstWorkflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --location=CLOUD_REGION
Sostituisci
CLOUD_REGIONcon una posizione supportata per il workflow. La regione predefinita utilizzata negli esempi di codice èus-central1.
recupera il codice campione
Puoi clonare il codice campione da GitHub.
Clona il repository dell'app di esempio sulla tua macchina locale:
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice campione di Workflows:
C#
cd dotnet-docs-samples/workflows/api/Workflow.Samples/
Go
cd golang-samples/workflows/executions/
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Dai un'occhiata al codice campione. Ogni app di esempio esegue le seguenti operazioni:
- Configura le librerie client Cloud per Workflows.
- Esegue un workflow.
- Esegue il polling dell'esecuzione del flusso di lavoro (utilizzando il backoff esponenziale) finché non termina.
- Stampa i risultati dell'esecuzione.
C#
Go
Java
Node.js
Python
Esegui il codice campione
Puoi eseguire il codice campione ed eseguire il flusso di lavoro. L'esecuzione di un workflow esegue la definizione del workflow di cui è stato eseguito il deployment associata al workflow.
Per eseguire l'esempio, installa prima le dipendenze:
C#
dotnet restore
Go
go mod download
Java
mvn compile
Node.js
npm install -D tsx
Python
pip3 install -r requirements.txt
Esegui lo script:
C#
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME dotnet run
Go
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME go run .
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js
npx tsx index.js
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Sostituisci quanto segue:
PROJECT_ID: il nome del tuo Google Cloud progettoCLOUD_REGION: la posizione del workflow (valore predefinito:us-central1)WORKFLOW_NAME: il nome del workflow (valore predefinito:myFirstWorkflow)
L'output è simile al seguente:
Execution finished with state: SUCCEEDED Execution results: ["Thursday","Thursday Night Football","Thursday (band)","Thursday Island","Thursday (album)","Thursday Next","Thursday at the Square","Thursday's Child (David Bowie song)","Thursday Afternoon","Thursday (film)"]
Passare dati in una richiesta di esecuzione
A seconda del linguaggio della libreria client, puoi anche passare un argomento di runtime in una richiesta di esecuzione. Ad esempio:
C#
Go
Java
// Creates the execution object
CreateExecutionRequest request =
CreateExecutionRequest.newBuilder()
.setParent(parent.toString())
.setExecution(Execution.newBuilder().setArgument("{\"searchTerm\":\"Friday\"}").build())
.build();
Node.js
// Execute workflow
try {
const createExecutionRes = await client.createExecution({
parent: client.workflowPath(projectId, location, workflow),
execution: {
argument: JSON.stringify({"searchTerm": "Friday"})
}
});
const executionName = createExecutionRes[0].name;
Python
Per saperne di più sul passaggio di argomenti di runtime, consulta Passaggio di argomenti di runtime in una richiesta di esecuzione.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.
Elimina il flusso di lavoro creato:
gcloud workflows delete myFirstWorkflowQuando ti viene chiesto se vuoi continuare, digita
y.
Il workflow viene eliminato.