Tarefa "Aprovação"

A tarefa Approval permite configurar integrações baseadas em aprovação. Também permite controlar o fluxo de uma integração.

Use a tarefa de aprovação para enviar e-mails de solicitação de aprovação a um ou mais usuários de integração. O e-mail inclui um link para a integração em que os usuários podem aprovar ou recusar manualmente a solicitação.

Durante uma execução de integração, quando o controle acessa a tarefa de aprovação, a execução é interrompida e todas as tarefas posteriores à tarefa de aprovação são suspensas. A integração retoma a execução apenas quando um usuário aprova ou rejeita o pedido de aprovação, seja no console do Google Cloud ou usando a API.

Uma tarefa de aprovação pode ser usada para as seguintes finalidades:

  • Para suspender e ramificar uma integração com base na aprovação ou rejeição do usuário.
  • Para suspender uma integração até uma duração especificada.
  • Usar como ponto de interrupção para depurar a integração.

Comparação entre tarefas de aprovação, de suspensão e de timer

As três tarefas (Aprovação, Suspensão e Cronômetro) executam uma função semelhante de pausar e retomar uma integração. No entanto, há diferenças sutis entre elas. A tabela a seguir descreve as diferenças entre as três tarefas.

Tarefa "Aprovação" Suspender tarefa Tarefa cronômetro
Retoma quando um usuário aprova ou rejeita a solicitação na interface de integrações ou usando a API. Aceita a retomada manual e automática de uma integração. Se não houver uma intervenção manual para revogar a suspensão, a integração retomará a execução automaticamente após o término do limite de tempo de suspensão. Aceita apenas a retomada automática de uma integração. A execução da integração será retomada automaticamente após o término do limite de tempo de suspensão.
Pode retomar uma integração na interface de integrações ou chamando o método suspensions.resolve. Consulte Aprovar ou rejeitar usando a API. Pode retomar uma integração chamando o método suspensions.lift. Aceita apenas a retomada automática de uma integração.
Os usuários recebem uma notificação quando uma integração é pausada (suspensa). Os usuários não recebem nenhuma notificação quando uma integração é pausada (suspensa). Os usuários não recebem nenhuma notificação quando uma integração é pausada (suspensa).
Aceita uma variável de saída (booleana), que permite realizar verificações condicionais antes de retomar uma integração. No entanto, a variável de saída só pode ter o valor de true ou false. Aceita uma variável de saída (string), que permite realizar verificações condicionais antes de retomar uma integração. É possível definir qualquer valor para a variável de saída. Não é compatível com nenhuma variável de saída.

Configurar a tarefa "Aprovação"

Para configurar a tarefa Aprovação:

  1. No console do Google Cloud , acesse a página Application Integration.

    Acessar o Application Integration

  2. No menu de navegação, clique em Integrações.

    A página Integrações é exibida, listando todas as integrações disponíveis no projeto do Google Cloud.

  3. Selecione uma integração ou clique em Criar integração para criar uma nova.

    Caso você esteja criando uma nova integração, siga estas etapas:

    1. Digite um nome e uma descrição no painel Criar integração.
    2. Selecione uma região para a integração.
    3. Selecione uma conta de serviço para a integração. É possível mudar ou atualizar os detalhes da conta de serviço de uma integração a qualquer momento no painel Resumo da integração na barra de ferramentas de integração.
    4. Clique em Criar. A integração recém-criada é aberta no editor de integração.

  4. Na barra de navegação do editor de integração, clique em Tarefas para conferir a lista de tarefas e conectores disponíveis.
  5. Clique e coloque o elemento de tarefa Approval no editor de integração.
  6. Clique no elemento da tarefa Aprovação no designer para ver o painel de configuração da tarefa Aprovação.
  7. Configure os campos exibidos usando as propriedades de configuração da tarefa, conforme detalhado na tabela abaixo.

    As alterações nas propriedades são salvas automaticamente.

Propriedades de configuração

A tabela a seguir descreve as propriedades de configuração da tarefa de aprovação.

