Execute um fluxo de trabalho através das bibliotecas cliente da Google Cloud
Este início rápido mostra como executar um fluxo de trabalho e ver os resultados da execução através das bibliotecas de cliente da nuvem.
Para mais informações sobre a instalação das bibliotecas de cliente da nuvem e a configuração do seu ambiente de desenvolvimento, consulte a vista geral das bibliotecas de cliente do Workflows.
Pode concluir os seguintes passos através da CLI 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 a conclusão dos seguintes passos. Para informações de resolução de problemas, consulte o artigo Desenvolva aplicações num ambiente Google Cloud restrito.
- 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.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
-
-
Verify 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.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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.
-
-
Verify 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 registos para o Cloud Logging, conceda a função
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 as funções e as autorizações da conta de serviço, consulte o artigo Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos.
- Se necessário, transfira e instale a ferramenta de gestão de código-fonte Git.
Crie um ficheiro de texto com o nome de ficheiro
myFirstWorkflow.yaml
com o seguinte conteúdo:Depois de criar o fluxo de trabalho, pode implementá-lo, mas não execute o fluxo de trabalho:
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 suportado para o fluxo de trabalho. A região predefinida usada nos exemplos de código éus-central1
.Clone o repositório da app de exemplo para a sua máquina local:
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Ir
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Altere para o diretório que contém o código de exemplo do Workflows:
C#
cd dotnet-docs-samples/workflows/api/Workflow.Samples/
Ir
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/
Veja o exemplo de código. Cada app de exemplo faz o seguinte:
- Configura as bibliotecas de cliente da Google Cloud para workflows.
- Executa um fluxo de trabalho.
- Sonda a execução do fluxo de trabalho (usando a retirada exponencial) até que a execução termine.
- Imprime os resultados da execução.
C#
Ir
Java
Node.js
Python
Para executar o exemplo, instale primeiro as dependências:
C#
dotnet restore
Ir
go mod download
Java
mvn compile
Node.js
npm install -D tsx
Python
pip3 install -r requirements.txt
Execute o script:
C#
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME dotnet run
Ir
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
Substitua o seguinte:
PROJECT_ID
: o nome do seu Google Cloud projetoCLOUD_REGION
: a localização do seu fluxo de trabalho (predefinição:us-central1
)WORKFLOW_NAME
: o nome do fluxo de trabalho (predefinição:myFirstWorkflow
)
O resultado é semelhante ao seguinte:
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)"]
Elimine o fluxo de trabalho que criou:
gcloud workflows delete myFirstWorkflow
Quando lhe for perguntado se quer continuar, introduza
y
.
Implemente um fluxo de trabalho de amostra
Depois de definir um fluxo de trabalho, implementa-o para o disponibilizar para execução. O passo de implementação também valida se o ficheiro de origem pode ser executado.
O fluxo de trabalho seguinte envia um pedido a uma API pública e, em seguida, devolve a resposta da API.
Obtenha o exemplo de código
Pode clonar o código de exemplo do GitHub.
Execute o exemplo de código
Pode executar o exemplo de código e executar o seu fluxo de trabalho. A execução de um fluxo de trabalho executa a definição do fluxo de trabalho implementada associada ao fluxo de trabalho.
Transmita dados num pedido de execução
Consoante a linguagem da biblioteca cliente, também pode transmitir um argumento de tempo de execução num pedido de execução. Por exemplo:
C#
Ir
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
Para mais informações sobre a transmissão de argumentos de tempo de execução, consulte o artigo Transmita argumentos de tempo de execução num pedido de execução.
Limpar
Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.
O fluxo de trabalho é eliminado.