Demandes de travail

Les demandes de travail vous permettent de surveiller les opérations de longue durée telles que les sauvegardes de base de données ou le provisionnement d'instances de calcul.

Lorsque vous lancez une opération de longue durée, le service crée une demande de travail. Une demande de travail est un journal d'activité qui vous permet d'effectuer le suivi de chaque étape de la progression de l'opération. Chaque demande de travail dispose d'un OCID  qui vous permet d'interagir avec elle par programmation et de l'utiliser pour l'automatisation.

Les demandes de travail fournissent généralement des informations sur le statut du flux de travail associé, les erreurs, les fichiers journaux et une liste des ressources affectées par le flux de travail.

Note

Certains services Oracle Cloud Infrastructure, tels que Calcul et Base de données, prennent en charge les demandes de travail à l'aide de l'API des demandes de travail, qui contient l'opération GetWorkRequest.

Certains services offrent des demandes de travail prises en charge par l'API du service plutôt que par les demandes de travail décrites dans cette rubrique. Ces API de service comprennent chacune des opérations qui fonctionnent de la même manière que l'opération GetWorkRequest utilisée par l'API des demandes de travail.

Pour plus de détails, consultez la documentation de référence pour l'API de demandes de travail de chaque service. Des liens vers chaque API sont fournis dans la section Informations supplémentaires et API des services pris en charge.

Introduction aux demandes de travail

Les demandes de travail sont utiles dans les scénarios suivants :

  • En cas d'échec d'une opération, une demande de travail peut vous aider à identifier l'étape du processus pendant laquelle l'erreur s'est produite. Les demandes de travail saisissent les échecs de validation asynchrone.
  • Certaines opérations ont une incidence sur plusieurs ressources. Par exemple, la création d'un groupe d'instances affecte aussi les instances et les configurations d'instances. Une demande de travail fournit une liste des ressources affectées par une opération.
  • Pour les flux de travail qui nécessitent des opérations séquentielles, vous pouvez surveiller la demande de travail de chaque opération et vérifier que celle-ci est terminée avant de passer à la suivante. Par exemple, imaginons que vous vouliez créer un groupe d'instances avec l'ajustement automatique activé. Pour ce faire, vous devez d'abord créer le groupe d'instances, puis configurer l'ajustement automatique. Vous pouvez surveiller la demande de travail de création du groupe d'instances pour déterminer le moment où ce flux de travail prend fin, puis configurer l'ajustement automatique à ce moment-là.

Les demandes de travail sont conservées pendant 12 heures.

Politique GIA requise

Pour que vous puissiez utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder l'accès de sécurité au moyen d'une politique. Cet accès est requis que vous utilisiez la console ou l'API REST avec une trousse SDK, l'interface de ligne de commande ou un autre outil. Si vous obtenez un message indiquant que vous ne disposez pas de l'autorisation requise, vérifiez auprès de l'administrateur le type d'accès qui vous a été octroyé et le compartiment  à utiliser.

Pour les administrateurs : Les autorisations permettant aux utilisateurs de voir les demandes de travail, les journaux et les messages d'erreur d'une opération varient en fonction du service. Pour certains services, les demandes de travail héritent des autorisations de l'opération qui les génèrent. Pour d'autres services, les demandes de travail requièrent des autorisations distinctes. Pour plus d'informations, voir Informations de référence sur les politiques.

Pour en connaître davantage sur les politiques, voir Introduction aux politiques et Politiques communes.

Statut des demandes de travail

Les demandes de travail fournissent une visibilité sur la progression des opérations asynchrones de longue durée. Le statut d'une demande de travail indique la progression de l'opération.

Les valeurs de statut courantes sont, par exemple, IN_PROGRESS, FAILED ou SUCCEEDED. Comme chaque service ou opération qui prend en charge les demandes de travail fournit sa propre API pour l'obtention du statut, les valeurs spécifiques retournées dans une demande de travail peuvent varier en fonction du service et de l'opération. Pour plus d'informations sur les attributs de statut pris en charge par les demandes de travail pour chaque service, voir Statut des demandes de travail.

Dépannage des erreurs de validation

Les demandes de travail saisissent les échecs de validation asynchrone. En cas d'échec d'une opération asynchrone, une demande de travail peut vous aider à déterminer où l'erreur s'est produite dans le processus.