Propriedade Tipo de dado Descrição
Recipients Matriz de strings Endereços de e-mail para os quais a notificação é enviada quando a tarefa é suspensa. Insira vários endereços de e-mail separados por vírgula.
Custom notification message String Mensagem personalizada a ser incluída na notificação por e-mail quando a tarefa é suspensa. O valor pode ser um literal ou uma variável. Se a mensagem personalizada estiver disponível em uma variável, clique em VAR e selecione a variável.
Reminder frequency (in hours) Número inteiro Com que frequência as notificações de lembretes são exibidas.

Se a suspensão estiver em um estado não resolvido, você poderá enviar notificações por e-mail de lembrete solicitando que os usuários autorizados resolvam a suspensão.

Time until expiration (in hours) Número inteiro Período da suspensão.

Se a suspensão não for resolvida dentro do limite de tempo, ela será rejeitada por padrão.

On expiration Booleano Medidas a serem tomadas após a suspensão expirar.

Você pode rejeitar a suspensão ou cancelar a suspensão. Por padrão, a suspensão é recusada.

isApproved (Approval) Booleano Variável de saída que tem o status da suspensão após a resolução.

A variável isApproved será definida como True se a suspensão for aprovada e definida como False se a suspensão for rejeitada.

Responder a um pedido de aprovação usando a API

Para aprovar ou rejeitar um pedido de aprovação pendente sem o console do Google Cloud , chame o método projects.locations.integrations.executions.suspensions.resolve.

Para aprovar ou rejeitar uma solicitação, você precisa da permissão integrations.suspensions.resolve. Para listar suspensões, você também precisa da permissão integrations.suspensions.list. O papel de aprovador do Application Integration (roles/integrations.suspensionResolver) contém as duas permissões, assim como o papel de administrador do Application Integration (roles/integrations.integrationAdmin).

Se a integração usar uma conta de serviço de execução, conceda o papel de usuário da conta de serviço (roles/iam.serviceAccountUser) nessa conta. Esse requisito entra em vigor à medida que o lançamento descrito em Conceder o papel de usuário da conta de serviço avança.

  1. Para encontrar a solicitação pendente, liste as suspensões da execução usando o método projects.locations.integrations.executions.suspensions.list:
    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/executions/EXECUTION_ID/suspensions"
    

    Na resposta, encontre a suspensão em que taskId é o ID da tarefa de aprovação e state é PENDING. A resposta também inclui suspensões de tarefas de suspensão e de outras tarefas de aprovação na mesma execução. Anote o name da suspensão, que termina com o ID dela.

  2. Para aprovar ou rejeitar a solicitação, chame o método suspensions.resolve:
    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        -d '{
          "suspension": {
            "eventExecutionInfoId": "EXECUTION_ID",
            "integration": "INTEGRATION_NAME",
            "taskId": "TASK_ID",
            "state": "STATE"
          }
        }' \
        "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/executions/EXECUTION_ID/suspensions/SUSPENSION_ID:resolve"
    

Substitua:

  • PROJECT_ID: ID do seu projeto do Google Cloud .
  • LOCATION: a região da integração.
  • INTEGRATION_NAME: o nome da integração.
  • EXECUTION_ID: o ID da execução suspensa.
  • TASK_ID: o ID da tarefa de aprovação (o taskId da suspensão).
  • SUSPENSION_ID: o ID da suspensão do name da suspensão.
  • STATE: o estado da resolução. Use LIFTED para aprovar a solicitação (define isApproved como true) ou REJECTED para rejeitá-la (define isApproved como false).

Estratégia de tratamento de erros

A estratégia de tratamento de erros para uma tarefa especifica a ação a ser realizada se a tarefa falhar devido a um erro temporário. Para mais informações sobre como usar uma estratégia de tratamento de erros e conhecer os diferentes tipos de estratégias de tratamento de erros, consulte Estratégias de tratamento de erros.

Cotas e limites

Para informações sobre o assunto, consulte Cotas e limites.

A seguir