Esta página descreve como gerir o ciclo de vida de uma operação de longa duração (LRO) da API Financial Services.
As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar muito tempo a serem concluídas. Por exemplo, a API Financial Services cria um LRO sempre que chama projects.locations.instances.create.
O LRO acompanha o estado da tarefa de processamento.
Pode usar os métodos projects.locations.operations que a API Financial Services fornece para verificar o estado dos LROs. Também pode listar, cancelar ou eliminar LROs.
As LROs são geridas ao Google Cloud nível do projeto e da localização. Quando fizer um pedido à API, inclua o Google Cloud projeto e a localização em que a LRO está a ser executada.
O registo de um LRO é mantido durante aproximadamente 30 dias após a conclusão do LRO. Não pode ver nem listar um LRO após esse ponto.
Veja detalhes acerca de uma operação de longa duração
Suponhamos que criou uma instância.
O valor name na resposta mostra que a API Financial Services criou uma LRO denominada projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID.
Use o método
projects.locations.operations.get
para verificar se a instância foi criada. Se a resposta contiver "done": false, repita o comando até que a resposta contenha "done": true.
Esta operação pode demorar alguns minutos a ser concluída.
Também pode obter o nome da LRO listando as operações de longa duração.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID: o ID do projeto indicado nas definições de IAM Google CloudLOCATION: a localização da instância; use uma das regiões suportadasMostrar localizaçõesus-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
OPERATION_ID: o identificador da operação
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": "2023-03-14T15:52:55.358979323Z",
"endTime": "2023-03-14T16:52:55.358979323Z",
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.Instance",
"name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"state": "ACTIVE",
"kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID"
}
}
Apresente operações de longa duração
Use o método
projects.locations.operations.list
para apresentar uma lista de todas as operações numa determinada localização.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID: o ID do seu Google Cloud projeto indicado nas definições de IAMLOCATION: a localização das operações; use uma das regiões suportadasMostrar localizaçõesus-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{
"operations": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": "2023-03-14T15:52:55.358979323Z",
"endTime": "2023-03-14T16:52:55.358979323Z",
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/engineConfigs/ENGINE_CONFIG_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
},
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/my-other-operation",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": CREATE_TIME,
"endTime": END_TIME,
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.Instance",
"name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"state": "ACTIVE",
"kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID"
}
}
]
}
Cancele uma operação de longa duração
Use o método
projects.locations.operations.cancel
para iniciar o cancelamento assíncrono numa operação de longa duração. O servidor faz o seu melhor para cancelar a operação, mas o sucesso não é garantido.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID: o ID do seu Google Cloud projeto indicado nas definições de IAMLOCATION: a localização da operação; use uma das regiões suportadasMostrar localizaçõesus-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
OPERATION_ID: o identificador da operação
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{}
Elimine uma operação de longa duração
Use o método
projects.locations.operations.delete
para eliminar uma operação de longa duração concluída. Este método indica que o cliente já não tem interesse no resultado da operação. Não cancela a operação.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID: o ID do seu Google Cloud projeto indicado nas definições de IAMLOCATION: a localização da operação; use uma das regiões suportadasMostrar localizaçõesus-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
OPERATION_ID: o identificador da operação
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{}