Des erreurs synchrones se produisent lors de l'appel initial à l'API du service et sont retournées par celle-ci. Des erreurs asynchrones surviennent pendant le flux de travail qui se produit après l'appel d'API initial et sont retournées par la demande de travail. Un appel réussi à l'API du service qui retourne une réponse HTTP 200 ("la demande a abouti") peut être suivi d'une erreur asynchrone saisie par la demande de travail.

Par exemple, lorsque vous créez une instance de calcul, un appel d'API est transmis à l'opération LaunchInstance. À ce stade, une validation synchrone se produit. En cas d'échec, une réponse HTTP 4xx est retournée. Si l'appel aboutit, une réponse HTTP 200 est retournée et le flux de travail de création d'instance démarre.

Pendant que le flux de travail de création d'instance se poursuit, d'autres vérifications de validation et d'erreur sont effectuées et une demande de travail asynchrone est créée pour assurer le suivi de la progression du flux de travail. La réponse à l'opération LaunchInstance contient l'OCID de la demande de travail dans l'en-tête opc-work-request-id. Vous pouvez surveiller le statut de la demande de travail à tout moment en appelant l'opération GetWorkRequest et en transmettant l'ID demande de travail. Si une erreur se produit pendant le flux de travail, vous pouvez extraire une liste d'erreurs en appelant ListWorkRequestErrors et en transmettant l'ID demande de travail.

La demande de travail reste dans une file d'attente tant que l'opération n'est pas terminée.

Pour des informations détaillées sur les demandes de travail, notamment sur le filtrage de la réponse à la demande et un exemple de demande et de réponse, voir Demandes de travail asynchrones.

Exemple de flux de travail de validation de demande de travail

Le diagramme suivant présente un exemple de flux de travail de création d'instance dans lequel la validation synchrone réussit et la validation asynchrone échoue.

  1. Vous appelez le point d'extrémité LaunchInstance dans l'API du service Calcul.
  2. La validation synchrone est effectuée et vous recevez une réponse HTTP 2xx de l'API du service Calcul. La réponse inclut l'OCID de la demande de travail dans l'en-tête opc-work-request-id.
  3. Le flux de travail de création d'instance démarre et une validation asynchrone est effectuée tout au long du flux de travail. Une erreur se produit et la validation échoue.
  4. L'API du service Calcul alimente les erreurs de demande de travail et marque la demande de travail comme ayant échoué.
  5. Pour surveiller la demande de travail, vous appelez GetWorkRequest dans l'API de demandes de travail et vous transmettez l'ID demande de travail trouvé dans l'en-tête opc-work-request-id.
  6. Voyant que la demande de travail a échoué, vous appelez ListWorkRequestErrors dans l'API de demandes de travail et transmettez l'ID demande de travail pour extraire une liste d'erreurs.
  7. L'API de demandes de travail retourne une liste d'erreurs que vous pouvez utiliser pour déterminer la cause de l'échec.
Diagramme de haut niveau du flux de travail de création d'instance montrant la validation synchrone et asynchrone.

Utilisation de la console pour voir les demandes de travail

Vous pouvez utiliser la console pour voir les messages du journal, les messages d'erreur et les ressources associées à une demande de travail spécifique. Les étapes pour afficher une demande de travail peuvent varier en fonction du service et de la ressource dont vous voulez voir les demandes de travail.

  1. Naviguez jusqu'à la ressource dont vous voulez consulter les demandes de travail.

    Par exemple, pour voir les demandes de travail d'une instance de calcul : Ouvrez le menu de navigation et cliquez sur Calcul. Sous Calcul, cliquez sur Instances.

  2. Si la ressource apparaît dans une vue de liste, cliquez sur le nom de la ressource pour voir les détails associés.
  3. Sous Ressources, cliquez sur Demandes de travail. Le statut de toutes les demandes de travail s'affiche dans la page.
  4. Pour voir les messages du journal, les messages d'erreur et les ressources pour une demande de travail spécifique, cliquez sur le nom de l'opération. Sélectionnez ensuite une option dans la section Informations supplémentaires.

    Pour les ressources associées, vous pouvez cliquer sur le menu Actions (Menu Actions) à côté d'une ressource pour copier l'OCID de celle-ci.

Informations supplémentaires et API des services pris en charge

Pour plus d'informations sur l'utilisation de l'API et sur les demandes de signature, voir la documentation de l'API REST et Données d'identification de sécurité. Pour plus d'informations sur les trousses SDK, voir Trousses SDK et interface de ligne de commande.

Utilisez les opérations d'API suivantes pour surveiller l'état des demandes de travail :