Cloud Logging para el Servicio de transferencia de almacenamiento

En esta página, se describe cómo configurar y ver Cloud Logging para los registros del Servicio de transferencia de almacenamiento.

Cloud Logging para el Servicio de transferencia de almacenamiento es compatible con todas las transferencias sin agentes, así como con las transferencias desde el almacenamiento compatible con S3. Para obtener información sobre los registros de transferencia del sistema de archivos, consulta Registros de transferencia del sistema de archivos.

Antes de comenzar

Antes de comenzar, verifica que tengas acceso a Cloud Logging. Recomendamos el rol Visualizador de registros (roles/logging.viewer) de Identity and Access Management. Para obtener más información sobre el acceso de Logging, consulta Control de acceso con IAM.

A continuación, se describe cómo verificar y otorgar el acceso a IAM:

Acciones registrables

Se pueden registrar las siguientes acciones:

  • FIND: Búsqueda de tareas para realizar, como enumerar archivos en un directorio o enumerar objetos en un bucket. No se admite para transferencias desde almacenamiento compatible con S3.
  • COPY: Copia de archivos o de objetos en Cloud Storage.
  • DELETE: Borra archivos o objetos en el origen o el destino.

Para cada acción, puedes optar por registrar los estados de éxito o error.

Habilitar registro

Para habilitar el registro, especifica las acciones y los estados que se registrarán.

gcloud CLI

Cuando crees un trabajo de transferencia con gcloud transfer jobs create, usa las siguientes marcas para habilitar el registro:

gcloud transfer jobs create SOURCE DESTINATION \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed

Debes especificar al menos un valor para cada marca.

REST

Para crear una configuración de registro, usa transferJobs.create con un LoggingConfig:

{
  "name":"transferJobs/myFirstTransfer",
  "status": "ENABLED",
  "projectId": "test-id-001",
  "loggingConfig": {
     "logActions": ["FIND", "DELETE", "COPY"],
     "logActionStates": ["SUCCEEDED", "FAILED"],
  },
  "transferSpec": {
      "awsS3DataSource": {
          "bucketName": "AWS_SOURCE_NAME",
          "awsAccessKey": {
              "accessKeyId": "AWS_ACCESS_KEY_ID",
              "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
          }
      },
      "gcsDataSink": {
           "bucketName": "destination_bucket"
           "path": "foo/bar/"
      },
   }
}

Ajusta loggingConfig para incluir el logActions y el logActionStates específicos que deseas registrar. Por ejemplo, para registrar cuando fallan las acciones de copia y búsqueda, proporciona el siguiente loggingConfig:

"loggingConfig": {
  "logActions": ["COPY", "FIND"],
  "logActionStates": ["FAILED"],
}

Actualiza una configuración de registro

gcloud CLI

Para actualizar la configuración de registro de un trabajo existente, usa las marcas adecuadas con el comando gcloud transfer jobs update:

gcloud transfer jobs update NAME \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed

Para inhabilitar el registro de este trabajo, especifica --clear-log-config:

gcloud transfer jobs update NAME --clear-log-config

REST

Para actualizar la configuración de registro de un trabajo de transferencia existente, usa transferJobs.patch con LoggingConfig:

