Executar um fluxo de trabalho usando as bibliotecas de cliente do Cloud
Neste guia de início rápido, mostramos como executar um fluxo de trabalho e conferir os resultados da execução usando as bibliotecas de cliente do Cloud.
Para mais informações sobre como instalar as bibliotecas de cliente do Cloud e configurar seu ambiente de desenvolvimento, consulte a Visão geral das bibliotecas de cliente do Workflows.
É possível concluir as etapas a seguir usando a CLI do Google Cloud no seu terminal ou no Cloud Shell.
Antes de começar
As restrições de segurança definidas pela sua organização podem impedir que você conclua as etapas a seguir. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito de Google Cloud .
- 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
-
- (Opcional) Para enviar registros ao Cloud Logging, conceda o papel
roles/logging.logWriter
à conta de serviço.gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter"
Para saber mais sobre papéis e permissões de contas de serviço, consulte Conceder uma permissão de fluxo de trabalho para acessar Google Cloud recursos.
- Se necessário, faça o download e instale a ferramenta de gerenciamento de código-fonte Git.
Implantar um fluxo de trabalho de exemplo
Depois de definir um fluxo de trabalho, implante-o para que ele fique disponível para execução. A etapa de implantação também valida a execução do arquivo de origem.
O fluxo de trabalho a seguir envia uma solicitação para uma API pública e retorna a resposta da API.
Crie um arquivo de texto com o nome de arquivo
myFirstWorkflow.yaml
com o seguinte conteúdo:Depois de criar o fluxo de trabalho, implante-o, mas não execute-o:
gcloud workflows deploy myFirstWorkflow \ --source=myFirstWorkflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --location=CLOUD_REGION
Substitua
CLOUD_REGION
por um local compatível com o fluxo de trabalho. A região padrão usada nos exemplos de código éus-central1
.
Acessar o exemplo de código
Você pode clonar o código de exemplo do GitHub.
Clone o repositório do app de amostra na máquina local:
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Altere para o diretório que contém o código de amostra do 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/
Confira o código de amostra. Cada app de exemplo faz o seguinte:
- Configura as bibliotecas de cliente do Cloud para o Workflows.
- Executa um fluxo de trabalho.
- Pesquisa a execução do fluxo de trabalho (usando a espera exponencial) até que ela seja encerrada.
- Exibe os resultados da execução.
Java
Node.js
Python
Executar o exemplo de código
Você pode executar o código de exemplo e o fluxo de trabalho. Quando um fluxo de trabalho é executado, a definição implantada associada a ele também é.
Para executar a amostra, primeiro instale as dependências:
Java
mvn compile
Node.js
npm install -D tsx
Python
pip3 install -r requirements.txt
Execute o 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
Substitua:
PROJECT_ID
: o nome do Google Cloud projetoCLOUD_REGION
: o local do fluxo de trabalho (padrão:us-central1
)WORKFLOW_NAME
: o nome do fluxo de trabalho (padrão:myFirstWorkflow
)
O resultado será assim:
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)"]
Transmitir dados em uma solicitação de execução
Dependendo da linguagem da biblioteca de cliente, também é possível transmitir um argumento de ambiente de execução em uma solicitação de execução. Exemplo:
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;
Para mais informações sobre como transmitir argumentos de ambiente de execução, consulte Transmitir argumentos de ambiente de execução em uma solicitação de execução.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.
Exclua o fluxo de trabalho que você criou:
gcloud workflows delete myFirstWorkflow
Quando for perguntado se você quer continuar, digite
y
:
O fluxo de trabalho será excluído.