Cloud Logging para o Serviço de transferência de armazenamento

Esta página descreve como configurar e ver o Cloud Logging para os registos do Serviço de transferência de armazenamento.

O Cloud Logging para o Serviço de transferência de armazenamento é suportado para todas as transferências. FIND As operações não são registadas para transferências baseadas em agentes.

As transferências do sistema de ficheiros podem configurar adicionalmente os registos de transferência do sistema de ficheiros.

Antes de começar

Antes de começar, verifique se tem acesso ao Cloud Logging. Recomendamos a função de Identity and Access Management Leitor de registos (roles/logging.viewer). Para mais informações sobre o acesso ao registo, consulte o artigo Controlo de acesso com a IAM.

As seguintes descrições explicam como validar e conceder acesso ao IAM:

Ações registáveis

As seguintes ações podem ser registadas:

  • FIND: encontrar trabalho a fazer, como listar ficheiros num diretório, listar objetos num contentor ou listar pastas geridas num contentor. Não suportado para transferências baseadas em agentes.
  • COPY: copiar ficheiros ou objetos para o Cloud Storage.
  • DELETE: eliminar ficheiros ou objetos na origem ou no destino. Para transferências entre dois sistemas de ficheiros, também regista a eliminação de ficheiros do contentor do Cloud Storage intermediário.

Estados registáveis

Para cada ação, pode optar por registar um ou mais dos seguintes estados:

  • SUCCEEDED: a ação foi bem-sucedida.
  • FAILED: a ação falhou.
  • SKIPPED: aplica-se apenas à ação COPY e só é suportado para tarefas de transferência baseadas em agentes. Tem de ser definido através da gcloud ou da API REST. Este estado significa que a cópia foi ignorada. Isto ocorre quando o ficheiro já existe no destino e a tarefa de transferência está configurada para ignorar os ficheiros existentes.

Ative o registo

Para ativar o registo, especifique as ações e os estados a registar.

CLI gcloud

Quando criar uma tarefa de transferência com gcloud transfer jobs create, use as seguintes flags para ativar o registo:

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

Tem de especificar, pelo menos, um valor para cada sinalização.

REST

Para criar uma configuração de registo, use transferJobs.create com um LoggingConfig:

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

Ajuste loggingConfig para incluir o logActions específico e logActionStates para registar. Por exemplo, para registar quando as ações de copiar e encontrar falham, forneça o seguinte loggingConfig:

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

Atualize uma configuração de registo

CLI gcloud

Para atualizar a configuração de registo de um trabalho existente, use as flags adequadas com o comando gcloud transfer jobs update:

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

Para desativar o registo para esta tarefa, especifique --clear-log-config:

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

REST

Para atualizar a configuração de registo de uma tarefa de transferência existente, use transferJobs.patch com LoggingConfig:

