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 o Serviço de transferência do Cloud Storage é compatível com todas as transferências. As operações FIND não são registradas para transferências baseadas em agentes.

Além disso, as transferências do sistema de arquivos podem configurar 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. Não é compatível com transferências baseadas em agentes.
  • COPY: copiar arquivos ou objetos para o Cloud Storage.
  • DELETE: excluir arquivos ou objetos na origem ou no destino. Para transferências entre dois sistemas de arquivos, também registra a exclusão de arquivos do bucket intermediário do Cloud Storage.

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 flags para ativar a geração de registros:

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

É necessário 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 o logActions específico e logActionStates para fazer o registro. Por exemplo, para registrar quando as ações de copiar e localizar falham, forneça o seguinte loggingConfig:

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

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

CLI gcloud

Para atualizar a configuração de geração de registros de um job atual, use o método 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 deste 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 Serviço de transferência do Cloud Storage estão 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. Não informado para com base em agentes.
  • COPY: copiar arquivos ou objetos para o Cloud Storage.
  • DELETE: excluir arquivos ou objetos na origem, no destino ou no bucket intermediário.
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. As operações FIND não são registradas para transferências com base em agente.

O contêiner de destino dessa transferência. 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 no destino. Contém dois subcampos:

  • gcsObject ou posixFile, dependendo do destino. Ambas as opções contêm vários subcampos que especificam localização, informações de data/hora e o hash do objeto ou arquivo.
  • type é GCS ou POSIX_FS.

Exemplo:

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

Presente apenas para operações FIND. As operações FIND não são registradas para transferências com base em agente.

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.
    • posixFile: um arquivo em um sistema de arquivos POSIX.
  • type é um dos campos AWS_S3, AZURE_BLOB, GCS, HTTP ou POSIX_FS.

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.