HTTP
O conector HTTP oferece conectividade ao serviço HTTP e consome APIs baseadas em HTTP. O conector também oferece suporte à conectividade SSL/TLS por configuração personalizada e a vários mecanismos de autenticação, como concessão de credenciais do cliente OAuth 2.0, básico e resumo.
Antes de começar
Antes de usar o conector HTTP, faça o seguinte:
- 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
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 HTTP 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.
- Se quiser, 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, para verificar o status da conexão, especifique um URL de endpoint no campo Verificação de status. O URL também pode incluir um endereço IP de anexo de endpoint. O status é ativo por padrão.
- 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.
-
Usar proxy: marque a caixa de seleção para configurar um servidor proxy para a conexão.
- Clique em + Adicionar destino.
- Selecione um Tipo de destino.
- Endereço do host: especifique o nome do host ou o endereço IP do destino.
Se você quiser estabelecer uma conexão particular com seu back-end, faça o seguinte:
- Crie um anexo do serviço PSC.
- Crie um anexo de endpoint e insira os detalhes dele no campo Endereço do host.
- Endereço do host: especifique o nome do host ou o endereço IP do destino.
- Outra opção é clicar em + ADICIONAR MARCADOR para adicionar um rótulo à conexão na forma de um par de chave-valor.
- Como opção, se quiser usar SSL, selecione Ativar SSL. Os detalhes da configuração do SSL serão exibidos.
- Selecione um tipo de loja de confiança. Pode ser Pública, Particular ou Conexão não segura.
- Selecione os certificados com base na sua seleção de loja de confiança.
- Se você estiver usando mTLS, selecione os certificados de armazenamento de chaves na seção Armazenamento de chaves.
- Opcionalmente, selecione a versão TLS.
- Insira o pacote de criptografia compatível. Insira vários pacotes de criptografia como valores separados por vírgulas. Para mais informações, consulte Pacotes de criptografia aceitos.
- Clique em Próxima.
- Na seção Destinos, insira os detalhes do host remoto (sistema de back-end) ao qual você quer se conectar.
- Tipo de destino: selecione um Tipo de destino.
- Selecione Endereço do host na lista para especificar o nome do host ou o endereço IP do destino.
- Para estabelecer uma conexão particular com seus sistemas de back-end, Selecione Anexo de endpoint na lista e depois selecione o anexo de endpoint necessário. na lista Endpoint Attachment.
Para estabelecer uma conexão pública com os sistemas de back-end com mais segurança, considere configurar endereços IP de saída estáticos para suas conexões e configure as regras de firewall para autorizar apenas os endereços IP estáticos específicos.
Para inserir outros destinos, clique em + Adicionar destino.
- Clique em Próxima.
- Tipo de destino: selecione um Tipo de destino.
-
Na seção Autenticação, insira os detalhes da autenticação.
- Selecione um Tipo de autenticação e insira os detalhes relevantes.
Os seguintes tipos de autenticação são compatíveis com a conexão HTTP:
- Autenticação personalizada
- OAuth 2.0: concessão de credenciais do cliente
- Autenticação básica
- Autenticação por resumo
- Código de autorização OAuth 2.0
- Conta de serviço
- Autenticação de token de ID da conta de serviço
- Autenticação de chave de API
- Clique em Next.
Para entender como configurar esses tipos de autenticação, consulte Configurar autenticação.
- Selecione um Tipo de autenticação e insira os detalhes relevantes.
- Revisão: revise os detalhes de conexão e autenticação.
- Clique em Criar.
Configurar a autenticação
Digite os detalhes com base na autenticação que você quer usar.
- Autenticação personalizada
É possível adicionar detalhes da autorização personalizada como cabeçalho de solicitação durante a execução da tarefa Connectors.
- OAuth 2.0: concessão de credenciais de cliente
- ID do cliente: o ID do cliente a ser usado para autenticar a solicitação HTTP
- Chave secreta do cliente: o Secret do Secret Manager que contém a chave secreta do cliente para autenticar uma solicitação HTTP.
- Formato da solicitação do token de acesso: formato da solicitação a ser usado em solicitações feitas para buscar o token de acesso do servidor de autenticação.
Selecione
body
para transmitir o ID e a chave secreta do cliente como um corpo da solicitação ouheader
para transmiti-las como cabeçalho codificado. - Caminho da solicitação do token: caminho da solicitação a ser anexado ao URL do servidor de autenticação para buscar o URL do token de acesso.
- Prazo de validade padrão: prazo de validade padrão (em segundos) do token de acesso. Esse tempo será usado caso a resposta do token de acesso não tenha prazo de validade. Se o valor não for fornecido, o token será atualizado em 6 horas.
- Autenticação básica
- Nome de usuário: nome de usuário usado para fazer a solicitação HTTP.
- Senha: o Secret do Secret Manager que contém a senha associada ao nome de usuário fornecido.
- Autenticação por resumo
- Nome de usuário: nome de usuário usado para fazer a solicitação HTTP.
- Senha: o Secret do Secret Manager que contém a senha associada ao nome de usuário fornecido.
- Código de autorização OAuth 2.0
- ID do cliente: ID do cliente conforme fornecido pelo aplicativo externo.
- Escopos: escopos de permissão compatíveis com o aplicativo externo.
- Chave secreta do cliente: selecione a chave Gerenciador de secrets. É necessário criar a chave secreta do Secret Manager antes de configurar esta autorização.
- Versão do secret: a versão do secret do cliente no Secret Manager.
- Ative a chave de prova para troca de código (PKCE), se o servidor de back-end oferecer suporte a ela.
- URL de autorização: insira o URL de autorização para seu aplicativo externo.
- URL do token de acesso: insira o URL para receber o token de acesso do aplicativo externo.
- Conta de serviço
Selecione essa opção para fazer a autenticação usando a conta de serviço que você forneceu nas etapas anteriores ao configurar essa conexão. Verifique se você tem forneceu à conta de serviço as permissões e os papéis do IAM relevantes necessários para a autenticação.
- Escopos: selecione os escopos do OAuth 2.0 necessários no menu suspenso. Para mais informações, consulte Escopos de acesso.
- Autenticação de token de ID da conta de serviço
Selecione essa opção para fazer a autenticação usando o token de ID gerado pela conta de serviço que você forneceu nas etapas anteriores. Essa autenticação usa JSON Web Tokens (JWT) para autenticação. O provedor de token de ID assina e emite os JWTs para autenticação usando uma conta de serviço.
- Público-alvo: insira os destinatários a que o JWT se destina.
- Nome do cabeçalho: insira o nome do cabeçalho para o token de ID gerado que será usado no cabeçalho HTTP. Se você não
especificar nenhum valor para esse campo, o valor da chave será definido como
Authorization
por padrão.
- Autenticação de chave de API
Selecione esta opção para autenticar usando uma chave de API.
- Chave de API: selecione a chave secreta do Secret Manager da chave de API.
- Versão do secret: selecione a versão do secret.
- Nome do parâmetro da chave de API: insira um nome de parâmetro para a chave de API. Uma chave de API é enviada servidor de back-end como um par de chave-valor. O valor inserido aqui será usado como o nome da chave para a chave de API que você selecionou anteriormente.
- Local da chave de API: selecione onde você quer adicionar a chave de API na solicitação.
Para o tipo de autenticação Authorization code
, depois de criar a conexão, execute mais algumas etapas para configurar a autenticação. Para mais informações,
consulte Outras etapas após a criação da conexão.
Conjuntos de criptografia compatíveis
Versão TLS | Pacotes de criptografia aceitos |
---|---|
1.2 |
|
1.3 |
|
Etapas adicionais após a criação da conexão
Se você selecionou OAuth 2.0 - Authorization code
para
siga estas etapas extras depois de criar a conexão:
- Na página "Conexões",
localize a conexão recém-criada.
O Status do novo conector será Autorização necessária.
- Clique em Autorização necessária.
O painel Editar autorização é mostrado.
- Copie o valor de Redirect URI no seu aplicativo externo.
- Verifique os detalhes da autorização.
- Clique em Autorizar.
Se a autorização for bem-sucedida, o status da conexão será definido como Ativo na página "Conexões".
Reautorização do código de autorização
Se você estiver usando o tipo de autenticação Authorization code
e tiver feito mudanças na configuração no HTTP de back-end
reautorize a conexão HTTP. Para autorizar uma conexão novamente, siga estas etapas:
- Clique na conexão necessária na página "Conexões".
A página de detalhes da conexão será aberta.
- Clique em Editar para editar os detalhes da conexão.
- Verifique os detalhes de OAuth 2.0 - Código de autorização na seção Autenticação.
Se necessário, faça as mudanças necessárias.
- Clique em Salvar. Isso leva você à página de detalhes da conexão.
- Clique em Editar autorização na seção Autenticação. O painel Authorize é mostrado.
- Clique em Autorizar.
Se a autorização for bem-sucedida, o status da conexão será definido como Ativo na página "Conexões".
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 da entidade, como as operações não estã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,
. 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 HTTP pode processar 100 transações por segundo, por nó, e limita todas 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 compatíveis
O conector HTTP oferece suporte às seguintes ações:
Ação HttpRequest
As tabelas a seguir descrevem os parâmetros de entrada e saída da ação HttpRequest.
Parâmetros de entrada da ação HttpRequest
Nome do parâmetro | Tipo de dados | Obrigatório | Descrição |
---|---|---|---|
URL | Struct | Não | URL para onde você quer enviar a solicitação.
O URL tem o formato <scheme>://<netloc>/<path>;<params>?<query>#<fragment> .
Se você fornecer netloc , ele vai substituir o nome do host fornecido durante a criação da conexão. |
Método | String | Não | Método de solicitação HTTP como GET, POST, DELETE ou PUT. O valor padrão é GET. |
Cabeçalhos | Struct | Não | Cabeçalhos de solicitação HTTP. |
Corpo | String | Não | Corpo de solicitação HTTP. |
RequestHasBytes | Booleano | Não | Se a solicitação será enviada como bytes. Se definido como true , será necessário enviar a solicitação
como uma string codificada em Base64 no parâmetro Body . O valor padrão é false . |
ResponseHasBytes | Booleano | Não | Indica se a resposta será recebida como bytes. Se definido como true , você receberá a resposta
como uma string codificada em Base64 no parâmetro de saída ResponseBody . O valor padrão é false . |
HttpVersion | String | Não | Versão HTTP a ser usada ao fazer uma solicitação. Os valores compatíveis são 1.1 e 2. Se você especificar a versão 2, a negociação do protocolo de camada de aplicativo (ALPN, na sigla em inglês) ocorrerá e a versão 1.1 será usada se o servidor não for compatível com a versão 2. O valor padrão é 2. |
ResponseFormat | String | Não | Especifica o formato da resposta do conector. Os valores compatíveis são v1 e v2 .
O valor padrão é v1 .
Exemplo de resposta da v1: [{ "ResponseBody": "{\n \"status\": 200\n}" }, { "StatusCode": 200.0 }, { "HttpVersion": "2" }, { "ResponseHeaders": { ":status": "200", "content-length": "19" } }] Exemplo de resposta da v2: [{ "ResponseBody": "{\n \"status\": 200\n}", "StatusCode": 200.0, "HttpVersion": "2", "ResponseHeaders": { ":status": "200", "content-length": "19" } }] |
FailOnError | Booleano | Não | Especifica o comportamento da conexão quando há um erro no aplicativo de back-end.
O valor padrão é |
Tempo limite | Número inteiro | Não | Valor de tempo limite para a solicitação HTTP em segundos. O valor máximo permitido é de 150 segundos. |
Parâmetros de saída da ação HttpRequest
Nome do parâmetro | Tipo de dados | Descrição |
---|---|---|
ResponseBody | String | Resposta recebida do servidor HTTP. |
StatusCode | Inteiro | Código de status recebido do servidor HTTP. |
HttpVersion | String | Versão negociada para a solicitação HTTP. |
ResponseHeaders | Struct | Cabeçalhos de resposta HTTP na forma de pares key,value . |
Exemplos
Os exemplos nesta seção descrevem as seguintes operações:
- Configurar um payload de solicitação
- Enviar conteúdo de bytes
- Acessar conteúdo de bytes
A tabela a seguir lista os cenários de exemplo e a configuração correspondente na tarefa Connectors:
Tarefa | Configuração |
---|---|
Configurar um payload de solicitação |
Este exemplo faz uma solicitação POST para o URL |
Enviar conteúdo de bytes |
Para enviar o conteúdo de bytes (como arquivos), defina o atributo de solicitação
Este exemplo faz uma solicitação POST para o servidor |
Acessar conteúdo de bytes |
Para receber bytes (como string Base64) do servidor, defina o atributo de solicitação
Este exemplo faz uma solicitação GET para o servidor |
Códigos de erro
Esta seção descreve as mensagens de erro que você pode receber ao usar a conexão HTTP.
Mensagem de erro | Causa |
---|---|
Erro na conexão com o servidor HTTP | A conexão HTTP falhou ao estabelecer conexão com o servidor devido a uma falha de handshake do SSL ou a um endpoint de servidor HTTP incorreto. |
Resposta de erro recebida do servidor HTTP | O servidor HTTP que você está tentando conectar retorna uma resposta de erro com o código de status 4xx ou 5xx. Exemplo de resposta:
{ "error": { "code": 400, "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "metadata": { "Body": "{\"thisIsResponseJSON\":\"someValue\"}" "Error": "Error response received from the HTTP server", "Headers": "{\":status\":[\"400\"], \"access-control-allow-credentials\":[\"true\"]}", "StatusCode": "400", "connection_type": "Http" } } ], "message": "Unable to execute HTTP Request", "status": "FAILED_PRECONDITION" } } |
Erro ao buscar o token de acesso | Ocorreu um erro ao recuperar o token de acesso para o tipo de autenticação OAuth Client Credentials Grant . |
Erro de autenticação de resumo por e-mail | O ambiente de execução do conector não recebeu um desafio de resumo ou do tipo incompatível. |
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 |
---|---|---|---|
proxy_enabled | BOOLEAN | Falso | Marque esta caixa de seleção para configurar um servidor proxy para a conexão. |
Usar a conexão HTTP 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. É possível usar a conexão em uma integração pela tarefa de conectores.
- Para entender como criar e usar a tarefa "Connectors" na integração da Apigee, consulte Tarefa Connectors.
- 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.