Utilisation des tâches REST
Une tâche REST permet d'appeler une adresse d'API REST pour effectuer une opération.
Afin d'utiliser le principal de ressource Oracle Cloud Infrastructure pour authentifier une adresse d'API dans une tâche REST, reportez-vous à Authentification.
Comme décrit dans Parties d'une tâche REST, créez une tâche REST dans Data Integration en définissant la demande REST (méthode HTTP, URL et en-tête de demande) et les critères de fin (condition de réussite) qui doivent être satisfaits pour qu'un appel de la tâche REST réussisse.
Une fois qu'une demande REST est envoyée, Data Integration attend par défaut que l'appel renvoie la réponse avant de passer à d'autres tâches (mode API synchrone). L'appel REST se termine lorsque la réponse est reçue pour la demande REST. Actuellement, le type de contenu pris en charge pour la réponse d'API est JSON.
Si une demande REST appelle une opération dont l'exécution est longue, spécifiez une condition d'interrogation et une configuration de terminaison facultative pour définir la fin de l'appel REST. Lorsque l'interrogation est configurée, Data Integration n'attend pas que l'appel REST renvoie la réponse avant de passer à d'autres tâches (mode API asynchrone). Pour plus d'informations, reportez-vous aux sections Polling in Long-Running Operations et Termination in Long-Running Operations.
La taille maximale prise en charge pour une réponse renvoyée par une tâche REST est de 512 ko. Les réponses plus volumineuses sont tronquées.
Les pages suivantes expliquent comment créer, modifier et supprimer des tâches REST :
- Création d'une tâche REST
- Fourniture d'authentification dans la tâche REST
- Affichage et gestion des paramètres dans une tâche REST
- Validation d'une tâche REST
- Modification d'une tâche REST
- Suppression d'une tâche REST
Les pages suivantes décrivent d'autres tâches de gestion qui peuvent être effectuées :
Parties d'une tâche REST
Pour appeler une adresse d'API REST, fournissez les informations permettant d'exécuter la demande REST dans une tâche REST et d'y mettre fin.
Pour créer une tâche REST, procédez comme suit :
Définir les détails d'exécution : définissez les détails d'exécution de la demande REST, notamment la méthode HTTP, l'URL et l'en-tête de demande.
L'URL est le serveur REST à contacter et le chemin relatif de la ressource à laquelle accéder dans la demande. Par exemple :
http://myserver.com:8081/workspaces/finance1234/dataAssets
Pour les méthodes POST et PUT, fournissez également le corps de la demande. Actuellement, seul le format JSON est pris en charge pour le corps de demande.
La définition des détails d'exécution dans Data Integration est la même pour les opérations d'API à exécution courte et les opérations d'API à exécution longue.
Indiquer des critères de fin : indiquez les critères de condition de réussite qui doivent être satisfaits pour que la tâche REST soit considérée comme exécutée.
Ecrivez la condition qui renvoie la valeur True ou False à l'aide de la réponse de l'appel REST dans l'étape d'exécution. Si la condition renvoie la valeur True, le résultat de la tâche REST est une réussite. Si la valeur est False, le résultat est une tâche REST en échec.
Data Integration fournit une condition de réussite par défaut que vous pouvez utiliser ou modifier.
La spécification des critères de fin d'une opération d'API à long terme nécessite l'ajout d'une condition d'interrogation et d'autres valeurs d'interrogation. L'ajout d'une demande termination est facultatif.
Reportez-vous également à Paramètres dans une tâche REST et à ce que vous devez configurer avant d'utiliser le principal de ressource Oracle Cloud Infrastructure pour authentifier une adresse d'API dans une tâche REST.
Interrogation dans des opérations à longue durée d'exécution
Pour une opération d'API REST à longue durée d'exécution, en plus d'une condition de réussite, vous devez indiquer une URL et une condition d'interrogation, ainsi que des valeurs d'intervalle d'interrogation et de délai d'expiration pour identifier la fin de l'appel REST.
La configuration d'interrogation est utilisée pour interroger régulièrement le statut de l'appel REST déclenché à l'étape d'exécution.
Dans l'interrogation, la condition de réussite est une expression écrite sur la réponse de la demande d'interrogation. L'appel d'interrogation évalue la condition d'interrogation pour déterminer si l'interrogation s'arrête ou se poursuit. Data Integration émet un appel d'interrogation répété à l'intervalle d'interrogation spécifié jusqu'à ce que la valeur du délai d'expiration d'interrogation spécifiée soit atteinte ou jusqu'à ce que la condition d'interrogation renvoie la valeur False, selon l'événement qui survient en premier.
L'intervalle d'interrogation correspond à la durée d'attente avant l'envoi de la demande d'interrogation suivante. Le délai d'expiration d'interrogation est la durée maximale autorisée pour la réalisation d'interrogations répétées à la fréquence d'intervalle spécifiée. La valeur d'intervalle doit être inférieure à la valeur de délai d'expiration.
Supposons que le délai d'expiration d'interrogation soit de 24 heures et que l'intervalle d'interrogation soit de 1 heure. Une fois la demande REST appelée à l'étape d'exécution, la demande REST d'interrogation est envoyée à des intervalles de 1 heure, mais uniquement pendant 24 heures au maximum, ou jusqu'à ce que la condition d'interrogation renvoie la valeur False.
Si les critères spécifiés dans la condition de réussite sont satisfaits, l'appel REST est terminé avec succès et l'exécution de la tâche REST est considérée comme réussie. Si la condition de réussite renvoie la valeur False, le résultat de l'exécution de la tâche REST est considéré comme un échec.
Par exemple, supposons que la configuration d'interrogation interroge la progression d'une exécution de tâche en évaluant le statut dans la réponse :
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'SUCCESS' or cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) != 'ERROR'
L'interrogation s'arrête lorsque la condition de réussite est remplie.
cast(json_path(SYS.RESPONSE_PAYLOAD_JSON, '$.status') as String) == 'SUCCESS'
Terminaison dans des opérations à longue durée d'exécution
La configuration de la méthode HTTP et de l'URL REST pour mettre fin à l'appel REST est facultative pour les opérations d'API à longue durée d'exécution.
La définition des détails de la demande de fin de contrat REST dans Data Integration est semblable à la définition de la demande REST à l'étape d'exécution. Vous pouvez toutefois inclure dans l'URL de terminaison des expressions qui utilisent la réponse d'API de l'étape d'exécution REST.
Si vous mettez fin à une exécution de tâche REST et qu'aucune configuration de terminaison n'est fournie dans cette tâche REST, Data Integration :
- arrête l'exécution de la tâche REST,
- n'arrête pas l'opération d'API sous-jacente appelée par la tâche REST.
Si une configuration de terminaison est fournie, Data Integration arrête l'exécution de la tâche REST et l'opération d'API sous-jacente.
Authentification
Fournissez l'authentification pour l'appel de l'adresse d'API REST dans la tâche REST.
Actuellement, vous pouvez utiliser le principal de ressource Oracle Cloud Infrastructure pour authentifier les adresses d'API Oracle Cloud Infrastructure. Vous pouvez utiliser le principal de ressource d'espace de travail ou d'application.
Authentification de principal de ressource
Le principal de ressource Oracle Cloud Infrastructure peut être spécifié comme méthode d'authentification pour l'exécution d'une adresse d'API Oracle Cloud Infrastructure dans une tâche REST.
Le principal de ressource permet aux ressources d'être des acteurs principaux autorisés pouvant effectuer des actions sur les ressources de service. La méthode d'authentification de principal de ressource Oracle Cloud Infrastructure utilise un jeton de session de fournisseur de ressources (RPST) temporaire pour l'authentification. L'autorisation est établie via des stratégies dans Oracle Cloud Infrastructure Identity and Access Management (IAM) avec des domaines d'identité.
IAM vous permet d'écrire des stratégies pour les principaux de ressource qui font partie de groupes dynamiques. Avant d'utiliser le principal de ressource OCI pour authentifier les adresses d'API OCI dans les tâches REST, créez un groupe dynamique et accordez des droits d'accès à l'application ou à l'espace de travail Data Integration, ainsi qu'aux ressources réseau.
Vous trouverez ci-dessous des exemples de stratégies que vous pouvez utiliser.
-
Pour définir les ressources appartenant au groupe dynamique, créez la règle de mise en correspondance suivante dans le groupe dynamique :
ALL{resource.type = 'disworkspace', resource.compartment.id = <compartment-ocid>}
-
Ajoutez l'instruction de stratégie suivante qui permet au groupe dynamique d'accéder aux ressources réseau.
allow dynamic-group <dynamic-group-name> to use virtual-network-family in tenancy
-
Pour authentifier une adresse d'API dans une tâche REST à l'aide du principal de ressource d'application Oracle Cloud Infrastructure :
allow any-user to use ai-service-language-family in tenancy where ALL {request.principal.type = 'disapplication', request.principal.id = '<disapplication-ocid>'}
-
Les instructions de stratégie fournies dans cette rubrique sont des exemples uniquement. Veillez à écrire des stratégies qui répondent à vos propres exigences.
-
Une fois que vous avez ajouté des composants IAM (par exemple, des groupes dynamiques et des instructions de stratégie), n'essayez pas d'effectuer les tâches associées immédiatement. Les nouvelles stratégies IAM prennent effet en cinq à 10 minutes environ.
Paramètres
Vous pouvez inclure des paramètres dans une tâche REST afin de pouvoir la réutiliser dans différentes situations d'exécution.
Vous pouvez utiliser des paramètres pour les parties suivantes de la demande REST dans une tâche REST :
- Des sections de l'URL d'exécution REST, de l'URL d'interrogation ou de l'URL de terminaison. Dans Data Integration, les sections variables paramétrées de l'URL sont appelées paramètres d'URL. Reportez-vous à Configuration de la méthode HTTP, de l'URL et des paramètres d'URL.
- La valeur d'un en-tête dans la demande. Reportez-vous à Paramétrage d'une valeur d'en-tête.
- Le corps complet d'une demande POST ou PUT. Reportez-vous à Paramétrage du corps de demande.
- La condition de réussite qui détermine les critères de succès de l'appel REST. Reportez-vous à Paramétrage de la condition de réussite.
- La condition d'interrogation (écrite sur la réponse renvoyée par la demande d'interrogation) qui détermine si l'interrogation s'arrête ou se poursuit. Reportez-vous à Paramétrage de la condition d'interrogation.