Serviço de transferência do Cloud Logging para o Storage

Nesta página, você aprenderá a configurar e visualizar os registros do Serviço de transferência do Cloud Logging para o Storage.

O Cloud Logging para Serviço de transferência do Cloud Storage é compatível com todas as transferências sem agente, bem como para transferências do armazenamento compatível com S3. Para ver informações sobre os registros de transferência do sistema de arquivos, consulte Registros de transferência do sistema de arquivos.

Antes de começar

Antes de começar, verifique se você tem acesso ao Cloud Logging. Recomendamos o papel Leitor de registros (roles/logging.viewer). do Identity and Access Management. Para mais informações sobre o acesso ao Logging, consulte Controle de acesso com o IAM.

Veja a seguir como verificar e conceder o acesso ao IAM:

Ações registráveis

As seguintes ações podem ser registradas:

  • FIND: buscar trabalho a fazer, como listar arquivos em um diretório ou listar objetos em um bucket. Indisponível para transferências de armazenamento compatível com S3.
  • COPY: copiar arquivos ou objetos para o Cloud Storage.
  • DELETE: excluir arquivos ou objetos na origem ou no destino.

Para cada ação, é possível escolher registrar os estados de sucesso e/ou falha.

Ativar a geração de registros

Para ativar a geração de registros, especifique as ações e os estados a serem registrados.

CLI da gcloud

Ao criar um job de transferência com gcloud transfer jobs create, use as seguintes sinalizações para ativar a geração de registros:

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

É preciso especificar pelo menos um valor para cada sinalização.

REST

Para criar uma configuração de geração de registros, use transferJobs.create com um 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/"
      },
   }
}

Ajuste loggingConfig para incluir os logActions e logActionStates específicos a serem registrados. Por exemplo, para registrar quando as ações de copiar e localizar falhar, forneça o seguinte loggingConfig:

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

Atualizar uma configuração de geração de registros

CLI da gcloud

Para atualizar a configuração de geração de registros de um job atual, use as sinalizações apropriadas com o comando gcloud transfer jobs update:

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

Para desativar a geração de registros para este job, especifique --clear-log-config:

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

REST

Para atualizar uma configuração de geração de registros de uma transferência atual, use transferJobs.patch com LoggingConfig:

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

O updateTransferJobFieldMask especifica o campo que está sendo atualizado nesta solicitação e é obrigatório.

Para desativar a geração de registros para este job, envie um loggingConfig com listas vazias para logActions e logActionStates:

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

Ver registros

Para ver os registros de transferência, faça o seguinte:

Console do Google Cloud

  1. Acesse o menu de navegação do Google Cloud e selecione Logging > Explorador de registros :<br\></br\>

    Acesse o Explorador de registros

  2. Selecione um projeto do Google Cloud.

  3. No menu Upgrade, alterne de Leitor de registros legados para Explorador de registros.

  4. Para filtrar seus registros e mostrar apenas entradas do Serviço de transferência do Cloud Storage, digite 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 de retorno dos resultados.

Veja mais informações em Como usar o Explorador de registros.

CLI gcloud

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

Especifique um filtro para limitar os resultados aos registros do Serviço de transferência do Cloud Storage.

gcloud logging read "resource.type=storage_transfer_job"

API Cloud Logging

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

Para filtrar os resultados e incluir apenas entradas relacionadas ao Serviço de transferência do Cloud Storage, use o campo filter. Veja abaixo um exemplo de objeto de solicitação JSON.

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

Formato do registro de transferência

A tabela a seguir descreve os campos para os registros do Serviço de transferência do Cloud Storage:

Todos os campos específicos do Storage Transfer Service estão contidos em um campo 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 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 registro Descrição
@type O valor é sempre type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Descreve a ação dessa tarefa específica. Opções:

  • FIND: buscar trabalho a fazer, como listar arquivos em um diretório ou listar objetos em um bucket. Indisponível para transferências de armazenamento compatível com S3.
  • COPY: copiar arquivos ou objetos para o Cloud Storage.
  • DELETE: excluir arquivos ou objetos na origem ou no destino.
completeTime O carimbo de data e hora em conformidade com a ISO 8601 em que a operação foi concluída.
destinationContainer

Presente apenas para operações FIND.

O contêiner de destino dessa transferência. Apenas os buckets do Cloud Storage são compatíveis com a geração de registros. Contém dois subcampos:

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

presente apenas para operações COPY e DELETE.

Informações sobre o objeto como ele foi gravado no Cloud Storage. Contém dois subcampos:

  • gcsObject, que também contém dois subcampos, bucket e objectKey. Juntos, definem o caminho do Cloud Storage do objeto.
  • type é sempre GCS.

Exemplo:


destinationObject: {
  gcsObject: {
    bucket: "my-bucket-2"
    objectKey: "README.md"
  }
  type: "GCS"
}
operation O nome totalmente qualificado de transferOperations.
sourceContainer

Presente apenas para operações FIND.

O contêiner de origem dessa transferência. Contém dois subcampos:

  • Uma entrada especificando o local de origem. O campo é nomeado de acordo com o tipo de origem. Veja abaixo os campos possíveis.
    • awsS3Bucket.bucket: o nome do bucket do AWS S3.
    • azureBlobContainer: contém subcampos account e container, que juntos definem o URI de armazenamento do Blob do Microsoft Azure.
    • gcsBucket.bucket: o nome do bucket do Cloud Storage.
    • httpManifest.url: o URL de uma lista de URLs que especifica arquivos disponíveis publicamente para download em um servidor HTTP(S).
  • type é um dos campos AWS_S3, AZURE_BLOB, GCS ou HTTP.

Exemplo:


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

presente apenas para operações COPY e DELETE.

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

  • Uma entrada específica para o host do objeto de origem. O campo é nomeado de acordo com o tipo de origem e contém subcampos para os metadados. Veja abaixo os campos possíveis.
    • awsS3Object: um objeto AWS S3.
    • azureBlob: um arquivo no Armazenamento de Blobs do Azure.
    • gcsObject: um objeto do Cloud Storage.
    • httpFile: um arquivo especificado por uma lista de URLs.
  • type é um dos campos AWS_S3, AZURE_BLOB, GCS ou HTTP.

Exemplo:


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

O status 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ó serão preenchidos se o status 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 registro Descrição
resource.labels.job_id O nome do job do Serviço de transferência do Cloud Storage a que o registro pertence.
resource.labels.project_id O ID do projeto do Google Cloud para essa transferência.