Esegui un flusso di lavoro utilizzando le librerie client di Cloud
Questa guida rapida mostra come eseguire un flusso di lavoro e visualizzare i risultati dell'esecuzione utilizzando le librerie client di Cloud.
Per ulteriori informazioni sull'installazione delle librerie client di Cloud e sulla configurazione dell'ambiente di sviluppo, consulta la panoramica delle librerie client di Workflows.
Puoi completare i passaggi che seguono 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.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API:
gcloud services enable workflows.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/owner
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/owner
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Workflows API:
gcloud services enable workflows.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
Grant the
roles/owner
IAM role to the service account:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/owner
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service account
-
- (Facoltativo) Per inviare i log a Cloud Logging, concedi il ruolo
roles/logging.logWriter
all'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"
Per scoprire di più sui ruoli e sulle autorizzazioni degli account di servizio, consulta Concedere un'autorizzazione di flusso di lavoro per accedere alle Google Cloud risorse.
- Se necessario, scarica e installa lo strumento di gestione del codice sorgente Git.
Esegui il deployment di un flusso di lavoro di esempio
Dopo aver definito un flusso di lavoro, esegui il deployment per renderlo disponibile per l'esecuzione. Il passaggio di deployment convalida anche che il file di origine possa essere eseguito.
Il seguente flusso di lavoro invia una richiesta a un'API pubblica e poi restituisce la risposta dell'API.
Crea un file di testo con il nome file
myFirstWorkflow.yaml
con i seguenti contenuti:Dopo aver creato il flusso di lavoro, puoi eseguirlo, ma non eseguire il flusso di lavoro:
gcloud workflows deploy myFirstWorkflow \ --source=myFirstWorkflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --location=CLOUD_REGION
Sostituisci
CLOUD_REGION
con una posizione supportata per il flusso di lavoro. La regione predefinita utilizzata negli esempi di codice èus-central1
.
recupera il codice campione
Puoi clonare il codice di esempio da GitHub.
Clona il repository dell'app di esempio sulla tua macchina locale:
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 di esempio di Workflows:
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 di esempio. Ogni app di esempio esegue le seguenti operazioni:
- Configura le librerie client Cloud per i flussi di lavoro.
- Esegue un flusso di lavoro.
- Esegue il polling dell'esecuzione del flusso di lavoro (utilizzando il backoff esponenziale) fino al termine dell'esecuzione.
- Stampa i risultati dell'esecuzione.
Java
Node.js
Python
Esegui il codice campione
Puoi eseguire il codice di esempio ed eseguire il flusso di lavoro. L'esecuzione di un flusso di lavoro esegue la definizione del flusso di lavoro di cui è stato eseguito il deployment associata al flusso di lavoro.
Per eseguire il sample, installa prima le dipendenze:
Java
mvn compile
Node.js
npm install -D tsx
Python
pip3 install -r requirements.txt
Esegui lo script:
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 flusso di lavoro (valore predefinito:us-central1
)WORKFLOW_NAME
: il nome del flusso di lavoro (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 i 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:
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;
Per ulteriori informazioni sul passaggio degli argomenti di runtime, consulta Passare gli 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 myFirstWorkflow
Quando ti viene chiesto se vuoi continuare, digita
y
.
Il flusso di lavoro viene eliminato.