Demandes de travail asynchrones

Cette rubrique décrit les demandes de travail asynchrones pour des opérations de longue durée sur les services Oracle Cloud Infrastructure. Elle fournit également des conseils sur l'obtention du statut de la demande et l'inspection de la réponse pour permettre le filtrage des ressources concernées.

Aperçu

Les appels d'API aux services Oracle Cloud Infrastructure peuvent lancer des opérations à longue durée qui ne terminent pas la demande du client avant qu'une réponse soit retournée. Dans ces cas, le service génère une demande de travail asynchrone qui permet de voir la progression des opérations asynchrones à longue durée. La réponse à l'appel de l'API REST contient un ID demande de travail dans l'en-tête opc-work-request-id, qui vous permet de surveiller sa progression et son statut. La demande de travail reste dans une file d'attente tant que l'opération n'est pas terminée.

Vous pouvez surveiller le statut de la demande de travail à tout moment en appelant GetWorkRequest et en transmettant l'ID demande 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 chacune sont fournis dans la section Pour plus d'informations.

Deux fonctions de la réponse à la demande présentent un intérêt particulier : le statut de la demande de travail et une liste des ressources qui sont affectées par la demande de travail. Le statut est important car les demandes de travail asynchrones doivent savoir si une opération est terminée, est toujours en cours d'exécution ou si elle a échoué.

Pour extraire des informations sur les échecs ou les erreurs de demande de travail, chaque service fournit des API permettant d'extraire des informations sur les erreurs et les journaux. Pour des liens vers la documentation de référence des API pour chaque service, consultez la section Pour plus d'informations.

Lorsqu'une opération de demande de travail a une incidence sur plusieurs ressources, il est également important d'avoir une liste des ressources concernées, ainsi que les attributs entityType et actionType de chacune.

Statut de demande de travail

Les demandes de travail asynchrones vous permettent de surveiller leur progression en fournissant un attribut de statut sur l'objet WorkRequest. Chaque service pris en charge fournit sa propre API pour l'obtention du statut, comme indiqué dans les sections suivantes.

Note

Une classe ContainerEngineWaiters vous permet de créer un rappel à l'aide de la méthode forWorkRequest. Utilisez cette API pour transférer un avis lorsque le statut d'une opération change, par exemple, de IN_PROGRESS à COMPLETED.

Le tableau suivant répertorie les attributs de statut pris en charge par l'objet WorkRequest sur les services respectifs.

Service Attributs de statut
Application Performance Monitoring
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Service de récupération autonome
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Service de mégadonnées
  • CREATING
  • ACTIVE
  • UPDATING
  • SUSPENDING
  • SUSPENDED
  • RESUMING
  • DELETING
  • DELETED
  • FAILED
Plate-forme de chaîne de blocs
  • ACCEPTED
  • IN PROGRESS
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Groupes de positionnement de grappe
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Service de calcul
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Centre de connecteurs
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Container Engine pour Kubernetes
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Gestion de contenu
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Gestion de bases de données
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Base de données OCI avec PostgreSQL
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Catalogue de données
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Intégration de données
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Étiquette de données
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • SUCCEEDED
  • CANCELING
  • CANCELED
  • FAILED
Science des données
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Base de données
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
Migration de base de données
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
DevOps
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Récupération après sinistre de pile complète
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • CANCELING
  • CANCELED
  • SUCCEEDED
  • FAILED
  • NEEDS_ATTENTION
Autonomous Database distribué à l'échelle mondiale
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
GoldenGate
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELLED
Service IAM
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Integration
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Gestion Java
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • CANCELING
  • CANCELED
  • FAILED
Équilibreur de charge
  • CREATING
  • FAILED
  • ACTIVE
  • DELETING
  • DELETED
Logging Analytics pour LogAnalyticsQueryJobWorkRequest
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • CANCELLED
  • FAILED
Logging Analytics pour LogAnalyticsStorageWorkRequest
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELED
Logging Analytics pour LogAnalyticsConfigWorkRequest
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
Agent de gestion
  • CREATED
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Service de pare-feu de réseau
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Stockage d'objets
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • COMPLETED
  • CANCELING
  • CANCELED
