Como Trabalhar com Tarefas REST
Uma tarefa REST permite que você chame um ponto final da API REST para executar uma operação.
Para usar o Controlador de Recursos do Oracle Cloud Infrastructure para autenticar um ponto final de API em uma tarefa REST, consulte Autenticação.
Conforme descrito em Partes de uma Tarefa REST, crie uma tarefa REST no Data Integration definindo a solicitação REST (método HTTP, URL e cabeçalho de solicitação) e os critérios de conclusão (condição de sucesso) que devem ser atendidos para uma chamada bem-sucedida da tarefa REST.
Depois que uma solicitação REST é enviada, por padrão, o Data Integration aguarda a chamada para retornar a resposta antes de continuar para outras tarefas (modo de API síncrona). A chamada REST é concluída quando a resposta da solicitação REST é recebida. No momento, o tipo de conteúdo suportado para a resposta da API é JSON.
Se a solicitação REST chamar uma operação de longa execução, especifique uma condição de sondagem e uma configuração de encerramento opcional para definir a conclusão da chamada REST. Quando a sondagem é configurada, o Data Integration não aguarda a chamada REST retornar a resposta antes de prosseguir para outras tarefas (modo de API assíncrona). Para obter mais informações, consulte Polling in Long-Running Operations e Termination in Long-Running Operations.
O tamanho máximo suportado para uma resposta retornada de uma tarefa REST é 512 K. As respostas maiores são truncadas.
As páginas a seguir descrevem como você pode criar, editar e excluir tarefas REST:
- Criando uma Tarefa REST
- Fornecendo Autenticação na Tarefa REST
- Exibindo e Gerenciando Parâmetros em uma Tarefa REST
- Validando uma Tarefa REST
- Editando uma Tarefa REST
- Excluindo uma Tarefa REST
As páginas a seguir descrevem outras tarefas de gerenciamento que podem ser executadas:
Partes de uma Tarefa REST
Para chamar um ponto final de API REST, forneça as informações para executar e concluir a solicitação REST em uma tarefa REST.
A criação de uma tarefa REST envolve as seguintes etapas principais:
Definir os detalhes da execução: Defina os detalhes da execução da solicitação REST, incluindo o método HTTP, o URL e o cabeçalho da solicitação.
O URL é o servidor REST a ser contatado e o caminho relativo para o recurso que você deseja acessar na solicitação. Por exemplo:
http://myserver.com:8081/workspaces/finance1234/dataAssets
Para um método POST ou PUT, você também fornece o corpo da solicitação. No momento, somente JSON é o formato suportado para um corpo de solicitação.
A definição dos detalhes da execução no Data Integration é a mesma das operações de API de execução curta e longa.
Especificar critérios de conclusão: Especifique os critérios de condição de sucesso que devem ser atendidos para considerar uma conclusão bem-sucedida da tarefa REST.
Grave a condição avaliada como verdadeira ou falsa usando a resposta da chamada REST na etapa de execução. Se a condição retornar verdadeiro, o resultado da tarefa REST será bem-sucedido. Se for falso, o resultado será uma tarefa REST com falha.
O Data Integration fornece uma condição de sucesso padrão que você pode usar ou editar.
A especificação de critérios de conclusão para uma operação de API de longa execução exige a adição de uma condição de polling e outros valores de polling. A adição de uma solicitação de encerramento é opcional.
Consulte também Parâmetros em uma tarefa REST e o que você precisa configurar antes de usar o Controlador de Recursos do Oracle Cloud Infrastructure para autenticar um ponto final de API em uma tarefa REST.
Sondagem em Operações de Execução Longa
Para uma operação de API REST de execução longa, além de uma condição de sucesso, você deve especificar um URL de sondagem e uma condição, além de valores de intervalo e timeout de sondagem para identificar a conclusão da chamada REST.
A configuração de apuração é usada para apurar periodicamente o status da chamada REST que é feita na etapa de execução.
Na pesquisa, a condição de sucesso é uma expressão gravada na resposta da solicitação de pesquisa. A chamada de sondagem avalia a condição de sondagem para determinar a interrupção ou a continuação da sondagem. O Data Integration emite uma chamada de pesquisa repetidamente no intervalo de pesquisa especificado até que o valor do timeout especificado seja atingido ou até que a condição de pesquisa retorne falso, o que ocorre primeiro.
O intervalo de sondagem é o tempo de espera antes de enviar a próxima solicitação de sondagem. O timeout de polling é o período máximo de tempo permitido para que a polling repetida ocorra na taxa de intervalo especificada. O valor do intervalo deve ser menor que o valor do timeout.
Suponha que o timeout de sondagem seja de 24 horas e o intervalo de sondagem seja de 1 hora. Depois que a solicitação REST na etapa de execução for chamada, a solicitação REST de sondagem será enviada em intervalos de 1 hora, mas somente por até 24 horas ou até que a condição de sondagem retorne falso.
Se os critérios especificados na condição de sucesso forem atendidos, a chamada REST será concluída com sucesso e a execução da tarefa REST será considerada um sucesso. Se a condição de sucesso retornar falso, o resultado da execução da tarefa REST será considerado como falha.
Por exemplo, suponha que a configuração de sondagem verifique o andamento de uma execução de tarefa avaliando o status na resposta:
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'SUCCESS' or cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'ERROR'
A sondagem é interrompida quando a condição de sucesso é atendida.
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) == 'SUCCESS'
Encerramento em Operações de Execução Longa
A configuração do método HTTP e do URL REST para encerrar a chamada REST é opcional para uma operação de API de execução longa.
A definição dos detalhes da solicitação de encerramento REST no Data Integration é semelhante à definição da solicitação REST na etapa de execução. No entanto, você pode incluir expressões que usam a resposta da API da etapa de execução REST no URL de encerramento.
Se você encerrar uma execução de tarefa REST e uma configuração de encerramento não for fornecida nessa tarefa REST, o Data Integration:
- Interromperá a execução da tarefa REST
- Não interromperá a operação de API subjacente chamada pela tarefa REST
Se uma configuração de encerramento for fornecida, o Data Integration interromperá a execução da tarefa REST e a operação de API subjacente.
Autenticação
Forneça a autenticação para chamar o ponto final da API REST na tarefa REST.
No momento, você pode usar o controlador de recursos do Oracle Cloud Infrastructure como método para autenticar pontos finais de API do Oracle Cloud Infrastructure. Você pode usar o espaço de trabalho ou o controlador de recursos do aplicativo.
Autenticação do Controlador de Recursos
O controlador de recursos do Oracle Cloud Infrastructure pode ser especificado como método de autenticação para executar um ponto final de API do Oracle Cloud Infrastructure em uma tarefa REST.
Um controlador de recursos permite que os recursos sejam atores principais autorizados que podem executar ações nos recursos do serviço. O método de autenticação do controlador de recursos do Oracle Cloud Infrastructure usa um token de sessão temporário do provedor de recursos (RPST) para autenticação e a autorização é estabelecida por meio de políticas no Oracle Cloud Infrastructure Identity and Access Management (IAM) com Domínios de Identidades.
O serviço IAM permite que você crie políticas para controladores de recursos que fazem parte de grupos dinâmicos. Antes de usar o controlador de recursos do OCI para autenticar pontos finais da API do OCI em tarefas REST, crie um grupo dinâmico e conceda permissão ao espaço de trabalho ou ao aplicativo Data Integration e aos recursos de rede.
Veja a seguir exemplos de políticas que você pode usar.
-
Para definir os recursos que pertencem ao grupo dinâmico, crie a seguinte regra de correspondência no grupo dinâmico:
ALL{resource.type = 'disworkspace', resource.compartment.id = <compartment-ocid>}
-
Adicione a instrução de política a seguir que permite que o grupo dinâmico acesse recursos de rede.
allow dynamic-group <dynamic-group-name> to use virtual-network-family in tenancy
-
Para usar o controlador de recursos do aplicativo Oracle Cloud Infrastructure para autenticar um ponto final de API em uma tarefa REST:
allow any-user to use ai-service-language-family in tenancy where ALL {request.principal.type = 'disapplication', request.principal.id = '<disapplication-ocid>'}
-
As instruções de política fornecidas neste tópico são apenas exemplos. Certifique-se de criar políticas que atendam aos seus próprios requisitos.
-
Depois de adicionar componentes do IAM (por exemplo, grupos dinâmicos e instruções de política), não tente executar as tarefas associadas imediatamente. As novas políticas do IAM exigem cerca de cinco a 10 minutos para entrar em vigor.
Parâmetros
Você pode incluir parâmetros em uma tarefa REST para reutilizar a tarefa em diferentes situações de runtime.
Você pode usar parâmetros para as seguintes partes da solicitação REST em uma tarefa REST:
- Uma ou mais seções do URL de execução REST, bem como do URL de sondagem ou encerramento. No Data Integration, as seções de variáveis parametrizadas do URL são conhecidas como parâmetros de URL. Consulte Configurando o método HTTP, o URL e os Parâmetros de URL.
- O valor de um cabeçalho na solicitação. Consulte Parametrizando um Valor de Cabeçalho.
- Todo o corpo da solicitação em uma solicitação POST ou PUT. Consulte Parametrizando o Corpo da Solicitação.
- A condição de sucesso que determina os critérios para uma conclusão bem-sucedida da chamada REST. Consulte Parametrizando a Condição de Sucesso.
- A condição de pesquisa (gravada na resposta que é retornada da solicitação de pesquisa) que determina a interrupção ou a continuação da pesquisa. Consulte Parametrizando a Condição de Sondagem.