Solicitações de Serviço Assíncronas

Este tópico descreve solicitações de serviço assíncronas para operações de longa execução em relação aos serviços do Oracle Cloud Infrastructure. Também são fornecidas orientações sobre como obter o status da solicitação e sobre como inspecionar a resposta da solicitação para permitir a filtragem dos recursos afetados.

Visão Geral

As chamadas da API para os serviços do Oracle Cloud Infrastructure podem iniciar operações de longa execução que não concluem a solicitação do cliente antes de uma resposta ser retornada. Nesses casos, o serviço gera uma solicitação de serviço assíncrona que permite a visibilidade do andamento de operações assíncronas e de longa execução. A resposta à chamada da API REST contém um ID de solicitação de serviço no cabeçalho opc-work-request-id, que permite monitorar seu progresso e status. A própria solicitação de serviço permanece em uma fila até que a operação seja concluída.

Você pode monitorar o status da solicitação de serviço a qualquer momento, chamando GetWorkRequest e especificando o ID da solicitação de serviço.

Observação

Alguns serviços do Oracle Cloud Infrastructure, como Compute e Database, são compatíveis com solicitações de serviço usando a API de Solicitações de Serviço, que contém a operação GetWorkRequest.

Alguns serviços oferecem solicitações de serviço compatíveis com a API de serviço, em vez da API de Solicitações de Serviço discutida neste tópico. Essas APIs de serviço incluem operações que funcionam de maneira semelhante à operação GetWorkRequest usada pela API de Solicitações de Serviço.

Para obter detalhes, consulte a documentação de referência da API de solicitação de cada serviço. Os links para cada um são fornecidos na seção Para Obter Mais Informações.

Duas funcionalidades da resposta à solicitação são de interesse específico: o status da solicitação de serviço e uma lista dos recursos afetados pela solicitação de serviço. O status é importante porque as solicitações de serviço assíncronas devem saber quando uma operação foi concluída, ainda está em execução ou se falhou completamente.

Para recuperar informações sobre falhas ou erros da solicitação de serviço, cada serviço fornece APIs para extrair informações sobre erros e logs. Para obter links para a documentação de referência da API de cada um dos serviços, consulte a seção Para Obter Mais Informações.

Nos casos em que uma operação de solicitação de serviço afeta vários recursos, há uma lista dos recursos que a solicitação de serviço afeta, juntamente com os atributos entityType e actionType de cada uma deles.

Status da Solicitação de Serviço

As solicitações de serviço assíncronas permitem que você monitore seu andamento fornecendo um atributo de status no objeto WorkRequest. Cada um dos serviços suportados fornece sua própria API para obter o status, conforme listado nas seções a seguir.

Observação

Há uma classe ContainerEngineWaiters que permite criar um callback usando o método forWorkRequest. Use essa API para encaminhar uma notificação quando o status de uma operação mudar; por exemplo, quando passar de IN_PROGRESS para COMPLETED.

A tabela a seguir lista os atributos de status suportados pelo objeto WorkRequest nos respectivos serviços.

Serviço Atributos de Status
Application Performance Monitoring
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Autonomous Recovery Service
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Big Data Service
  • CREATING
  • ACTIVE
  • UPDATING
  • SUSPENDING
  • SUSPENDED
  • RESUMING
  • DELETING
  • DELETED
  • FAILED
Blockchain Platform
  • ACCEPTED
  • IN PROGRESS
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Serviço Compute
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Hub Conector
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Serviço Container Engine for Kubernetes
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Content Management
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Gerenciamento de Banco de Dados
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
OCI Database com PostgreSQL
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Data Catalog
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Data Integration
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Data Labeling
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • SUCCEEDED
  • CANCELING
  • CANCELED
  • FAILED
Data Science
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Serviço Database
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
Database Migration
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
DevOps
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Full Stack Disaster Recovery
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • CANCELING
  • CANCELED
  • SUCCEEDED
  • FAILED
  • NEEDS_ATTENTION
Autonomous Database Distribuído Globalmente
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
GoldenGate
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELLED
Serviço IAM
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Integration
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Java Management
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • CANCELING
  • CANCELED
  • FAILED
Load Balancer
  • CREATING
  • FAILED
  • ACTIVE
  • DELETING
  • DELETED
Análise de Registro em Log para LogAnalyticsQueryJobWorkRequest
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • CANCELLED
  • FAILED
Análise de Registro em Log para LogAnalyticsStorageWorkRequest
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELED
Análise de Registro em Log para LogAnalyticsConfigWorkRequest
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
Agente de Gerenciamento
  • CREATED
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Network Firewall
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Serviço Object Storage
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • COMPLETED
  • CANCELING
  • CANCELED
Oracle Cloud Bridge
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Oracle Cloud Migrations
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
  • NEEDS_ATTENTION
Hub do Serviço OS Management
  • ACCEPTED
  • IN_PROGRESS
  • SUCCEEDED
  • FAILED
  • CANCELING
  • CANCELED
