Trabajo con tareas de REST
Una tarea de REST permite llamar a un punto final de API de REST para realizar una operación.
Para utilizar la entidad de recurso de Oracle Cloud Infrastructure para autenticar un punto final de la API en una tarea de REST, consulte Autenticación.
Como se describe en Partes de una tarea de REST, cree una tarea de REST en Data Integration mediante la definición de la solicitud de REST (método HTTP, URL y cabecera de solicitud) y los criterios de finalización (condición correcta) que se deben cumplir para una llamada correcta de la tarea de REST.
Después de enviar una solicitud REST, Data Integration espera por defecto que la llamada devuelva la respuesta antes de continuar con otras tareas (modo de API síncrona). La llamada REST finaliza cuando se recibe la respuesta para la solicitud REST. Actualmente, el tipo de contenido soportado para la respuesta de API es JSON.
Si la solicitud de REST llama a una operación de larga ejecución, especifique una condición de sondeo y una configuración de terminación opcional para definir la finalización de la llamada de REST. Cuando se configura el sondeo, Data Integration no espera a que la llamada de REST devuelva la respuesta antes de continuar con otras tareas (modo de API asíncrona). Para obtener más información, consulte Polling in Long-Running Operations y Termination in Long-Running Operations.
El tamaño máximo soportado para una respuesta devuelta de una tarea de REST es 512 K. Las respuestas más grandes se truncan.
En las siguientes páginas se describe cómo crear, editar y suprimir tareas de REST:
- Creación de una tarea de REST
- Especificación de la autenticación en la tarea de REST
- Visualización y gestión de parámetros en una tarea de REST
- Validación de una tarea de REST
- Edición de una tarea de REST
- Supresión de una tarea de REST
En las siguientes páginas se describen otras tareas de gestión que se pueden realizar:
Partes de una tarea de REST
Para llamar a un punto final de API de REST, proporcione la información para ejecutar y completar la solicitud REST en una tarea de REST.
La creación de una tarea de REST implica los siguientes pasos principales:
Definir detalles de ejecución: defina los detalles de ejecución de la solicitud de REST, incluido el método HTTP, la URL y la cabecera de solicitud.
La URL es el servidor REST con el que contactar y la ruta relativa al recurso al que desea acceder en la solicitud. Por ejemplo:
http://myserver.com:8081/workspaces/finance1234/dataAssets
Para un método POST o PUT, también debe proporcionar el cuerpo de la solicitud. Actualmente, solo JSON es el formato soportado para un cuerpo de solicitud.
La definición de los detalles de ejecución en Data Integration es la misma para operaciones de API de ejecución corta y operaciones de API de ejecución larga.
Especificar los criterios de finalización: especifique los criterios de condición correcta que se deben cumplir para que la tarea de REST se complete correctamente.
Escriba la condición que se evalúe como true o false mediante la respuesta de la llamada de REST en el paso de ejecución. Si la condición devuelve true, el resultado de la tarea de REST es correcto. Si es false, el resultado es una tarea de REST con fallos.
Data Integration proporciona una condición correcta por defecto que puede utilizar o editar.
La especificación de los criterios de finalización para una operación de API de larga ejecución requiere la adición de una condición de sondeo y otros valores de sondeo. La agregación de una solicitud de termination es opcional.
Consulte también Parámetros en una tarea de REST y lo que debe configurar antes de utilizar la entidad de recurso de Oracle Cloud Infrastructure para autenticar un punto final de API en una tarea de REST.
Sondeo en operaciones de larga ejecución
Para una operación de API de REST de larga ejecución, además de una condición correcta, debe especificar una URL de sondeo y una condición, así como valores de intervalo de sondeo y timeout para identificar la finalización de la llamada de REST.
La configuración de sondeo se utiliza para sondear periódicamente el estado de la llamada de REST que se llama en el paso de ejecución.
En el sondeo, la condición correcta es una expresión que se escribe en la respuesta de la solicitud de sondeo. La llamada de sondeo evalúa la condición de sondeo para determinar si el sondeo se para o continúa. Data Integration emite una llamada de sondeo varias veces en el intervalo de sondeo especificado hasta que se alcanza el valor del timeout de sondeo especificado o hasta que la condición de sondeo devuelve false, lo que ocurra primero.
El intervalo de sondeo es el tiempo de espera antes de enviar la siguiente solicitud de sondeo. El timeout de sondeo es el período de tiempo máximo que se permite para que se repita el sondeo en el ratio de intervalo especificado. El valor de intervalo debe ser inferior al valor de timeout.
Supongamos que el timeout de sondeo es de 24 horas y que el intervalo de sondeo es de 1 hora. Después de llamar a la solicitud de REST en el paso de ejecución, la solicitud de REST de sondeo se envía a intervalos de 1 hora, pero solo durante un máximo de 24 horas o hasta que la condición de sondeo devuelva false.
Si se cumplen los criterios especificados en la condición correcta, la llamada de REST se completa correctamente y la ejecución de la tarea de REST se considera correcta. Si la condición correcta devuelve un valor false, el resultado de la ejecución de la tarea de REST se considera con fallos.
Por ejemplo, suponga que la configuración de sondeo sondea el progreso de una tarea ejecutada mediante la evaluación del estado en la respuesta:
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'SUCCESS' or cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'ERROR'
El sondeo se para cuando se cumple la condición correcta.
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) == 'SUCCESS'
Terminación en operaciones de larga ejecución
La configuración del método HTTP y la URL de REST para terminar la llamada de REST es opcional para una operación de API de larga ejecución.
La definición de los detalles de la solicitud de terminación de REST en Data Integration es similar a la definición de la solicitud REST en el paso de ejecución. Sin embargo, puede incluir expresiones que utilicen la respuesta de API del paso de ejecución de REST en la URL de terminación.
Si termina una ejecución de tarea de REST y no se proporciona una configuración de terminación en esa tarea de REST, Data Integration:
- Para la ejecución de la tarea de REST
- No para la operación de API subyacente llamada por la tarea de REST
Si se proporciona una configuración de terminación, Data Integration parará la ejecución de la tarea de REST y la operación de API subyacente.
Autenticación
Proporcione la autenticación para llamar al punto final de la API de REST en la tarea de REST.
Actualmente, puede utilizar la entidad de recurso de Oracle Cloud Infrastructure como método para autenticar los puntos finales de la API de Oracle Cloud Infrastructure. Puede utilizar el espacio de trabajo o la entidad de recurso de aplicación.
Autenticación de entidad de recurso
La entidad de recurso de Oracle Cloud Infrastructure se puede especificar como método de autenticación para ejecutar un punto final de la API de Oracle Cloud Infrastructure en una tarea de REST.
Una entidad de recurso permite que los recursos sean actores principales autorizados que puedan realizar acciones en los recursos de servicio. El método de autenticación de entidad de recurso de Oracle Cloud Infrastructure utiliza un token de sesión de proveedor de recursos temporal (RPST) para autenticación y la autorización se establece mediante políticas en Oracle Cloud Infrastructure Identity and Access Management (IAM) con dominios de identidad.
IAM permite escribir políticas para entidades de recurso que forman parte de grupos dinámicos. Antes de utilizar la entidad de recurso de OCI para autenticar puntos finales de API de OCI en tareas de REST, cree un grupo dinámico y otorgue permiso al espacio de trabajo o la aplicación de Data Integration y a los recursos de red.
A continuación, se muestran ejemplos de políticas que puede utilizar.
-
Para definir los recursos que pertenecen al grupo dinámico, cree la siguiente regla de coincidencia en el grupo dinámico:
ALL{resource.type = 'disworkspace', resource.compartment.id = <compartment-ocid>}
-
Agregue la siguiente sentencia de política que permita el acceso del grupo dinámico a los recursos de red.
allow dynamic-group <dynamic-group-name> to use virtual-network-family in tenancy
-
Para utilizar la entidad de recurso de la aplicación de Oracle Cloud Infrastructure para autenticar un punto final de la API en una tarea de REST:
allow any-user to use ai-service-language-family in tenancy where ALL {request.principal.type = 'disapplication', request.principal.id = '<disapplication-ocid>'}
-
Las sentencias de política proporcionadas en este tema son solo ejemplos. Asegúrese de escribir políticas que cumplan sus propios requisitos.
-
Después de agregar componentes de IAM (por ejemplo, grupos dinámicos y sentencias de política), no intente realizar las tareas asociadas inmediatamente. Las nuevas políticas de IAM requieren entre cinco y 10 minutos para que se apliquen.
Parámetros
Puede incluir parámetros en una tarea de REST para poder reutilizar la tarea en diferentes situaciones de tiempo de ejecución.
Puede utilizar parámetros para las siguientes partes de la solicitud de REST en una tarea de REST:
- Una o más secciones de la URL de ejecución de REST, la URL de sondeo o la URL de terminación. En Data Integration, las secciones de variables con parámetros de la URL se denominan parámetros de URL. Consulte Configuración del método HTTP, la URL y los parámetros de URL.
- El valor de una cabecera en la solicitud. Consulte Parametrización de un valor de cabecera.
- Todo el cuerpo de la solicitud en una solicitud POST o PUT. Consulte Parametrización del cuerpo de solicitud.
- La condición correcta que determina los criterios para una finalización correcta de la llamada de REST. Consulte Parametrización de la condición correcta.
- La condición de votación (escrita en la respuesta que se devuelve de la solicitud de votación) que determina si el sondeo se para o continúa. Consulte Parametrización de la condición de sondeo.