{
  "projectId: "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": ["FIND", "DELETE", "COPY"],
       "logActionStates": ["SUCCEEDED", "FAILED"],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

El campo updateTransferJobFieldMask es obligatorio y especifica el campo que se actualiza en esta solicitud.

Si quieres inhabilitar el registro de este trabajo, envía un loggingConfig con listas vacías para logActions y logActionStates:

{
  "projectId: "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": [],
       "logActionStates": [],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

Visualiza los registros

Para ver los registros de transferencia, haz lo siguiente:

Consola de Google Cloud

  1. Ve al menú de navegación de Google Cloud y selecciona Logging > Explorador de registros :<br\></br\>

    Ir al Explorador de registros.

  2. Selecciona un proyecto de Google Cloud.

  3. En el menú Actualizar (Upgrade), cambia del Visor de registros heredados a Explorador de registros.

  4. Para filtrar tus registros de modo que solo muestren las entradas del Servicio de transferencia de almacenamiento, escribe storage_transfer_job en el campo de consulta y haz clic en Ejecutar consulta.

  5. En el panel Resultados de la consulta, haz clic en Editar hora para cambiar el período de los resultados mostrados.

Para obtener más información sobre el uso del Explorador de registros, consulta Usa el Explorador de registros.

gcloud CLI

Para usar la CLI de gcloud a fin de buscar registros del Servicio de transferencia de almacenamiento, usa el comando gcloud logging read.

Especifica un filtro para limitar tus resultados a los registros del Servicio de transferencia de almacenamiento.

gcloud logging read "resource.type=storage_transfer_job"

API de Cloud Logging

Usa el método de la API de Cloud Logging entries.list.

Para filtrar tus resultados y incluir solo las entradas relacionadas con el Servicio de transferencia de almacenamiento, usa el campo filter. A continuación, se muestra un objeto de solicitud JSON de muestra.

{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_transfer_job\""
}

Formato de registro de transferencia

En la siguiente sección, se describen los campos para los registros del Servicio de transferencia de almacenamiento.

Todos los campos específicos del Servicio de transferencia de almacenamiento se encuentran dentro de un campo jsonPayload.

FIND acciones

jsonPayload: {
  @type: "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog"
  action: "FIND"
  completeTime: "2021-12-16T18:58:49.344509695Z"
  destinationContainer: {
    gcsBucket: {
      bucket: "my-bucket-2"
    }
    type: "GCS"
  }
  operation: "transferOperations/transferJobs-7876027868280507149--3019866490856027148"
  sourceContainer: {
    gcsBucket: {
      bucket: "my-bucket-1"
    }
    type: "GCS"
  }
  status: {
    statusCode: "OK"
  }
}

Acciones de COPY y DELETE

jsonPayload: {
  @type: "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog"
  action: "COPY"
  completeTime: "2021-12-16T18:59:00.510509049Z"
  destinationObject: {
    gcsObject: {
      bucket: "my-bucket-2"
      objectKey: "README.md"
    }
    type: "GCS"
  }
  operation: "transferOperations/transferJobs-7876027868280507149--3019866490856027148"
  sourceObject: {
    gcsObject: {
      bucket: "my-bucket-1"
      lastModifiedTime: "2021-12-07T16:41:09.456Z"
      md5: "WgnCOIdfCXNTUDpQJSKb2w=="
      objectKey: "README.md"
    }
    type: "GCS"
  }
  status: {
    statusCode: "OK"
  }
}
Campo de registro Descripción
@type El valor es siempre type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Describe la acción de esta tarea en particular. Uno de los siguientes:

  • FIND: buscar trabajo para hacer, como enumerar archivos en un directorio o enumerar objetos en un bucket. No está disponible para transferencias desde el almacenamiento compatible con S3.
  • COPY: Copia de archivos o de objetos en Cloud Storage.
  • DELETE: borrar archivos o objetos en el origen o el destino.
completeTime La marca de tiempo compatible con ISO 8601 en la que se completó la operación.
destinationContainer

Solo está presente para las operaciones FIND.

El contenedor de destino de esta transferencia. Solo los depósitos de Cloud Storage son compatibles con el registro. Contiene dos subcampos:

  • gcsBucket.bucket: El nombre del bucket de destino de Cloud Storage.
  • type: Siempre es GCS
destinationObject

Solo está presente para las operaciones COPY y DELETE.

Información sobre el objeto tal como se escribió en Cloud Storage. Contiene dos subcampos:

  • gcsObject, que contiene dos subcampos, bucket y objectKey. En conjunto, estos definen la ruta de acceso de Cloud Storage del objeto.
  • type siempre es GCS.

Por ejemplo:


destinationObject: {
  gcsObject: {
    bucket: "my-bucket-2"
    objectKey: "README.md"
  }
  type: "GCS"
}
operation El nombre transferOperations completamente calificado.
sourceContainer

Solo está presente para las operaciones FIND.

El contenedor de origen de esta transferencia. Contiene dos subcampos:

  • Una entrada que especifica la ubicación de origen. El campo se nombra según el tipo de fuente. Los campos posibles son los siguientes.
    • awsS3Bucket.bucket: Es el nombre del bucket de AWS S3.
    • azureBlobContainer: Contiene subcampos account y container, que en conjunto definen el URI de almacenamiento de Microsoft Azure Blob.
    • gcsBucket.bucket: El nombre del depósito de Cloud Storage.
    • httpManifest.url: La URL de una lista de URL que especifica los archivos disponibles de forma pública para descargarlos desde un servidor HTTP(S).
  • type: Es uno de AWS_S3, AZURE_BLOB, GCS o HTTP.

Por ejemplo:


sourceContainer: {
  gcsBucket: {
    bucket: "my-bucket-1"
  }
  type: "GCS"
}
sourceObject

Solo está presente para las operaciones COPY y DELETE.

Información sobre el objeto de origen. Contiene dos subcampos:

  • Una entrada específica para el host del objeto de origen. El campo se asigna según el tipo de fuente y contiene subcampos para los metadatos. Los campos posibles son los siguientes.
    • awsS3Object: Un objeto de AWS S3.
    • azureBlob: Un archivo en Azure Blob Storage.
    • gcsObject: Un objeto de Cloud Storage
    • httpFile: un archivo especificado por una lista de URL.
  • type: Es uno de AWS_S3, AZURE_BLOB, GCS o HTTP.

Por ejemplo:


sourceObject: {
  gcsObject: {
    bucket: "my-bucket-1"
    lastModifiedTime: "2021-12-07T16:41:09.456Z"
    md5: "WgnCOIdfCXNTUDpQJSKb2w=="
    objectKey: "README.md"
  }
  type: "GCS"
}
status

El estado de la acción. Si status.statusCode es OK, la acción se realizó correctamente. De lo contrario, la acción falló. Los campos status.errorType y status.errorMessage solo se propagan si el estado no es OK.

Además, el campo de nivel superior resource contiene los siguientes campos.

resource: {
  labels: {
    job_id: "transferJobs/7876027868280507149"
    project_id: "my-project-id"
  }
  type: "storage_transfer_job"
}
Campo de registro Descripción
resource.labels.job_id Indica el nombre del trabajo del Servicio de transferencia de almacenamiento al que pertenece este registro.
resource.labels.project_id Es el ID del proyecto de Google Cloud de esta transferencia.