Pont vers Oracle Cloud
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Oracle Cloud Migrations
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
  • NEEDS_ATTENTION
Centre de gestion du système d'exploitation
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Automatisation des processus
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
File d'attente
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Gestionnaire de ressources
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
Ordinateurs de bureau sécurisés
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Maillage de services
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • WAITING
  • CANCELING
  • CANCELED

Filtrage de la réponse à la demande

Vous devez parfois savoir quelles ressources sont touchées par une demande de travail asynchrone particulière. Dans les cas où la réponse à la demande comprend seulement une ou deux ressources touchées, le corps de la réponse à la demande est probablement suffisant. En revanche, lorsqu'une réponse à une demande a une incidence sur un grand nombre de ressources, vous devez filtrer la réponse pour identifier les ressources qui vous intéressent.

Le filtrage des ressources listées dans une réponse à une demande de travail repose sur deux attributs du type WorkRequestResource : entityType et actionType.

  • entityType : Représente le type de ressource touchée par la demande de travail. Il s'agit d'un attribut facultatif, mais chaque ressource ne peut avoir qu'un seul attribut entityType.
  • actionType : Indique comment la ressource spécifiée est touchée par l'opération associée à la demande de travail. Chaque service spécifie une liste fixe de valeurs actionType pouvant être autorisées (affichées dans les sections suivantes).

Pour obtenir des informations sur les ressources d'une demande de travail, appelez GetWorkRequest et transmettez l'ID demande de travail. L'appel retourne une réponse dans le format JSON. Voici un exemple d'appel de GetWorkRequest sur le service Stockage d'objets.

{
    operationType: "COPY_OBJECT",
    status: "IN_PROGRESS",
    id: "f54527d6-029b-4221-9046-a811b7686202",
    resources: [
        {
            entityType: "object",
            actionType: "READ",
            entityUri: "/n/mynamespace/b/backups/o/myobject"
        },
        {
            entityType: "object",
            actionType: "WRITTEN",
            entityUri: "/n/mynamespace/b/backups/o/copyofmyobject"
        },
    ],
    timeAccepted: 2017-10-13T17:23:46.000Z,
    timeStarted: 2017-10-13T17:23:52.198Z,
    percentComplete: 10.0
}
Note

Différents services fournissent des réponses légèrement différentes. 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 chacune sont fournis dans la section Pour plus d'informations.

Le tableau suivant liste les types d'entité et les types d'action pris en charge par les services Oracle Cloud Infrastructure.

Nom du service Opération entityType actionType
Application Performance Monitoring

CreateApmDomain

UpdateApmDomain

DeleteApmDomain

GenerateDataKeys

RemoveDataKeys

apm-domains

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

Service de récupération autonome

CreateProtectionPolicy

UpdateProtectionPolicy

DeleteProtectionPolicy

ChangeProtectionPolicyCompartment

CreateRecoveryServiceSubnet

UpdateRecoveryServiceSubnet

DeleteRecoveryServiceSubnet

ChangeRecoveryServiceSubnetCompartment

CreateProtectedDatabase

UpdateProtectedDatabase

DeleteProtectedDatabase

FetchProtectedDatabaseConfiguration

ChangeProtectedDatabaseCompartment

protectedDatabase

protectionPolicy

recoveryServiceSubnet

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Plate-forme de chaîne de blocs

CreateBlockchainPlatform

UpdateBlockchainPlatform

DeleteBlockchainPlatform

ScaleBlockchainPlatform

StopBlockchainPlatform

StartBlockchainPlatform

instance

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

Groupes de positionnement de grappe

CreateClusterPlacementGroup

UpdateClusterPlacementGroup

DeleteClusterPlacementGroup

ChangeClusterPlacementGroupCompartment

clusterplacementgroup

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Container Engine pour Kubernetes

CreateCluster

DeleteCluster

UpdateCluster

