Com o Workflows, é possível orquestrar e automatizar processos de várias etapas em serviços do Google Cloud e APIs externas. É possível implantar, atualizar e administrar definições de fluxo de trabalho usando o console do Google Cloud , a Google Cloud CLI no terminal local ou no Cloud Shell ou a API Workflows.
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 .
Console
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Workflows API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
gcloud
-
Instale a CLI do Google Cloud.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um projeto do Google Cloud .
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: para selecionar um projeto, não é necessário ter um papel específico do IAM. É possível selecionar qualquer projeto em que você tenha um papel.
-
Criar um projeto: para criar um projeto, é preciso ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative a API Workflows, se ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable workflows.googleapis.com
REST
Para gerenciar fluxos de trabalho usando a API Workflows, recomendamos
que você use as bibliotecas de cliente
fornecidas pelo Google para chamar o
serviço workflows.googleapis.com. Para mais informações, consulte a
API Workflows.
Criar uma conta de serviço
Uma conta de serviço representa a identidade de um fluxo de trabalho e determina as permissões que ele tem e os recursos do Google Cloud que ele pode acessar. Crie uma conta de serviço, se ainda não tiver uma. Em seguida, conceda a ela os papéis necessários para acessar os recursos de destino do Google Cloud e criar registros.
Se você não especificar uma conta de serviço durante a criação do fluxo de trabalho, ele usará a conta de serviço padrão do Compute Engine como identidade. Para mais informações, consulte Conceder a um fluxo de trabalho permissão para acessar recursos doGoogle Cloud .
Para criar um fluxo de trabalho e anexar uma conta de serviço, você precisa de permissões para criar o fluxo de trabalho (por exemplo, o papel Editor de fluxos de trabalho) e agir como essa conta de serviço (por exemplo, o papel Usuário da conta de serviço). Você também precisa de permissão para atuar como a conta de serviço associada ao atualizar o código-fonte ou a conta de serviço de um fluxo de trabalho. Para mais informações, consulte Permissões de contas de serviço.
Console
No console do Google Cloud , acesse a página Contas de serviço.
Selecione um projeto e clique em Criar conta de serviço.
No campo Nome da conta de serviço, insira um nome.
O nome precisa ter entre 6 e 30 caracteres e pode conter caracteres alfanuméricos minúsculos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.
Clique em Criar e continuar.
Clique em Selecionar papel.
Selecione os papéis a seguir, clicando em Adicionar outro papel conforme necessário:
- Selecione os papéis que o fluxo de trabalho precisa para acessar os recursos de destino doGoogle Cloud . Por exemplo, se o fluxo de trabalho invocar outro fluxo de trabalho, selecione Workflows > Invocador do Workflows.
- Para enviar registros para o Cloud Logging, selecione Logging > Gravador de registros.
Clique em Concluído para terminar a criação da conta de serviço.
gcloud
Crie a conta de serviço:
gcloud iam service-accounts create SERVICE_ACCOUNT
Conceda permissões à conta de serviço atribuindo os papéis que o fluxo de trabalho precisa para acessar os recursos de destino do Google Cloud :
Por exemplo, se o fluxo de trabalho invocar outro fluxo de trabalho, atribua o papel
roles/workflows.invoker:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID." \ --role "roles/workflows.invoker"
Para enviar registros ao Cloud Logging, atribua o papel
roles/logging.logWriter:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID." \ --role "roles/logging.logWriter"
Substitua:
SERVICE_ACCOUNT: o nome da conta de serviço. Ele precisa ter entre 6 e 30 caracteres e pode conter letras minúsculas, caracteres alfanuméricos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.PROJECT_ID: o ID do projeto Google Cloud .
REST
Use o método
serviceAccounts.create
para criar uma conta de serviço. Para mais informações, consulte
Criar contas de serviço.
É possível conceder vários papéis de maneira programática modificando e definindo a
política de permissão de um recurso usando o
método
setIamPolicy. Para mais informações, consulte
Conceder ou revogar vários papéis de forma programática.
Criar um fluxo de trabalho
Uma definição de fluxo de trabalho é composta por uma série de etapas descritas usando a sintaxe de fluxos de trabalho, que pode ser escrita em formato YAML ou JSON. Depois de definir um fluxo de trabalho, implante-o para disponibilizá-lo para execução. A etapa de implantação também valida a execução do arquivo de origem. Isso falhará se o arquivo de origem não contiver uma definição de fluxo de trabalho válida.
A edição de arquivos YAML pode causar erros. É possível criar seu fluxo de trabalho usando um ambiente de desenvolvimento integrado ou editor de código-fonte de preferência e configurando o preenchimento automático e a validação de sintaxe para reduzir erros.
Console
No console Google Cloud , acesse a página Fluxos de trabalho.
Clique em Criar.
Insira um nome para o fluxo de trabalho, como
myFirstWorkflow. Esse nome pode conter letras, números, sublinhados e hífens. É preciso começar com uma letra e terminar com um número ou uma letraSe quiser, adicione uma descrição do fluxo de trabalho.
Na lista Região, selecione um local apropriado para implantar o fluxo de trabalho. Por exemplo, us-central1.
Na lista Conta de serviço, selecione uma conta de serviço que seu fluxo de trabalho usará para acessar outros serviços do Google Cloud . Para mais informações, consulte este documento: Criar uma conta de serviço.
Você ainda tem as opções a seguir:
Especifique o nível de registro de chamadas que você quer aplicar à definição do fluxo de trabalho. Na lista Nível de registro de chamadas, selecione uma das seguintes opções:
- Não especificado: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.
- Somente erros: registra todas as exceções identificadas; ou quando uma chamada é interrompida devido a uma exceção.
- Todas as chamadas: registre todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
- Sem registros: nenhum registro de chamadas.
Especifique o nível de histórico de execução que você quer aplicar à definição do fluxo de trabalho. Na lista Histórico de execução, selecione uma das seguintes opções:
- Básico: ativa o histórico de execução básico. Esse é o padrão.
- Detalhado: ative o histórico de execução detalhado, incluindo todos os valores de variáveis no escopo e o número esperado de iterações.
Especifique uma chave do Cloud Key Management Service que o fluxo de trabalho precisa usar para a criptografia de dados: selecione Chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês). Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.
Especifique uma variável de ambiente que seja acessível pelo fluxo de trabalho no ambiente de execução. Para mais informações, consulte Usar variáveis de ambiente.
Adicione um rótulo: os rótulos são pares de chave-valor que ajudam a organizar as instâncias doGoogle Cloud . Para mais informações, consulte O que são rótulos? Os rótulos de fluxo de trabalho são herdados pelas execuções do fluxo de trabalho. Para ver os rótulos de execução, use o método
workflows.executions.listpara listar e filtrar execuções de fluxo de trabalho.Programe seu fluxo de trabalho: selecione Adicionar novo gatilho > Cloud Scheduler. Para mais informações, consulte Programar um fluxo de trabalho usando o Cloud Scheduler.
Acione seu fluxo de trabalho em um evento ou uma mensagem do Pub/Sub: selecione Adicionar novo gatilho > Eventarc. Para mais informações, consulte Acionar um fluxo de trabalho com eventos ou mensagens do Pub/Sub.
Clique em Próxima.
No editor de fluxo de trabalho, insira a definição para seu fluxo de trabalho. Veja um exemplo de fluxo de trabalho.
Clique em Implantar.
gcloud
Verifique se o código-fonte do fluxo de trabalho está salvo em um arquivo YAML ou JSON, como
MY_WORKFLOW.YAMLouMY_WORKFLOW.JSON. Veja um exemplo de fluxo de trabalho.Abra um terminal.
É possível criar e implantar um fluxo de trabalho usando o comando
gcloud workflows deploy:gcloud workflows deploy WORKFLOW_NAME \ --location=LOCATION \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --execution-history-level="EXECUTION_HISTORY_LEVEL" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID. \ --source=YAML_OR_JSON_SOURCE_FILE
Substitua:
WORKFLOW_NAME: o nome do fluxo de trabalho, por exemplo,myFirstWorkflow. O nome pode conter letras, números, sublinhados e hifens. Ele precisa começar com uma letra e terminar com um número ou uma letra.LOCATION: a região em que o fluxo de trabalho será implantado, por exemplo,us-central1.CALL_LOGGING_LEVEL: opcional. Nível de registro de chamadas a ser aplicado durante a execução. Pode ser um dos seguintes:none: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.log-errors-only: registra todas as exceções identificadas. ou quando uma chamada é interrompida devido a uma exceção.log-all-calls: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os resultados delas.log-none: nenhum registro de chamadas.
DESCRIPTION: opcional. Uma descrição do fluxo de trabalho.EXECUTION_HISTORY_LEVEL: opcional. Nível de histórico de execução a ser aplicado durante a execução. Pode ser um dos seguintes:none: nenhum nível de histórico de execução foi especificado. Esse é o padrão. Se um nível de histórico de execução não for especificado para uma execução, ele será determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a configuração aplicada no nível da execução vai substituir a configuração aplicada no nível do fluxo de trabalho para essa execução.execution-history-basic: ativa o histórico de execução básico.execution-history-detailed: ativa o histórico de execução detalhado, incluindo todos os valores de variáveis no escopo e o número esperado de iterações.
LABEL_KEY=LABEL_VALUE: opcional. Lista de pares de chave-valor de rótulo que ajudam a organizar as instâncias doGoogle Cloud , por exemplo,name=wrench. Para mais informações, consulte O que são rótulos? Os rótulos de fluxo de trabalho são herdados pelas execuções do fluxo de trabalho. Para ver os rótulos de execução, use o métodoworkflows.executions.listpara listar e filtrar execuções de fluxo de trabalho.ENV_KEY=ENV_VALUE: opcional. Lista de pares de chave-valor variável de ambiente, por exemplo,MONTH=January. Para mais informações, consulte Usar variáveis de ambiente.ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho precisa usar para criptografia de dados no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.SERVICE_ACCOUNT@PROJECT_ID.: opcional. A conta de serviço que seu fluxo de trabalho usará para acessar outros serviços doGoogle Cloud . Para mais informações, consulte este documento: Criar uma conta de serviço.YAML_OR_JSON_SOURCE_FILE: o arquivo de origem da definição do fluxo de trabalho. Por exemplo,myFirstWorkflow.yaml.
REST
Para criar um novo fluxo de trabalho com um nome especificado, use o método projects.locations.workflows.create e o parâmetro de consulta workflowId para especificar um ID para o fluxo de trabalho.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
WORKFLOW_NAME: o nome do fluxo de trabalho, por exemplo,myFirstWorkflow. O nome pode conter letras, números, sublinhados e hifens. Ele precisa começar com uma letra e terminar com um número ou uma letra.DESCRIPTION: opcional. Uma descrição do fluxo de trabalho. Não pode ter mais de 1.000 caracteres Unicode.LABEL_KEYeLABEL_VALUE: opcional. Um mapa de pares de chave e valor de rótulo que ajudam a organizar suas instâncias do Google Cloud . Por exemplo:{"name": "wrench", "mass": "1kg", "count": "3"}Para mais informações, consulte O que são rótulos? Os rótulos de fluxo de trabalho são herdados pelas execuções do fluxo de trabalho. Para ver os rótulos de execução, use o métodoworkflows.executions.listpara listar e filtrar execuções de fluxo de trabalho.SERVICE_ACCOUNT@PROJECT_ID.: opcional. A conta de serviço que seu fluxo de trabalho usará para acessar outros serviços do Google Cloud . O ID do projeto é o ID do projeto do Google Cloud . Para mais informações, consulte este documento: Criar uma conta de serviço.ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho precisa usar para criptografia de dados no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.CALL_LOGGING_LEVEL: opcional. O nível de registro de chamadas a ser aplicado durante a execução. O padrão é que nenhum nível de registro seja especificado e o nível de registro do fluxo de trabalho seja aplicado. Para mais informações, consulte Enviar registros para o Logging. Uma das seguintes opções:CALL_LOG_LEVEL_UNSPECIFIED: nenhum nível de registro foi especificado, e o nível de registro do fluxo de trabalho é aplicado. Esse é o padrão. Caso contrário, o nível de registro de execução será aplicado e terá precedência sobre o nível de registro do fluxo de trabalho.LOG_ERRORS_ONLY: registra todas as exceções identificadas ou quando uma chamada é interrompida devido a uma exceção.LOG_ALL_CALLS: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os resultados delas.LOG_NONE: nenhum registro de chamadas.
EXECUTION_HISTORY_LEVEL: opcional. O nível do histórico de execução a ser aplicado durante a execução. Para mais informações, consulte Ver o histórico das etapas de execução. Uma das seguintes opções:EXECUTION_HISTORY_LEVEL_UNSPECIFIED: nenhum nível de histórico de execução foi especificado. Esse é o padrão. Se um nível de histórico de execução não for especificado para uma execução, ele será determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a configuração aplicada no nível de execução vai substituir a configuração aplicada no nível do fluxo de trabalho para essa execução.EXECUTION_HISTORY_BASIC: ativa o histórico de execução básico.EXECUTION_HISTORY_ADVANCED: ativa o histórico de execução detalhado, incluindo todos os valores de variáveis no escopo e o número esperado de iterações.
ENV_KEYeENV_VALUE: opcional. Um mapa de pares de chave-valor de variável de ambiente, por exemplo,{ "month": "January", "day": "Monday"}. Para mais informações, consulte Usar variáveis de ambiente.SOURCE_CODE: a definição do fluxo de trabalho. É preciso usar escape em novas linhas no YAML. Exemplo:main:\n params:\n - input\n steps:\n - returnOutput:\n return: HelloÉ necessário usar caracteres de escape para aspas em JSON. Por exemplo:
{\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}LOCATION: a região em que o fluxo de trabalho será implantado, por exemplo,us-central1.
Corpo JSON da solicitação:
{
"name": "WORKFLOW_NAME",
"description": "DESCRIPTION",
"labels": {"LABEL_KEY":"LABEL_VALUE"},
"serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.",
"cryptoKeyName": "ENCRYPT_KEY",
"callLogLevel": "CALL_LOGGING_LEVEL",
"executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
"userEnvVars": {"ENV_KEY":"ENV_VALUE"},
"sourceContents": "SOURCE_CODE"
}
Para enviar a solicitação, expanda uma destas opções:
Se houver êxito, o corpo da resposta conterá uma instância de Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
"createTime": "2023-12-05T14:06:06.338390918Z",
"target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"verb": "create",
"apiVersion": "v1"
},
"done": false
}
Se o valor de "done" for false, a operação ainda estará em andamento.
Listar fluxos de trabalho
É possível listar fluxos de trabalho ou usar filtros para recuperar um fluxo de trabalho específico.
Console
No console Google Cloud , acesse a página Fluxos de trabalho.
Esta página lista seus fluxos de trabalho em todos os locais e inclui detalhes como nomes, regiões, revisões mais recentes e muito mais.
Para filtrar os fluxos de trabalho:
- Clique em Filtrar ou no campo Filtrar fluxos de trabalho.
- Na lista Propriedades, selecione uma opção para filtrar os fluxos de trabalho.
É possível selecionar uma única propriedade ou usar o operador lógico
ORpara adicionar mais propriedades.Para classificar os fluxos de trabalho, ao lado de qualquer cabeçalho de coluna com suporte, clique em Ordenar.
gcloud
Liste os fluxos de trabalho usando o
comando gcloud workflows list:
gcloud workflows list --location=LOCATION
Substitua LOCATION pelo ID ou identificador totalmente qualificado do local do fluxo de trabalho.
Esse comando lista os fluxos de trabalho no local especificado e inclui
detalhes como NAME, STATE, REVISION_ID e
UPDATE_TIME de um fluxo de trabalho.
REST
Para listar fluxos de trabalho em um determinado projeto e local, use o método projects.locations.workflows.list.
Como alternativa, para recuperar os detalhes de um único fluxo de trabalho, use o método projects.locations.workflows.get.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: o ID do projeto do Google Cloud.LOCATION: a região em que os fluxos de trabalho são implantados, por exemplo,us-central1.
Para enviar a solicitação, expanda uma destas opções:
Se bem-sucedido, o corpo da resposta conterá instâncias de Workflow e a resposta será semelhante a esta:
{
"workflows": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"state": "ACTIVE",
"revisionId": "000001-0ce",
"createTime": "2023-12-08T13:56:59.306770745Z",
"updateTime": "2023-12-08T13:56:59.547021939Z",
"revisionCreateTime": "2023-12-08T13:56:59.340161044Z",
"serviceAccount": "projects/PROJECT_ID/serviceAccounts/PROJECT_NUMBER-compute@",
"sourceContents": "main:\n params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
},
{
object (Workflow)
}
],
"nextPageToken": string,
"unreachable": [
string
]
}
Atualizar um fluxo de trabalho
É possível atualizar o código-fonte, as definições de configuração ou ambos de um fluxo de trabalho atual. No entanto, não é possível mudar o nome ou o local de um fluxo de trabalho.
A atualização de um fluxo de trabalho não afeta as execuções em andamento. Somente as execuções subsequentes do fluxo de trabalho usam a configuração atualizada.
Para atualizar o código-fonte ou a conta de serviço de um fluxo de trabalho, você precisa da permissão iam.serviceAccounts.actAs, que está incluída em papéis como Usuário da conta de serviço (roles/iam.serviceAccountUser). Dependendo da atualização, você precisa dessa permissão na seguinte conta de serviço:
- Atualizar apenas o código-fonte do fluxo de trabalho (sem atualizar a conta de serviço): é necessário ter a permissão
iam.serviceAccounts.actAsna conta de serviço associada ao fluxo de trabalho. - Atualizar a conta de serviço ou o código-fonte e a conta de serviço: você precisa da permissão
iam.serviceAccounts.actAsna nova conta de serviço que está associando ao fluxo de trabalho.
Para mais informações, consulte Permissões de contas de serviço.
Sempre que você atualiza o código-fonte, a conta de serviço, a chave de criptografia, as variáveis de ambiente, o nível de registro de chamadas ou o nível do histórico de execução de um fluxo de trabalho, uma nova revisão é criada e o revisionId é atualizado. Atualizar apenas a
descrição ou os rótulos de um fluxo de trabalho não cria uma nova revisão. O revisionId
consiste em duas partes, separadas por hífen:
Um número de seis dígitos, preenchido com zeros, começando em
000001, que aumenta cada vez que uma nova revisão é criada.Uma string hexadecimal aleatória de três caracteres.
Por exemplo, 000001-27f indica a revisão inicial de um fluxo de trabalho e 000002-d52 indica a segunda revisão.
Console
No console Google Cloud , acesse a página Fluxos de trabalho.
Clique no nome do fluxo de trabalho que você quer atualizar. Não é possível alterar o nome do fluxo de trabalho.
A página Detalhes do fluxo de trabalho é exibida.
É possível editar o fluxo de trabalho das seguintes maneiras:
Para editar a origem:
- Clique na guia Origem.
- Clique em Editar.
- Para salvar as alterações, clique em Salvar. O fluxo de trabalho atualizado é implantado.
Para atualizar a descrição, a conta de serviço que o fluxo de trabalho usa para autenticação, o nível de registro de chamadas, o nível do histórico de execução, as variáveis de ambiente, os rótulos ou a chave de criptografia:
- Clique na guia Detalhes.
- Clique no ícone apropriado.
- Se você estiver atualizando o nível de registro de chamadas, selecione uma das seguintes opções:
- Não especificado: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.
- Somente erros: registra todas as exceções identificadas; ou quando uma chamada é interrompida devido a uma exceção.
- Todas as chamadas: registre todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os respectivos resultados.
- Sem registros: nenhum registro de chamadas.
- Se você estiver atualizando o nível do histórico de execução, selecione uma das seguintes opções:
- Básico: ativa o histórico de execução básico. Esse é o padrão.
- Detalhado: ative o histórico de execução detalhado, incluindo todos os valores de variáveis no escopo e o número esperado de iterações.
Para salvar as alterações, clique em Salvar. O fluxo de trabalho atualizado é implantado.
Para editar os campos anteriores ao mesmo tempo ou adicionar ou atualizar um gatilho:
- Clique em Editar.
- Para editar a fonte, clique em Próxima.
- Para salvar as alterações e implantar o fluxo de trabalho atualizado, clique em Implantar.
Opcional: para gerenciar quais principais têm permissão para acessar ou invocar esse recurso de fluxo de trabalho, clique na guia Permissões:
Para atualizar um principal:
- Encontre uma linha que contenha o principal.
- Clique em Editar principal nessa linha.
- Clique em Adicionar outro papel ou em Excluir papel.
Se você estiver adicionando um papel, na lista Selecionar um papel, selecione um papel apropriado.
Para adicionar outro papel, clique em Adicionar outro papel.
Clique em Salvar.
gcloud
Abra um terminal.
Encontre o nome do fluxo de trabalho que você quer atualizar. Se você não souber o nome do fluxo de trabalho, digite o seguinte comando para listar os fluxos de trabalho em um local:
gcloud workflows list --location=LOCATION
Substitua
LOCATIONpelo ID ou identificador totalmente qualificado do local do fluxo de trabalho.Se você estiver atualizando o código-fonte do fluxo de trabalho, localize o arquivo YAML ou JSON em que a origem do fluxo de trabalho está salva, como
WORKFLOW_NAME.yamlouWORKFLOW_NAME.json.Atualize o fluxo de trabalho executando o comando
gcloud workflows deploycom as flags das propriedades que você quer alterar.É possível atualizar um fluxo de trabalho para alterar a origem, a descrição, os rótulos, as variáveis de ambiente, o nível de registro de chamadas, o nível do histórico de execução, a chave de criptografia ou a conta de serviço associada. É preciso especificar o nome do fluxo de trabalho que você quer atualizar. As outras flags são opcionais. Para remover uma chave de criptografia gerenciada pelo cliente, use a flag
--clear-kms-key.gcloud workflows deploy WORKFLOW_NAME \ --location=LOCATION \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --execution-history-level="EXECUTION_HISTORY_LEVEL" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID. \ --source=YAML_OR_JSON_SOURCE_FILE
Substitua:
WORKFLOW_NAME: obrigatório. O nome do fluxo de trabalho.LOCATION: opcional se a propriedadeworkflows/locationestiver definida; caso contrário, obrigatório. O local do fluxo de trabalho, por exemplo,us-central1.CALL_LOGGING_LEVEL: opcional. Nível de registro de chamadas a ser aplicado durante a execução. Pode ser um dos seguintes:none: nenhum nível de registro foi especificado. Esse é o padrão. Um nível de registro de execução tem precedência sobre qualquer nível de registro de fluxo de trabalho, a menos que o nível de registro de execução não seja especificado (o padrão). Nesse caso, o nível de registro de fluxo de trabalho é aplicado.log-errors-only: registra todas as exceções identificadas. ou quando uma chamada é interrompida devido a uma exceção.log-all-calls: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os resultados delas.log-none: nenhum registro de chamadas.
DESCRIPTION: opcional. Uma descrição do fluxo de trabalho.EXECUTION_HISTORY_LEVEL: opcional. Nível de histórico de execução a ser aplicado durante a execução. Pode ser um dos seguintes:none: nenhum nível de histórico de execução foi especificado. Esse é o padrão. Se um nível de histórico de execução não for especificado para uma execução, ele será determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a configuração aplicada no nível da execução vai substituir a configuração aplicada no nível do fluxo de trabalho para essa execução.execution-history-basic: ativa o histórico de execução básico.execution-history-detailed: ativa o histórico de execução detalhado, incluindo todos os valores de variáveis no escopo e o número esperado de iterações.
LABEL_KEY=LABEL_VALUE: opcional. Lista de pares de chave-valor de rótulo que ajudam a organizar as instâncias doGoogle Cloud , por exemplo,name=wrench. Para mais informações, consulte O que são rótulos? Os rótulos de fluxo de trabalho são herdados pelas execuções do fluxo de trabalho. Para ver os rótulos de execução, use o métodoworkflows.executions.listpara listar e filtrar execuções de fluxo de trabalho.ENV_KEY=ENV_VALUE: opcional. Lista de pares de chave-valor variável de ambiente, por exemplo,MONTH=January. Para mais informações, consulte Usar variáveis de ambiente.ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho precisa usar para criptografia de dados no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.SERVICE_ACCOUNT@PROJECT_ID.: opcional. A conta de serviço que seu fluxo de trabalho usa para acessar outros serviços doGoogle Cloud . Se você quiser atualizar os papéis da sua conta de serviço, consulte Conceder permissão a um fluxo de trabalho para acessar recursos doGoogle Cloud e Gerenciar o acesso a projetos, pastas e organizações.YAML_OR_JSON_SOURCE_FILE: opcional. O arquivo de origem do fluxo de trabalho no formato YAML ou JSON. Por exemplo,myFirstWorkflow.yaml.
REST
Para atualizar um fluxo de trabalho, use o método projects.locations.workflows.patch e, se preferir, use o parâmetro de consulta updateMask para especificar uma lista de campos a serem atualizados.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
WORKFLOW_NAME: o nome do fluxo de trabalho, por exemplo,myFirstWorkflow.DESCRIPTION: opcional. Uma descrição do fluxo de trabalho. Não pode ter mais de 1.000 caracteres Unicode.LABEL_KEYeLABEL_VALUE: opcional. Um mapa de pares de chave e valor de rótulo que ajudam a organizar suas instâncias do Google Cloud . Por exemplo:{"name": "wrench", "mass": "1kg", "count": "3"}Para mais informações, consulte O que são rótulos? Os rótulos de fluxo de trabalho são herdados pelas execuções do fluxo de trabalho. Para ver os rótulos de execução, use o métodoworkflows.executions.listpara listar e filtrar execuções de fluxo de trabalho.SERVICE_ACCOUNT@PROJECT_ID.: opcional. A conta de serviço que seu fluxo de trabalho usará para acessar outros serviços do Google Cloud . O ID do projeto é o ID do projeto do Google Cloud . Para mais informações, consulte este documento: Criar uma conta de serviço.ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o fluxo de trabalho precisa usar para criptografia de dados no formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.CALL_LOGGING_LEVEL: opcional. O nível de registro de chamadas a ser aplicado durante a execução. O padrão é que nenhum nível de registro seja especificado e o nível de registro do fluxo de trabalho seja aplicado. Para mais informações, consulte Enviar registros para o Logging. Uma das seguintes opções:CALL_LOG_LEVEL_UNSPECIFIED: nenhum nível de registro foi especificado, e o nível de registro do fluxo de trabalho é aplicado. Esse é o padrão. Caso contrário, o nível de registro de execução será aplicado e terá precedência sobre o nível de registro do fluxo de trabalho.LOG_ERRORS_ONLY: registra todas as exceções identificadas ou quando uma chamada é interrompida devido a uma exceção.LOG_ALL_CALLS: registra todas as chamadas para subfluxos de trabalho ou funções de biblioteca e os resultados delas.LOG_NONE: nenhum registro de chamadas.
EXECUTION_HISTORY_LEVEL: opcional. O nível do histórico de execução a ser aplicado durante a execução. Para mais informações, consulte Ver o histórico das etapas de execução. Uma das seguintes opções:EXECUTION_HISTORY_LEVEL_UNSPECIFIED: nenhum nível de histórico de execução foi especificado. Esse é o padrão. Se um nível de histórico de execução não for especificado para uma execução, ele será determinado pelo nível aplicado ao fluxo de trabalho. Se os níveis forem diferentes, a configuração aplicada no nível de execução vai substituir a configuração aplicada no nível do fluxo de trabalho para essa execução.EXECUTION_HISTORY_BASIC: ativa o histórico de execução básico.EXECUTION_HISTORY_ADVANCED: ativa o histórico de execução detalhado, incluindo os valores de variáveis no escopo e o número esperado de iterações.
ENV_KEYeENV_VALUE: opcional. Um mapa de pares de chave-valor de variável de ambiente, por exemplo,{ "month": "January", "day": "Monday"}. Para mais informações, consulte Usar variáveis de ambiente.SOURCE_CODE: a definição minificada do fluxo de trabalho. Exemplo:{\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}LOCATION: a região em que o fluxo de trabalho é implantado, por exemplo,us-central1.UPDATE_FIELDS: opcional. Uma lista separada por vírgulas de campos a serem atualizados. Se não for fornecido, todo o fluxo de trabalho será atualizado. Por exemplo,description,callLogLevel.
Corpo JSON da solicitação:
{
"name": "WORKFLOW_NAME",
"description": "DESCRIPTION",
"labels": {"LABEL_KEY":"LABEL_VALUE"},
"serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.",
"cryptoKeyName": "ENCRYPT_KEY",
"callLogLevel": "CALL_LOGGING_LEVEL",
"executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
"userEnvVars": {"ENV_KEY":"ENV_VALUE"},
"sourceContents": "SOURCE_CODE"
}
Para enviar a solicitação, expanda uma destas opções:
Se houver êxito, o corpo da resposta conterá uma instância de Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
"createTime": "2023-12-05T14:06:06.338390918Z",
"target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"verb": "update",
"apiVersion": "v1"
},
"done": false
}
Se o valor de "done" for false, a operação ainda estará em andamento.
Excluir um fluxo de trabalho
É possível excluir um fluxo de trabalho. A exclusão de um fluxo de trabalho também exclui as execuções dele e cancela todas as execuções ativas do fluxo de trabalho.
Console
No console Google Cloud , acesse a página Fluxos de trabalho.
Clique no nome do fluxo de trabalho que você quer excluir e, em seguida, clique em Excluir.
No prompt para confirmar a exclusão, insira o nome do fluxo de trabalho.
Clique em Confirmar.
gcloud
Abra um terminal.
Encontre o nome do fluxo de trabalho que você quer excluir. Se você não souber o nome do fluxo de trabalho, digite o seguinte comando para listar os fluxos de trabalho em um local:
gcloud workflows list --location=LOCATION
Exclua um fluxo de trabalho usando o comando
gcloud workflows delete:gcloud workflows delete WORKFLOW_NAME \ --location=LOCATION
Substitua:
WORKFLOW_NAME: o nome do fluxo de trabalho.LOCATION: o ID ou identificador totalmente qualificado do local do fluxo de trabalho.
REST
Para excluir um fluxo de trabalho com um nome especificado, use o método projects.locations.workflows.delete.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
WORKFLOW_NAME: o nome do fluxo de trabalho que você quer excluir.PROJECT_ID: o ID do projeto do Google Cloud.LOCATION: a região em que o fluxo de trabalho é implantado, por exemplo,us-central1.
Para enviar a solicitação, expanda uma destas opções:
Se houver êxito, o corpo da resposta conterá uma instância de Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
"createTime": "2023-12-05T14:06:06.338390918Z",
"target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"verb": "delete",
"apiVersion": "v1"
},
"done": false
}
Se o valor de "done" for false, a operação ainda estará em andamento.