Faça a gestão de operações de longa duração

Esta página descreve como gerir o ciclo de vida de uma operação de longa duração (LRO) da API Video Stitcher.

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 Video Stitcher cria um LRO sempre que chama projects.locations.liveConfigs.create. O LRO acompanha o estado da tarefa de processamento.

Pode usar os métodos projects.locations.operations que a API Video Stitcher oferece para verificar o estado das 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 uma LRO é mantido durante aproximadamente 30 dias após a conclusão da LRO, o que significa que não pode ver nem listar uma LRO após esse período.

Veja detalhes acerca de uma operação de longa duração

Suponhamos que criou uma configuração em direto. O valor name na resposta mostra que a API Video Stitcher criou uma LRO denominada projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.

Para verificar se o ponto final de entrada foi criado, use o método projects.locations.operations.get. 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_NUMBER: o número do seu Google Cloud projeto; encontra-se no campo Número do projeto na página Definições de IAM
  • LOCATION: a localização dos dados; use uma das regiões suportadas
    Mostrar localizações
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID: o identificador da operação

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.common.OperationMetadata",
    "createTime": CREATE_TIME,
    "endTime": END_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
    "verb": "create",
    "cancelRequested": false,
    "apiVersion": "v1"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.LiveConfig",
    "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
    "sourceUri": "SOURCE_LIVESTREAM_URI",
    "adTagUri": "AD_TAG_URI",
    "state": "READY",
    "adTracking": "CLIENT",
    "defaultSlate": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID",
    "stitchingPolicy": "CUT_CURRENT",
    "defaultAdBreakDuration": "30s"
  }
}

Se a operação falhar, recebe informações de erro sob a forma de um objeto error para ajudar na resolução de problemas.

{
  "error": {
    "code": 404,
    "message": "got status code 403 when fetching playlist from URI \"https://example.com/manifest.m3u8\"",
    "status": "NOT_FOUND"
  }
}

Apresente operações de longa duração

Para listar todas as operações numa determinada localização, use o método projects.locations.operations.list.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_NUMBER: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
  • LOCATION: a localização das operações; use uma das regiões suportadas
    Mostrar localizações
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "operations": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "endTime": END_TIME,
        "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID,
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/my-other-operation",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "endTime": END_TIME,
        "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/my-other-live-config",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.LiveConfig",
        "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/my-other-live-config",
        "sourceUri": "SOURCE_LIVESTREAM_URI",
        "adTagUri": "AD_TAG_URI",
        "state": "READY",
        "adTracking": "SERVER",
        "defaultSlate": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID",
        "stitchingPolicy": "CUT_CURRENT",
        "defaultAdBreakDuration": "30s"
      }
    }
  ]
}

Cancele uma operação de longa duração

Para iniciar o cancelamento assíncrono numa operação de longa duração, use o método projects.locations.operations.cancel. 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_NUMBER: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
  • LOCATION: a localização da operação; use uma das regiões suportadas
    Mostrar localizações
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID: o identificador da operação

Para enviar o seu pedido, expanda uma destas opções:

Deve receber um objeto JSON vazio como resposta:
{}

Elimine uma operação de longa duração

Para eliminar uma operação de longa duração concluída, use o método projects.locations.operations.delete. 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_NUMBER: o número do seu Google Cloud projeto. Este encontra-se no campo Número do projeto na página Definições do IAM
  • LOCATION: a localização da operação; use uma das regiões suportadas
    Mostrar localizações
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID: o identificador da operação

Para enviar o seu pedido, expanda uma destas opções:

Deve receber um objeto JSON vazio como resposta:
{}