Process Automation
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Queue
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Serviço Resource Manager
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
Áreas de Trabalho Seguras
  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Service Mesh
  • ACCEPTED
  • IN_PROGRESS
  • FAILED
  • SUCCEEDED
  • WAITING
  • CANCELING
  • CANCELED

Filtrando a Resposta da Solicitação

Às vezes, você precisa saber quais recursos são afetados por determinada solicitação de serviço assíncrona. Nos casos em que a resposta da solicitação inclui apenas um ou dois recursos afetados, o corpo da resposta da solicitação provavelmente é suficiente. No entanto, nos casos em que uma resposta da solicitação afeta muitos recursos, você deve filtrar a resposta para identificar os recursos nos quais está interessado.

A filtragem de recursos listados em uma resposta de solicitação de serviço depende de dois atributos do tipo WorkRequestResource: entityType e actionType.

  • entityType: representa o tipo de recurso que a solicitação de serviço afeta. Esse é um atributo opcional, mas cada recurso pode ter somente um entityType.
  • actionType: representa como o recurso especificado é afetado pela operação associada à solicitação de serviço. Cada serviço especifica uma lista fixa de valores permitidos para actionType (mostrados nas seções a seguir).

Para obter informações sobre recurso em uma solicitação de serviço, chame GetWorkRequest e especifique o ID da solicitação de serviço. A chamada retorna uma resposta no formato JSON. Veja a seguir um exemplo de chamada GetWorkRequest no serviço Object Storage.

{
    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
}
Observação

Os diferentes serviços fornecem respostas um pouco diferentes. Para obter detalhes, consulte a documentação de referência da API de solicitação de cada serviço. Os links para cada um são fornecidos na seção Para Obter Mais Informações.

A tabela a seguir lista os tipos de entidade e os tipos de ação suportados pelos serviços do Oracle Cloud Infrastructure.

Nome do Serviço Operação entityType actionType
Application Performance Monitoring

CreateApmDomain

UpdateApmDomain

DeleteApmDomain

GenerateDataKeys

RemoveDataKeys

apm-domains

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

Autonomous Recovery Service

CreateProtectionPolicy

UpdateProtectionPolicy

DeleteProtectionPolicy

ChangeProtectionPolicyCompartment

CreateRecoveryServiceSubnet

UpdateRecoveryServiceSubnet

DeleteRecoveryServiceSubnet

ChangeRecoveryServiceSubnetCompartment

CreateProtectedDatabase

UpdateProtectedDatabase

DeleteProtectedDatabase

FetchProtectedDatabaseConfiguration

ChangeProtectedDatabaseCompartment

protectedDatabase

protectionPolicy

recoveryServiceSubnet

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Blockchain Platform

CreateBlockchainPlatform

UpdateBlockchainPlatform

DeleteBlockchainPlatform

ScaleBlockchainPlatform

StopBlockchainPlatform

StartBlockchainPlatform

instance

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

Serviço Container Engine for Kubernetes

CreateCluster

DeleteCluster

UpdateCluster

CreateNodePool

DeleteNodePool

UpdateNodePool

cluster

nodepool

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

CANCELING

CANCELED

Content Management

CreateOceInstance

DeleteOceInstance

UpdateOceInstance

oceInstance

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

CANCELING

CANCELED

Gerenciamento de Banco de Dados

ChangeDbManagementPrivateEndpointCompartment

CreateDbManagementPrivateEndpoint

DeleteDbManagementPrivateEndpoint

GetDbManagementPrivateEndpoint

ListDbManagementPrivateEndpoints

UpdateDbManagementPrivateEndpoint

private-endpoints

CreateWorkspace

DeleteWorkspace

ChangeCompartment

StartWorkspace

StopWorkspace

Database Migration

CreateMigration

CloneMigration

EvaluateMigration

StartMigration

UpdateMigration

DeleteMigration

CreateConnection

UpdateConnection

DeleteConnection

DeleteAgent

odms-connection

odms-migration

odms-agent

ACTIVE

INACTIVE

ACCEPTED

IN_PROGRESS

WAITING

SUCCEEDED

FAILED

OCI Database com PostgreSQL

CreateBackup

UpdateBackup

DeleteBackup

ChangeBackupCompartment

CreateDbSystem

UpdateDbSystem

DeleteDbSystem

ChangeDbSystemCompartment

Data Catalog

CreateCatalog

DeleteCatalog

ChangeCatalogCompartment

catalog

CREATED

UPDATED

DELETED

IN_PROGRESS

MOVED

Data Integration

CreateWorkspace

DeleteWorkspace

ChangeCompartment

StartWorkspace

StopWorkspace

disworkspace

CREATED

UPDATED

DELETED

MOVED

IN_PROGRESS

FAILED

Data Labeling

CreateDataset

DeleteDataset

ChangeDatasetCompartment

GenerateDatasetRecords

SnapshotDataset