CreateNodePool

DeleteNodePool

UpdateNodePool

cluster

nodepool

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

CANCELING

CANCELED

Gestion de contenu

CreateOceInstance

DeleteOceInstance

UpdateOceInstance

oceInstance

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

CANCELING

CANCELED

Gestion de bases de données

ChangeDbManagementPrivateEndpointCompartment

CreateDbManagementPrivateEndpoint

DeleteDbManagementPrivateEndpoint

GetDbManagementPrivateEndpoint

ListDbManagementPrivateEndpoints

UpdateDbManagementPrivateEndpoint

private-endpoints

CreateWorkspace

DeleteWorkspace

ChangeCompartment

StartWorkspace

StopWorkspace

Migration de base de données

CreateMigration

CloneMigration

EvaluateMigration

StartMigration

UpdateMigration

DeleteMigration

CreateConnection

UpdateConnection

DeleteConnection

DeleteAgent

odms-connection

odms-migration

odms-agent

ACTIVE

INACTIVE

ACCEPTED

IN_PROGRESS

WAITING

SUCCEEDED

FAILED

Base de données OCI avec PostgreSQL

CreateBackup

UpdateBackup

DeleteBackup

ChangeBackupCompartment

CreateDbSystem

UpdateDbSystem

DeleteDbSystem

ChangeDbSystemCompartment

Catalogue de données

CreateCatalog

DeleteCatalog

ChangeCatalogCompartment

catalog

CREATED

UPDATED

DELETED

IN_PROGRESS

MOVED

Intégration de données

CreateWorkspace

DeleteWorkspace

ChangeCompartment

StartWorkspace

StopWorkspace

disworkspace

CREATED

UPDATED

DELETED

MOVED

IN_PROGRESS

FAILED

Étiquette de données

CreateDataset

DeleteDataset

ChangeDatasetCompartment

GenerateDatasetRecords

SnapshotDataset

AddDatasetLabels

RemoveDatasetLabels

RenameDatasetLabels

datalabelingdataset

ACCEPTED

IN_PROGRESS

WAITING

SUCCEEDED

CANCELING

CANCELED

FAILED

Science des données

CreateNotebookSession

DeleteNotebookSession

DeleteProject

NotebookSession

Project

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

CANCELING

CANCELED

DevOps

CreateProject

UpdateProject

ChangeProjectCompartment

DeleteProject

CreateDeployEnvironment

UpdateDeployEnvironment

DeleteDeployEnvironment

CreateDeployArtifact

UpdateDeployArtifact

DeleteDeployArtifact

CreateDeployPipeline

CreateDeployStage

UpdateDeployPipeline

UpdateDeployStage

DeleteDeployPipeline

DeleteDeployStage

CreateDeployment

UpdateDeployment

CancelDeployment

Project

DeployEnvironment

DeployArtifact

DeployPipeline

DeployStage

Deployment

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

CANCELING

CANCELED

Récupération après sinistre de pile complète

CreateDrProtectionGroup

UpdateDrProtectionGroup

DeleteDrProtectionGroup

ChangeDrProtectionGroupCompartment

AssociateDrProtectionGroup

DisassociateDrProtectionGroup

UpdateDrProtectionGroupRole

CreateDrPlan

UpdateDrPlan

DeleteDrPlan

CreateDrPlanExecution

UpdateDrPlanExecution

DeleteDrPlanExecution

RetryDrPlanExecution

IgnoreDrPlanExecution

CancelDrPlanExecution

PauseDrPlanExecution

ResumeDrPlanExecution

DrProtectionGroup

DrPlan

DrPlanExecution

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Autonomous Database distribué à l'échelle mondiale

ListShardedDatabases

GetShardedDatabase

GenerateWallet

UpdateShardedDatabase

ValidateNetwork

StartShardedDatabase

StopShardedDatabase

ChangeShardedDatabaseCompartment

CreateShardedDatabase

DeleteShardedDatabase

ChangePrivateEndpointCompartment

CreatePrivateEndpoint

