Gestionar operaciones de larga duración

En esta página se describe cómo gestionar el ciclo de vida de una operación de larga duración (OLD) de la API Video Stitcher.

Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar mucho tiempo en completarse. Por ejemplo, la API Video Stitcher crea un LRO cada vez que llamas a projects.locations.liveConfigs.create. La LRO monitoriza el estado del trabajo de procesamiento.

Puedes usar los métodos projects.locations.operations que proporciona la API Video Stitcher para comprobar el estado de las operaciones de larga duración. También puedes listar, cancelar o eliminar LROs.

Las operaciones de larga duración se gestionan a nivel de Google Cloud proyecto y ubicación. Cuando hagas una solicitud a la API, incluye el Google Cloud proyecto y la ubicación en la que se está ejecutando la operación de larga duración.

El registro de una operación de larga duración se conserva durante aproximadamente 30 días después de que finalice, lo que significa que no puedes ver ni enumerar una operación de larga duración después de ese periodo.

Obtener detalles sobre una operación de larga duración

Supongamos que has creado una configuración en directo. El valor name de la respuesta muestra que la API Video Stitcher ha creado una operación de larga duración llamada projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID.

Para comprobar si se ha creado el endpoint de entrada, usa el método projects.locations.operations.get. Si la respuesta contiene "done": false, repite el comando hasta que la respuesta contenga "done": true. Esta operación puede tardar unos minutos en completarse.

También puedes obtener el nombre de la LRO enumerando las operaciones de larga duración.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: tu número de proyecto; se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos. Google Cloud
  • LOCATION: la ubicación de los datos. Usa una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID: el identificador de la operación

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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"
  }
}

Si la operación falla, recibirás información sobre el error en forma de objeto error para ayudarte a solucionar el problema.

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

Crear una lista de operaciones de larga duración

Para obtener una lista con todas las operaciones de una ubicación concreta, usa el método projects.locations.operations.list.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de las operaciones. Usa una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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"
      }
    }
  ]
}

Cancelar una operación de larga duración

Para iniciar la cancelación asíncrona de una operación de larga duración, usa el método projects.locations.operations.cancel. El servidor hace todo lo posible para cancelar la operación, pero no se garantiza que se realice correctamente.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de la operación. Usa una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID: el identificador de la operación

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir un objeto JSON vacío como respuesta:
{}

Eliminar una operación de larga duración

Para eliminar una operación de larga duración completada, usa el método projects.locations.operations.delete. Este método indica que el cliente ya no está interesado en el resultado de la operación. No se cancela la operación.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: número de tu proyecto. Google Cloud Se encuentra en el campo Número de proyecto de la página Configuración de gestión de identidades y accesos.
  • LOCATION: la ubicación de la operación. Usa una de las regiones admitidas.
    Mostrar ubicaciones
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID: el identificador de la operación

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir un objeto JSON vacío como respuesta:
{}