AddDatasetLabels

RemoveDatasetLabels

RenameDatasetLabels

datalabelingdataset

ACCEPTED

IN_PROGRESS

WAITING

SUCCEEDED

CANCELING

CANCELED

FAILED

Data Science

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

Full Stack Disaster Recovery

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ído Globalmente

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

Observação: StopIntegrationInstance e StartIntegrationInstance são suportadas somente no Oracle Integration Generation 2.

instance

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Load Balancer

CreateLoadBalancer

UpdateLoadBalancer

DeleteLoadBalancer

LoadBalancer

ACCEPTED

IN_PROGRESS

FAILED

SUCCEEDED

Agente de Gerenciamento DeployPlugins managementAgent

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

Network Firewall

CreateNetworkFirewall

UpdateNetworkFirewall

DeleteNetworkFirewall

ChangeNetworkFirewallCompartment

CreateNetworkFirewallPolicy

UpdateNetworkFirewallPolicy

DeleteNetworkFirewallPolicy

ChangeNetworkFirewallPolicyCompartment

NetworkFirewall

NetworkFirewallPolicy

  • ACCEPTED
  • IN_PROGRESS
  • WAITING
  • FAILED
  • SUCCEEDED
  • CANCELING
  • CANCELED
Serviço Object Storage CopyObject object

READ

WRITTEN

Oracle Cloud Bridge

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

Hub do Serviço OS Management

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

Job Programado/RunScheduledJobNow

SwitchModuleStreamOnManagedInstance

SynchronizeMirrors

SynchronizeSingleMirrors

UpdateAllPackagesOnManagedInstanceGroup

UpdateAllPackagesOnManagedInstancesInCompartment

UpdateManagedInstance

UpdateManagementStation

UpdatePackagesOnManagedInstance

UpdateSoftwareSource

managementagent

osmhlifecycleenvironment

osmhlifecyclestage

osmhmanagedinstancegroup

osmhmanagementstation

osmhsoftwaresource

ACCEPTED

IN_PROGRESS

SUCCEEDED

FAILED

CANCELING

CANCELED

Process Automation

CreateOpaInstance

UpdateOpaInstance

DeleteOpaInstance

ChangeOpaInstanceCompartment

instance

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Queue

CreateQueue

UpdateQueue

PurgeQueue

DeleteQueue

ChangeQueueCompartment

Serviço Resource Manager

ChangeStackCompartment

CreatePrivateEndpoint

CreateStack

DeletePrivateEndpoint

DetectStackDrift

UpdatePrivateEndpoint

ormprivateendpoint

ormstack

CREATED

UPDATED

DELETED

IN_PROGRESS

Áreas de Trabalho Seguras

CreateDesktopPool

UpdateDesktopPool

DeleteDesktopPool

ChangeDesktopPoolCompartment

StartDesktopPool

StopDesktopPool

DeleteDesktop

UpdateDesktop

StartDesktop

StopDesktop

desktop

desktoppool

CREATED

UPDATED

DELETED

IN_PROGRESS

RELATED

FAILED

Service Mesh

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

Exemplo de Solicitação/Resposta

Veja a seguir uma sequência de chamadas da API REST para criar um cluster, que é uma operação de longa execução comum. O chamador recupera o ID da solicitação de serviço da resposta para a chamada inicial POST e, em seguida, periodicamente, sonda a WorkRequest para determinar o status da operação. A sequência de solicitação/resposta a seguir ilustra esse workflow:

  1. O usuário emite uma chamada da API CreateCluster.
  2. O serviço responde com o código de status 202, indicando que a solicitação foi aceita, e retorna um ID de solicitação de serviço no cabeçalho opc-work-request-id.
  3. Em seguida, o usuário emite uma chamada GET no ID da solicitação de serviço para obter o status da solicitação de serviço.
  4. O serviço responde com o código de status 200, indicando no corpo da resposta que a operação CLUSTER_CREATE tem o status ACCEPTED.
  5. Com sondagem contínua, vemos outra chamada GET para a solicitação de serviço.
  6. O serviço responde com o código de status 200. O corpo da resposta informa que o status da operação é SUCCEEDED.

Etapa 1. Chamada de API inicial para iniciar uma operação 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>"]}}

Etapa 2. A resposta à chamada de API inicial, que contém o ID da solicitação de serviço em 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

Etapa 3. Como esta é uma operação de longa execução, o usuário periodicamente sonda a solicitação de serviço usando uma chamada GET para determinar seu status.

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)

Etapa 4. A chamada GET retorna a resposta a seguir, que indica no corpo da resposta que a operação CLUSTER_CREATE tem um status 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
}

Etapa 5. A operação continua, e o usuário prossegue sondando a solicitação de serviço usando o método 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)

Etapa 6. A última chamada GET produziu a resposta a seguir, indicando que a operação foi concluída. Observe que entityType é "cluster", e o actionType tem o status "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"
}

Para Obter Mais Informações