DeletePrivateEndpoint

GetPrivateEndpoint

UpdatePrivateEndpoint

ListPrivateEndpoints

OsdShardedDatabase

OsdPrivateEndpoint

ACCEPTED

IN_PROGRESS

WAITING

FAILED

SUCCEEDED

CANCELING

CANCELED

GoldenGate

CreateDeployment

DeleteDeployment

StartDeployment

StopDeployment

UpdateDeployment

UpgradeDeployment

ChangeDeploymentCompartment

CreateDatabaseRegistration

UpdateDatabaseRegistration

DeleteDatabaseRegistration

ChangeDatabaseRegistrationCompartment

CreateDeploymentBackup

DeleteDeploymentBackup

RestoreDeployment

Deployment

DatabaseRegistration

DeploymentBackup

CREATING

UPDATING

ACTIVE

INACTIVE

DELETING

DELETED

FAILED

Integration

CreateIntegrationInstance

DeleteIntegrationInstance

GetIntegrationInstance

StartIntegrationInstance

StopIntegrationInstance

UpdateIntegrationInstance

Note : StopIntegrationInstance et StartIntegrationInstance ne sont pris en charge que dans Oracle Integration Génération 2.

instance

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Équilibreur de charge

CreateLoadBalancer

UpdateLoadBalancer

DeleteLoadBalancer

LoadBalancer

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

Agent de gestion DeployPlugins managementAgent

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

Service de pare-feu de réseau

CreateNetworkFirewall

UpdateNetworkFirewall

DeleteNetworkFirewall

ChangeNetworkFirewallCompartment

CreateNetworkFirewallPolicy

UpdateNetworkFirewallPolicy

DeleteNetworkFirewallPolicy

ChangeNetworkFirewallPolicyCompartment

NetworkFirewall

NetworkFirewallPolicy

  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Stockage d'objets CopyObject object

READ

WRITTEN

Pont vers Oracle Cloud

CreateEnvironment

UpdateEnvironment

DeleteEnvironment

ChangeEnvironmentCompartment

CreateAgent

UpdateAgent

DeleteAgent

ChangeAgentCompartment

CreateAgentDependency

UpdateAgentDependency

DeleteAgentDependency

ChangeAgentDependencyCompartment

CreateInventory

DeleteInventory

ImportInventory

DeleteAssetSource

RefreshAssetSource

CreateAssetSource

UpdateAssetSource

ocbworkrequest

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATEDFAILED

Oracle Cloud Migrations

CreateMigration

UpdateMigration

RefreshMigration

DeleteMigration

ChangeMigrationCompartment

StartAssetReplication

StartMigrationReplication

CreateReplicationSchedule

UpdateReplicationSchedule

DeleteReplicationSchedule

ChangeReplicationScheduleCompartment

CreateMigrationPlan

UpdateMigrationPlan

DeleteMigrationPlan

ChangeMigrationPlanCompartment

RefreshMigrationPlan

ExecuteMigrationPlan

RefreshMigrationAsset

CreateMigrationAsset

DeleteMigrationAsset

CreateTargetAsset

UpdateTargetAsset

DeleteTargetAsset

ocmworkrequest

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATEDFAILED

Centre de gestion du système d'exploitation

AttachManagedInstancesToLifecycleStage

AttachManagedInstancesToManagedInstanceGroup

AttachSoftwareSourcesToManagedInstance

AttachSoftwareSourcesToManagedInstanceGroup

DeleteLifecycleEnvironment

DeleteManagedInstanceGroup

DetachManagedInstancesFromLifecycleStage

DetachManagedInstancesFromManagedInstanceGroup

DetachSoftwareSourcesFromManagedInstance

DisableModuleStreamOnManagedInstance

DisableModuleStreamOnManagedInstanceGroup

EnableModuleStreamOnManagedInstance

EnableModuleStreamOnManagedInstanceGroup

InstallModuleStreamProfileOnManagedInstance

InstallModuleStreamProfileOnManagedInstanceGroup

InstallPackagesOnManagedInstance

