Cloud Storage
O conector do Google Cloud Storage permite que você se conecte a um Google Cloud Storage e realize operações de transferência de arquivos.
Antes de começar
Antes de usar o conector do Cloud Storage, realize estas tarefas:
- No seu projeto do Google Cloud, faça o seguinte:
- Conceda a função IAM roles/connectors.admin ao usuário que está configurando o conector.
- Conceda os seguintes papéis de IAM à conta de serviço que você quer usar para o conector:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
roles/storage.admin
Uma conta de serviço é um tipo especial de Conta do Google destinada a representar um usuário não humano que precisa ser autenticado e autorizado a acessar dados nas APIs do Google. Se você não tiver uma conta de serviço, será necessário criar uma. Para mais informações, consulte Como criar uma conta de serviço.
- Ative os seguintes serviços:
secretmanager.googleapis.com
(API Secret Manager)connectors.googleapis.com
(API Connectors)
Para entender como ativar os serviços, consulte Como ativar serviços.
Se esses serviços ou permissões não tiverem sido ativados no seu projeto, você precisará ativá-los ao configurar o conector.
Configurar o conector
Para configurar o conector, crie uma conexão com a fonte de dados (sistema de back-end). Uma conexão é específica a uma fonte de dados. Isso significa que, se você tiver muitas fontes de dados, precisará criar uma conexão separada para cada uma. Para criar uma conexão, siga estas etapas:
- No console do Cloud, acesse a página Integration Connectors > Conexões e selecione ou crie um projeto do Google Cloud.
- Clique em + CRIAR NOVO para abrir a página Criar conexão.
- Na seção Local, escolha o local da conexão.
- Região: selecione um local na lista suspensa.
Para conferir a lista de todas as regiões com suporte, consulte Locais.
- Clique em PRÓXIMA.
- Região: selecione um local na lista suspensa.
- Na seção Detalhes da conexão, faça o seguinte:
- Conector: selecione Cloud Storage na lista suspensa de conectores disponíveis.
- Versão do conector: selecione a versão do conector na lista suspensa de versões disponíveis.
- No campo Nome da conexão, insira um nome para a instância de conexão
Os nomes de conexão precisam atender aos seguintes critérios:
- Os nomes de conexões podem usar letras, números ou hifens.
- As letras precisam ser minúsculas.
- Os nomes das conexões precisam começar com uma letra e terminar com uma letra ou um número.
- Os nomes das conexões não podem ter mais de 49 caracteres.
- Como opção, insira uma Descrição para a instância de conexão.
- Como opção, ative o Cloud Logging e selecione um nível de registro. Por padrão, o nível de registro é definido como
Error
. - Conta de serviço: selecione uma conta de serviço que tenha os papéis necessários.
- Opcionalmente, defina as Configurações do nó de conexão:
- Número mínimo de nós: digite o número mínimo de nós de conexão.
- Número máximo de nós: digite o número máximo de nós de conexão.
Um nó é uma unidade (ou réplica) de uma conexão que processa transações. Mais nós são necessários para processar mais transações para uma conexão e, por outro lado, menos nós são necessários para processar menos transações. Para entender como os nós afetam os preços do conector, consulte Preços dos nós de conexão. Se você não inserir qualquer valor, por padrão, os nós mínimos serão definidos como 2 (para melhor disponibilidade) e os nós máximos serão definidos como 50.
- ID do projeto: insira o ID do projeto do Google Cloud em que os dados estão armazenados.
- Outra opção é clicar em + ADICIONAR MARCADOR para adicionar um rótulo à conexão na forma de um par de chave-valor.
- Clique em PRÓXIMA.
- Revisão: revise sua conexão.
- Clique em Criar.
Entidades, operações e ações
Todos os Integration Connectors fornecem uma camada de abstração para os objetos do aplicativo conectado. Só é possível acessar os objetos de um aplicativo por esta abstração. A abstração é exposta a você como entidades, operações e ações.
- Entidade: uma entidade pode ser considerada um objeto ou um conjunto de propriedades no aplicativo ou serviço conectado. A definição de uma entidade difere de um conector para
outro. Por exemplo, em um conector de banco de dados, as tabelas são as entidades, em um conector de servidor de arquivos, as pastas são as entidades e, em um conector de sistema de mensagens, as filas são as entidades.
No entanto, é possível que um conector não aceite ou não tenha entidades. Nesse caso, a lista
Entities
estará vazia. - Operação: uma operação é a atividade que pode ser realizada em uma entidade. É possível executar
qualquer uma das seguintes operações em uma entidade:
Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para ela. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa "Conectores". No entanto, se um conector não oferecer suporte a nenhuma das operações de entidade, essas operações sem suporte não serão listadas na lista
Operations
. - Ação: uma ação é uma função de primeira classe disponibilizada para a integração por meio da interface do conector. Uma ação permite fazer alterações em uma ou mais entidades e varia de um conector para outro. Normalmente, uma ação tem alguns parâmetros de entrada e um de saída. No entanto, é possível que o conector não ofereça suporte a nenhuma ação. Nesse caso, a lista
Actions
estará vazia.
Limitações do sistema
O conector do Google Cloud Storage pode processar no máximo 10 transações por segundo, por nó, e limita as transações além desse limite. Por padrão, o Integration Connectors aloca dois nós para melhor disponibilidade para uma conexão.
Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.
Ações
A conexão do Google Cloud Storage é compatível com as seguintes ações:
Ação DownloadObject
A tabela a seguir descreve os parâmetros de entrada da ação DownloadObject
.
Nome do parâmetro | Obrigatório | Tipo de dados | Descrição |
---|---|---|---|
Bucket | Sim | String | Nome do bucket em que o objeto para download está presente. |
ObjectFilePath | Não | String | Nome do objeto que deve ser transferido por download. Se não for especificado, será feito o download de todos
os objetos do bucket especificado.
Se o objeto para download estiver presente em uma pasta filha de um bucket, será necessário
fornecer o caminho completo desse objeto. Por exemplo, para fazer o download de |
HasBytes | Não | Booleano | Define se o download do conteúdo será feito em bytes. Os valores válidos são true ou false .
Se definido como true , o conteúdo será transferido por download como uma string codificada em Base64 .
Por padrão, o campo |
UpdatedEndDate | Não | Data | O período final para fazer o download de objetos. Se não for especificado, o download de objetos
no UpdatedStartDate especificado será feito até o dia atual. |
UpdatedStartDate | Não | Data | O início do período para fazer o download de objetos. Se não for especificado, o download
dos objetos será feito desde o início até UpdatedEndDate . |
Veja como configurar a ação DownloadObject
em Exemplos.
Ação UploadObject
A tabela a seguir descreve os parâmetros de entrada da ação UploadObject
.
Nome do parâmetro | Obrigatório | Tipo de dados | Descrição |
---|---|---|---|
Bucket | Sim | String | Nome do bucket em que o objeto será enviado por upload. |
FolderPath | Não | String | O caminho para a pasta em que o objeto será enviado. |
ContentBytes | Não | String | Conteúdo para upload na forma de bytes (string codificada em Base64). |
HasBytes | Não | Booleano | Define se o upload de conteúdo será feito como bytes. Valores válidos, true ou false .
Se definido como true , o conteúdo que você quer enviar precisa ser uma string codificada em Base64.
Por padrão, o campo |
Conteúdo | Sim | String | O conteúdo a ser enviado. |
ObjectName | Não | String | Nome do objeto que será enviado. |
Veja como configurar a ação UploadObject
em Exemplos.
Ação CopyObject
A tabela a seguir descreve os parâmetros de entrada da ação CopyObject
.
Nome do parâmetro | Obrigatório | Tipo de dados | Descrição |
---|---|---|---|
BucketSource | Sim | String | Nome do bucket do qual você quer copiar o objeto. |
ObjectSource | Sim | String | O caminho completo da pasta em que você quer copiar o objeto. |
BucketDestination | Sim | String | Nome do bucket para o qual você quer copiar o objeto. |
ObjectDestination | Não | String | Caminho completo do destino, incluindo o nome do objeto. Se você não especificar um nome de objeto, o nome do objeto de origem será mantido. |
Veja como configurar a ação CopyObject
em Exemplos.
Ação MoveObject
A tabela a seguir descreve os parâmetros de entrada da ação MoveObject.
Nome do parâmetro | Obrigatório | Tipo de dados | Descrição |
---|---|---|---|
BucketSource | Sim | String | Nome do bucket do qual você quer mover o objeto. |
ObjectSource | Sim | String | Caminho completo da pasta em que você quer mover o objeto. |
BucketDestination | Sim | String | Nome do bucket para o qual você quer mover o objeto. |
ObjectDestination | Não | String | Caminho completo do destino, incluindo o nome do objeto. Se você não especificar um nome de objeto, o nome do objeto de origem será mantido. |
Ação DeleteObject
A tabela a seguir descreve os parâmetros de entrada da ação DeleteObject
.
Nome do parâmetro | Obrigatório | Tipo de dados | Descrição |
---|---|---|---|
BucketSource | Sim | String | Nome do bucket em que o objeto a ser excluído está presente. |
ObjectSource | Sim | String | Nome do objeto que você quer excluir. |
Geração | Não | Dobro | Versão do objeto a ser excluído. Se estiver presente, vai excluir permanentemente a revisão especificada do objeto e não a versão mais recente, que é o comportamento padrão. |
IfGenerationMatch | Não | Dobro | Deixa a operação de exclusão condicional se a geração atual do objeto corresponder ao valor
fornecido. Definir esse valor como |
IfGenerationNotMatch | Não | Dobro | Deixa a operação de exclusão condicional se a geração atual do objeto não corresponder ao
valor fornecido. Se não houver um objeto ativo, a pré-condição vai falhar. Definir esse valor como
0 só tornará a operação bem-sucedida se houver uma versão ativa do objeto. |
IfMetagenerationMatch | Não | Dobro | Deixa a operação de exclusão condicional se a metageração atual do objeto corresponder ao valor especificado. |
IfMetagenerationNotMatch | Não | Dobro | Torna a operação de exclusão condicional se a metageração atual do objeto não corresponder ao valor especificado. |
Ação SignURL
A tabela a seguir descreve os parâmetros de entrada da ação SignURL
, que
cria um URL assinado para o objeto especificado.
Nome do parâmetro | Obrigatório | Tipo de dados | Descrição |
---|---|---|---|
Bucket | Sim | String | O nome do bucket onde o objeto reside. |
Objeto | Sim | String | O nome do objeto para o qual gerar o SignedURL. |
RequestMethod | Não | String | O método que a solicitação assinada usará. O valor padrão é GET . |
Local | Não | String | Local do bucket especificado. O valor padrão é auto . |
ActiveDateTime | Não | String | O dateTime em que o SignedURL ficará ativo. Se ele não for especificado, será usado o dateTime atual. |
Consulta | Não | String | A string de consulta que deve ser incluída ao usar o SignedURL. Se não for especificado, nenhuma string de consulta será usada. |
CustomHeaders | Não | String | Uma lista separada por vírgulas de name=value dos cabeçalhos a serem usados com o SignedURL, se não especificado, cabeçalhos não personalizados serão usados. |
ExpiresIn | Sim | String | O prazo de validade do SignedURL deve estar no formato: 1d2h3m4s . O valor máximo é 7d0h0m0s . |
HmacAccessKey | Não | String | A chave de acesso HMAC. Para mais informações, consulte Chaves HMAC. |
HmacSecret | Não | String | O secret HMAC. |
Examples
Os exemplos nesta seção descrevem as seguintes operações:
- Listar todos os objetos
- Listar todos os objetos de um bucket
- Listar todos os buckets
- Fazer o download de um objeto
- Fazer o download de um objeto binário
- Fazer upload de um objeto binário para um bucket
- fazer upload de um objeto em um bucket;
- Fazer upload de um objeto em uma pasta
- Copiar um objeto
- Mover um objeto
- Excluir um objeto
- Criar um URL assinado para um objeto
A tabela a seguir lista os cenários de exemplo e a configuração correspondente na tarefa Connectors:
Tarefa | Configuração |
---|---|
Listar todos os objetos |
Isso lista todos os objetos em todos os buckets. Os objetos são listados no
parâmetro de resposta |
Listar todos os objetos de um bucket |
|
Listar todos os buckets |
|
Fazer o download de um objeto |
Este exemplo faz o download do arquivo |
Fazer o download de um objeto binário |
As etapas para fazer o download de um objeto binário são as mesmas do download de um objeto regular conforme
descrito anteriormente. Além disso, é necessário especificar { "Bucket": "bucket-test-01", "ObjectFilePath": "image01.png", "HasBytes" : true } Se o download for bem-sucedido, a saída no campo { "Success": "true", "ContentBytes": "SGVsbG8gdGVzdCE\u003d" } Por padrão, o campo Se o arquivo tiver caracteres especiais, como ä, Ø, Thành, faça o seguinte:
|
Fazer upload de um objeto binário em um bucket |
Este exemplo cria o arquivo |
fazer upload de um objeto em um bucket; |
Este exemplo cria o arquivo |
Fazer upload de um objeto em uma pasta |
Este exemplo cria o arquivo |
Copiar um objeto |
Este exemplo copia o arquivo Se a cópia for bem-sucedida, a saída no campo { "Success": "true" } |
Mover um objeto |
Este exemplo move o arquivo Se a cópia for bem-sucedida, a saída no campo { "Success": "true" } |
Excluir um objeto |
Este exemplo exclui o arquivo Se a cópia for bem-sucedida, a saída no campo { "Success": "true" } |
Criar um URL assinado para um objeto |
Este exemplo cria um URL assinado para o arquivo { "Success": "true", "SignURL": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com %2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7" } |
Considerações
- Um objeto para download pode ter um tamanho máximo de 10 MB.
- Não é possível fazer upload de vários arquivos usando a ação
UploadObject
. Só é possível fazer upload de um arquivo.
Usar o Terraform para criar conexões
É possível usar o Terraform recurso para criar uma nova conexão.Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Para conferir um exemplo de modelo do Terraform para criação de conexão, consulte exemplo de modelo.
Ao criar essa conexão usando o Terraform, você precisa definir as seguintes variáveis no arquivo de configuração do Terraform:
Nome do parâmetro | Tipo de dados | Obrigatório | Descrição |
---|---|---|---|
project_id | STRING | Verdadeiro | O ID do projeto do Google Cloud em que os dados residem. |
Usar a conexão do Cloud Storage em uma integração
Depois de criar a conexão, ela fica disponível na integração da Apigee e na integração do aplicativo. Você pode usar a conexão em uma integração pela tarefa Conectores.
- Para entender como criar e usar a tarefa Conectores na integração da Apigee, consulte a Tarefa Conectores.
- Para entender como criar e usar a tarefa "Conectores" na integração de aplicativos, consulte Tarefa "Conectores".
Receber ajuda da comunidade do Google Cloud
Poste suas dúvidas e converse sobre esse conector na comunidade do Google Cloud em Fóruns do Cloud.A seguir
- Entenda como suspender e retomar uma conexão.
- Entenda como monitorar o uso do conector.
- Saiba como acessar os registros do conector.