{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": ["FIND", "DELETE", "COPY"],
       "logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

O elemento updateTransferJobFieldMask especifica o campo que está a ser atualizado neste pedido e é obrigatório.

Para desativar o registo para esta tarefa, envie um loggingConfig com listas vazias para logActions e logActionStates:

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

Ver registos

Para ver os registos de transferências, faça o seguinte:

Google Cloud consola

  1. Aceda ao Google Cloud menu de navegação e selecione Registo > Explorador de registos :<br\></br\>

    Aceda ao Explorador de registos

  2. Selecione um Google Cloud projeto.

  3. No menu Atualizar, mude de Visualizador de registos antigo para Explorador de registos.

  4. Para filtrar os seus registos de modo a mostrar apenas as entradas do Serviço de transferência de armazenamento, escreva storage_transfer_job no campo de consulta e clique em Executar consulta.

  5. No painel Resultados da consulta, clique em Editar hora para alterar o período durante o qual devem ser devolvidos os resultados.

Para mais informações sobre a utilização do Explorador de registos, consulte o artigo Usar o Explorador de registos.

CLI gcloud

Para usar a CLI gcloud para pesquisar registos do Serviço de transferência de armazenamento, use o comando gcloud logging read.

Especifique um filtro para limitar os resultados aos registos do Serviço de transferência de armazenamento.

gcloud logging read "resource.type=storage_transfer_job"

Cloud Logging API

Use o método da API entries.list Cloud Logging.

Para filtrar os resultados de modo a incluir apenas entradas relacionadas com o serviço de transferência de armazenamento, use o campo filter. Segue-se um objeto de pedido JSON de exemplo.

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

Formato do registo de transferência

A secção seguinte descreve os campos dos registos do Serviço de transferência de armazenamento.

Todos os campos específicos do Serviço de transferência de armazenamento estão contidos num objeto jsonPayload.

FIND ações

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

Ações de COPY e 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 registo Descrição
@type O valor é sempre type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Descreve a ação desta tarefa específica. Uma das seguintes opções:

  • FIND: encontrar trabalho a fazer, como listar ficheiros num diretório ou listar objetos num contentor. Não comunicado para transferências baseadas em agentes.
  • COPY: copiar ficheiros ou objetos para o Cloud Storage.
  • DELETE: eliminar ficheiros ou objetos na origem, no destino ou no contentor intermediário.
findAction

Especifica se o assunto da ação de localização era um objeto ou uma pasta gerida.

completeTime A data/hora em conformidade com a norma ISO 8601 em que a operação foi concluída.
destinationContainer

Apenas presente para operações FIND. As operações FIND não são registadas para transferências baseadas em agentes.

O contentor de destino desta transferência. Contém dois subcampos:

  • gcsBucket.bucket: o nome do contentor do Cloud Storage de destino.
  • type: sempre GCS.
destinationObject

Apenas presente para operações COPY e DELETE.

Informações sobre o objeto no destino. Contém dois subcampos:

  • Uma das seguintes opções: gcsObject, gcsManagedFolder ou posixFile, consoante o destino. Todas as opções contêm vários subcampos que especificam o nome, a localização, as informações de data/hora e o hash do objeto ou do ficheiro.
  • type é um de GCS ou POSIX_FS.

Por exemplo:

"destinationObject": {
  "type": "POSIX_FS",
  "posixFile": {
    "crc32c": "0",
    "path": "/tmp/data/filename.txt",
    "lastModifiedTime": "2022-09-22T04:33:45Z"
  }
}
operation O nome transferOperations totalmente qualificado.
sourceContainer

Apenas presente para operações FIND. As operações FIND não são registadas para transferências baseadas em agentes.

O contentor de origem desta transferência. Contém dois subcampos:

  • Uma entrada que especifica a localização de origem. O campo tem o nome de acordo com o tipo de origem. Os campos possíveis são os seguintes.
    • awsS3Bucket.bucket: o nome do contentor do AWS S3.
    • azureBlobContainer: contém subcampos account e container, que, em conjunto, definem o URI do armazenamento de blobs do Microsoft Azure.
    • gcsBucket.bucket: o nome do contentor do Cloud Storage.
    • httpManifest.url: O URL de uma lista de URLs que especifica ficheiros disponíveis publicamente para transferência a partir de um servidor HTTP(S).
  • type é um dos seguintes valores: AWS_S3, AZURE_BLOB, GCS ou HTTP.

Por exemplo:

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

Apenas presente para operações COPY e DELETE.

Informações sobre o objeto de origem. Contém dois subcampos:

  • Uma entrada específica do anfitrião do objeto de origem. O campo tem o nome de acordo com o tipo de origem e contém subcampos para metadados. Os campos possíveis são os seguintes.
    • awsS3Object: Um objeto do AWS S3.
    • azureBlob: um ficheiro no armazenamento de blobs do Azure.
    • gcsObject: Um objeto do Cloud Storage.
    • gcsManagedFolder: Uma pasta gerida do Cloud Storage.
    • httpFile: um ficheiro especificado por uma lista de URLs.
    • posixFile: um ficheiro num sistema de ficheiros POSIX.
  • type é um dos seguintes valores: AWS_S3, AZURE_BLOB, GCS, HTTP ou POSIX_FS.

Por exemplo:

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

O estado da ação. Se status.statusCode for OK, a ação foi bem-sucedida. Caso contrário, a ação falhou. Os campos status.errorType e status.errorMessage só são preenchidos se o estado não for OK.

Além disso, o campo resource de nível superior contém os seguintes campos.

"resource": {
  "labels": {
    "job_id": "transferJobs/7876027868280507149"
    "project_id": "my-project-id"
  }
  "type": "storage_transfer_job"
}
Campo de registo Descrição
resource.labels.job_id O nome da tarefa do Serviço de transferência de armazenamento à qual este registo pertence.
resource.labels.project_id O Google Cloud ID do projeto desta transferência.