InstallPackagesOnManagedInstanceGroup

InstallWindowsUpdatesOnManagedInstance

InstallAllWindowsUpdatesOnManagedInstancesInCompartment

InstallWindowsUpdatesOnManagedInstanceGroup

ManageModuleStreamsOnManagedInstance

ManageModuleStreamsOnManagedInstanceGroup

PromoteSoftwareSourceToLifecycleStage

RefreshSoftwareOnManagedInstance

RemoveModuleStreamProfileFromManagedInstance

RemoveModuleStreamProfileFromManagedInstanceGroup

RemovePackagesFromManagedInstance

RemovePackagesFromManagedInstanceGroup

Tâche programmée/RunScheduledJobNow

SwitchModuleStreamOnManagedInstance

SynchronizeMirrors

SynchronizeSingleMirrors

UpdateAllPackagesOnManagedInstanceGroup

UpdateAllPackagesOnManagedInstancesInCompartment

UpdateManagedInstance

UpdateManagementStation

UpdatePackagesOnManagedInstance

UpdateSoftwareSource

managementagent

osmhlifecycleenvironment

osmhlifecyclestage

osmhmanagedinstancegroup

osmhmanagementstation

osmhsoftwaresource

ACCEPTED

IN_PROGRESS

SUCCEEDED

FAILED

CANCELING

CANCELED

Automatisation des processus

CreateOpaInstance

UpdateOpaInstance

DeleteOpaInstance

ChangeOpaInstanceCompartment

instance

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

File d'attente

CreateQueue

UpdateQueue

PurgeQueue

DeleteQueue

ChangeQueueCompartment

Gestionnaire de ressources

ChangeStackCompartment

CreatePrivateEndpoint

CreateStack

DeletePrivateEndpoint

DetectStackDrift

UpdatePrivateEndpoint

ormprivateendpoint

ormstack

CREATED

UPDATED

DELETED

IN_PROGRESS

Ordinateurs de bureau sécurisés

CreateDesktopPool

UpdateDesktopPool

DeleteDesktopPool

ChangeDesktopPoolCompartment

StartDesktopPool

StopDesktopPool

DeleteDesktop

UpdateDesktop

StartDesktop

StopDesktop

desktop

desktoppool

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Maillage de services

CreateMesh

UpdateMesh

DeleteMesh

MoveMesh

CreateAccessPolicy

UpdateAccessPolicy

DeleteAccessPolicy

MoveAccessPolicy

CreateVirtualService

UpdateVirtualService

DeleteVirtualService

MoveVirtualService

CreateVirtualServiceRouteTable

UpdateVirtualServiceRouteTable

DeleteVirtualServiceRouteTable

MoveVirtualServiceRouteTable

CreateVirtualDeployment

UpdateVirtualDeployment

DeleteVirtualDeployment

MoveVirtualDeployment

CreateIngressGateway

UpdateIngressGateway

DeleteIngressGateway

MoveIngressGateway

CreateIngressGatewayRouteTable

UpdateIngressGatewayRouteTable

DeleteIngressGatewayRouteTable

MoveIngressGatewayRouteTable

AccessPolicy

IngressGateway

IngressGatewayRouteTable

Mesh

VirtualDeployment

VirtualService

VirtualServiceRouteTable

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Exemple de demande/réponse

Voici une séquence d'appels d'API REST permettant la création d'une grappe, qui est une opération de longue durée commune. Le programme d'appel extrait l'ID demande de travail de la réponse à l'appel POST initial, puis scrute périodiquement l'élément WorkRequest afin de déterminer le statut de l'opération. La séquence de demande/réponse qui suit décrit le flux de travail :

  1. L'utilisateur émet un appel d'API CreateCluster.
  2. Le service répond avec le code de statut 202, indiquant que la demande a été acceptée et retourne un ID demande de travail dans l'en-tête opc-work-request-id.
  3. Ensuite, l'utilisateur émet un appel GET sur l'ID demande de travail pour obtenir le statut de la demande de travail.
  4. Le service répond avec le code de statut 200, indiquant dans le corps de la réponse que l'opération CLUSTER_CREATE a le statut ACCEPTED.
  5. Avec une scrutation continue, nous voyons un autre appel GET pour la demande de travail.
  6. Le service répond avec le code de statut 200. Le corps de la réponse indique que l'opération a réussi (SUCCEEDED).

Étape 1. Appel d'API initial pour lancer une opération CLUSTER_CREATE.

POST https://containerengine.eu-frankfurt-1.oraclecloud.com/20180222/clusters
Accept: application/json
authorization: <Redacted>
content-length: 480
Content-Type: application/json
date: Mon, 02 Jul 2018 18:20:03 GMT
host: containerengine.eu-frankfurt-1.oraclecloud.com
opc-client-info: Oracle-JavaSDK/1.2.42-preview1-SNAPSHOT
opc-request-id: D7A390ED909C47038C438BA3629FB612
User-Agent: Oracle-JavaSDK/1.2.42-preview1-SNAPSHOT (Mac OS X/10.13.5; Java/1.8.0_172; Java HotSpot(TM) 64-Bit Server VM/25.172-b11)
x-content-sha256: S8U8OKQHyTLNViAzgexkjxvF4ctncJJHTjuRfXn0ya4={
   "name":"JavaSDK.CRUD",
   "compartmentId":"ocid1.compartment.oc1..<unique_ID>",
   "vcnId":"ocid1.vcn.oc1.eu-frankfurt-1.<unique_ID>",
   "kubernetesVersion":"v1.10.3",
   "options":{"serviceLbSubnetIds":["ocid1.subnet.oc1.eu-frankfurt-1.<unique_ID>",
   "ocid1.subnet.oc1.eu-frankfurt-1.<unique_ID>"]}}

Étape 2. Réponse à l'appel d'API initial, qui contient l'ID demande de travail dans Opc-Work-Request-Id header.

202
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: opc-work-request-id
Content-Length: 0
Date: Mon, 02 Jul 2018 18:20:04 GMT
Opc-Request-Id: D7A390ED909C47038C438BA3629FB612/33EEDCAAB2E84508B34AA75CD0FD86F4/8261D1CC89814E9BB934440A1F43DA09
Opc-Work-Request-Id: ocid1.clustersworkrequest.oc1.eu-frankfurt-1.exampleuniqueID
Uri: /20180222/clusters
Vary: Accept-Encoding
X-Rate-Limit-Duration: 1
X-Rate-Limit-Limit: 16.70
X-Rate-Limit-Request-Forwarded-For: 10.237.10.0, 10.237.9.51
X-Rate-Limit-Request-Remote-Addr: 10.237.9.51:53077

Étape 3. Comme il s'agit d'une opération de longue durée, l'utilisateur scrute régulièrement la demande de travail au moyen d'un appel GET pour déterminer son statut.

GET https://containerengine.eu-frankfurt-1.oraclecloud.com/20180222/workRequests/<clusters_work_request_OCID>
Accept: application/json
authorization: <Redacted>
date: Mon, 02 Jul 2018 18:20:04 GMT
host: containerengine.eu-frankfurt-1.oraclecloud.com
opc-client-info: Oracle-JavaSDK/1.2.42-preview1-SNAPSHOT
opc-request-id: E8F20DAC443346B3B0EA599F367EE294
User-Agent: Oracle-JavaSDK/1.2.42-preview1-SNAPSHOT (Mac OS X/10.13.5; Java/1.8.0_172; Java HotSpot(TM) 64-Bit Server VM/25.172-b11)

Étape 4. L'appel GET retourne la réponse suivante, qui indique dans le corps de la réponse que l'opération CLUSTER_CREATE a le statut ACCEPTED.

200
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: opc-work-request-id
Content-Length: 717
Content-Type: application/json
Date: Mon, 02 Jul 2018 18:20:05 GMT
Etag: 56a41efaf33d81a54933495ee910c24d7bce7a83adf18810f95e07bdd2055805
Opc-Request-Id: E8F20DAC443346B3B0EA599F367EE294/8B19C9FC3B4442CEA14685D1973D0856/0BA60B0711764DE4A4373071632708C7
Retry-After: 30
Uri: /20180222/workRequests/_id_
Vary: Accept-Encoding
X-Rate-Limit-Duration: 1
X-Rate-Limit-Limit: 16.70
X-Rate-Limit-Request-Forwarded-For: 10.237.10.0, 10.237.9.51
X-Rate-Limit-Request-Remote-Addr: 10.237.9.51:43533
{
  "id": "ocid1.clustersworkrequest.oc1.eu-frankfurt-1.exampleuniqueID",
  "operationType": "CLUSTER_CREATE",
  "status": "ACCEPTED",
  "compartmentId": "ocid1.compartment.oc1..exampleuniqueID",
  "resources": [
    {
      "actionType": "IN_PROGRESS",
      "entityType": "cluster",
      "identifier": "ocid1.cluster.oc1.eu-frankfurt-1.exampleuniqueID",
      "entityUri": "/clusters/ocid1.cluster.oc1.eu-frankfurt-1.exampleuniqueID"
    }
  ],
  "timeAccepted": "2018-07-02T18:20:05Z",
  "timeStarted": null,
  "timeFinished": null
}

Étape 5. L'opération se poursuit et l'utilisateur continue de scruter la demande de travail à l'aide de la méthode GET.

GET https://containerengine.eu-frankfurt-1.oraclecloud.com/20180222/workRequests/<clusters_work_request_OCID>
Accept: application/json
authorization: <Redacted>
date: Mon, 02 Jul 2018 18:24:13 GMT
host: containerengine.eu-frankfurt-1.oraclecloud.com
opc-client-info: Oracle-JavaSDK/1.2.42-preview1-SNAPSHOT
opc-request-id: 64595B97E39A471A886DA29966BB6B1D
User-Agent: Oracle-JavaSDK/1.2.42-preview1-SNAPSHOT (Mac OS X/10.13.5; Java/1.8.0_172; Java HotSpot(TM) 64-Bit Server VM/25.172-b11)

Étape 6. Le dernier appel GET a produit la réponse suivante, qui indique que l'opération est terminée. Notez que entityType a pour valeur "cluster" et que actionType a pour valeur "CREATED".

200
Access-Control-Allow-Methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: opc-work-request-id
Content-Length: 750
Content-Type: application/json
Date: Mon, 02 Jul 2018 18:24:14 GMT
Etag: 023d2a8ccb6d893fa8c875f64652353f21d22607825f49eeeb15b5394ae24918
Opc-Request-Id: 64595B97E39A471A886DA29966BB6B1D/3A81140991C94794AF365016E31DBE82/6245FBD8C25842B6BDF15187EA6ADB21
Uri: /20180222/workRequests/_id_
Vary: Accept-Encoding
X-Rate-Limit-Duration: 1
X-Rate-Limit-Limit: 16.70
X-Rate-Limit-Request-Forwarded-For: 10.237.3.0, 10.237.40.183
X-Rate-Limit-Request-Remote-Addr: 10.237.40.183:55856

{
  "id": "ocid1.clustersworkrequest.oc1.eu-frankfurt-1.exampleuniqueID",
  "operationType": "CLUSTER_CREATE",
  "status": "SUCCEEDED",
  "compartmentId": "ocid1.compartment.oc1..exampleuniqueID",
  "resources": [
    {
      "actionType": "CREATED",
      "entityType": "cluster",
      "identifier": "ocid1.cluster.oc1.eu-frankfurt-1.exampleuniqueID",
      "entityUri": "/clusters/ocid1.cluster.oc1.eu-frankfurt-1.exampleuniqueID"
    }
  ],
  "timeAccepted": "2018-07-02T18:20:05Z",
  "timeStarted": "2018-07-02T18:20:10Z",
  "timeFinished": "2018-07-02T18:24:01Z"
}

Pour plus d'informations