HTTP

O conector HTTP fornece conectividade ao serviço HTTP e consome APIs baseadas em HTTP. Ele também oferece suporte à conectividade SSL/TLS por meio de configuração personalizada e oferece suporte 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 o papel do IAM roles/connectors.admin ao usuário que estiver 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:

  1. No console do Cloud, acesse a página Integration Connectors > Conexões e selecione ou crie um projeto do Google Cloud.

    Acesse a página "Conexões"

  2. Clique em + Criar nova para abrir a página Criar conexão.
  3. Na seção Local, escolha o local da conexão.
    1. Região: selecione um local na lista suspensa.

      Para acessar a lista de todas as regiões com suporte, consulte Locais.

    2. Clique em Próxima.
  4. Na seção Detalhes da conexão, faça o seguinte:
    1. Conector: selecione HTTP na lista suspensa de conectores disponíveis.
    2. Versão do conector: selecione a versão do conector na lista suspensa de versões disponíveis.
    3. 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 exceder 63 caracteres.
    4. Como opção, insira uma Descrição para a instância de conexão.
    5. Conta de serviço: selecione uma conta de serviço que tenha os papéis necessários.
    6. 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.

    7. Usar proxy: marque a caixa de seleção para configurar um servidor proxy para a conexão.
      1. Clique em + Adicionar destino.
      2. 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:

    8. Outra opção é clicar em + ADICIONAR MARCADOR para adicionar um rótulo à conexão na forma de um par de chave-valor.
    9. Como opção, se quiser usar SSL, selecione Ativar SSL. Os detalhes da configuração do SSL serão exibidos.
      1. Selecione um tipo de loja de confiança. Pode ser Pública, Particular ou Conexão não segura.
      2. Selecione os certificados com base na sua seleção de loja de confiança.
      3. Se você estiver usando mTLS, selecione os certificados de armazenamento de chaves na seção Armazenamento de chaves.
      4. Opcionalmente, selecione a versão TLS.
      5. Informe o pacote de criptografia compatível. Insira vários conjuntos de criptografia como valores separados por vírgulas. Para mais informações, consulte Conjuntos de criptografia compatíveis.
    10. Clique em Próxima.
  5. Na seção Destinos, insira os detalhes do host remoto (sistema de back-end) ao qual você quer se conectar.
    1. Tipo de destino: selecione um Tipo de destino.
      1. No campo Endereço do host, especifique o nome do host ou o endereço IP do destino.
        1. Se você quiser estabelecer uma conexão privada com seus sistemas de back-end, siga estas etapas:
          1. Crie um anexo do serviço PSC.
          2. Crie um anexo de endpoint e insira os detalhes dele no campo Endereço do host.
        2. 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.

      Se quiser inserir mais destinos, clique em + Adicionar destino.

    2. Clique em Próxima.
  6. Na seção Autenticação, insira os detalhes da autenticação.
    1. 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:

    2. Para entender como configurar esses tipos de autenticação, consulte Configurar autenticação.

    3. Clique em Próxima.
  7. Revisão: revise os detalhes de conexão e autenticação.
  8. Clique em Criar.

Configurar a autenticação

Digite os detalhes com base na autenticação que você quer usar.

  • Autenticação personalizada

    Os detalhes da autorização personalizada podem ser adicionados como um cabeçalho de solicitação durante a execução de ação da tarefa Conectores.

  • OAuth 2.0: concessão de credenciais do 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 ou header 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.
    • Tempo de expiração padrão: 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 seis 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 aceitos pelo 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.
    • Se quiser, ative a chave de prova para troca de código (PKCE, na sigla em inglês) se o servidor de back-end for compatível.
    • URL de autorização : insira o URL de autorização do seu aplicativo externo.
    • URL do token de acesso : insira o URL para receber o token de acesso do seu aplicativo externo.

    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 Etapas adicionais após a criação da conexão.

  • Conta de serviço

    Selecione esta opção para autenticar usando a conta de serviço fornecida nas etapas anteriores ao configurar essa conexão. Verifique se você forneceu à conta de serviço os papéis e as permissões relevantes do IAM necessários para autenticação.

    • Escopos: insira os escopos de acesso separados por vírgula exigidos por você. Para mais informações, consulte Escopos de acesso.
  • Autenticação de token do ID da conta de serviço

    Selecione esta opção para autenticar usando o token de ID gerado da conta de serviço fornecida nas etapas anteriores. Esta autenticação usa JSON Web Tokens (JWT). 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 para quem o JWT se destina.
    • Header Name: digite o nome do cabeçalho do token de ID gerado que será usado no cabeçalho HTTP. Se você não especificar um valor para esse campo, a chave-valor será definida 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 o secret do Secret Manager referente à 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 ao servidor de back-end como um par de chave-valor. O valor inserido aqui será usado como o nome da chave de API selecionada anteriormente.
    • Local da chave de API: selecione onde você quer adicionar a chave de API na solicitação.

Conjuntos de criptografia com suporte

Versão TLS Conjuntos de criptografia com suporte
1,2
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
1.3
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256

Etapas adicionais após a criação da conexão

Se você selecionou OAuth 2.0 - Authorization code para autenticação, siga estas etapas extras depois de criar a conexão:

  1. Na página Conexões, localize a conexão recém-criada.

    O Status do novo conector será Autorização necessária.

  2. Clique em Autorização necessária.

    O painel Editar autorização vai aparecer.

  3. Copie o valor do URI de redirecionamento no seu aplicativo externo.
  4. Verifique os detalhes da autorização.
  5. 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 para o código de autorização

Se você estiver usando o tipo de autenticação Authorization code e tiver feito alterações na configuração no seu aplicativo HTTP de back-end, autorize sua conexão HTTP novamente. Para autorizar novamente uma conexão, siga estas etapas:

  1. Clique na conexão necessária na página Conexões.

    A página de detalhes da conexão será aberta.

  2. Clique em Edit para editar os detalhes da conexão.
  3. Verifique os detalhes de OAuth 2.0 - código de autorização na seção Autenticação.

    Se necessário, faça as alterações necessárias.

  4. Clique em Salvar. Isso leva você à página de detalhes da conexão.
  5. Clique em Editar autorização na seção Autenticação. O painel Autorizar será exibido.
  6. 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, essas operações 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. 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 , e limita todas as transações além desse limite. Por padrão, os Integration Connectors alocam 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 permitidas

O conector HTTP é compatível com as 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 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.
  • true: gera uma exceção. A exceção gerada pelo back-end é propagada na resposta da conexão.
  • false: não gera uma exceção. Mas retorna o código e a mensagem de erro na resposta.

O valor padrão é true.

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.

Examples

Os exemplos nesta seção descrevem as seguintes operações:

  • Configurar um payload de solicitação
  • Enviar conteúdo em bytes
  • Receber conteúdo em 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
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação HttpRequest e clique em Concluído.
  3. Na seção Entrada da tarefa da tarefa Connectors, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo Default Value:
    
    {
      "Url": {
        "scheme": "https",
        "netloc": "httpbin.org",
        "path": "post",
        "query": "example=A&sort=value",
        "fragment": "exampleFragment"
      },
      "Method": "POST",
      "Headers": {
        "Accept": ["application/json", "application/xml"],
        "a": "b"
      },
      "Body": "{\"thisIsRequestJSON\":\"someValue\"}"
    }
    
  4. Clique em Salvar.

Este exemplo faz uma solicitação POST para o URL https://httpbin.org/post?example=A&=value#exampleFragment. E como netloc é fornecido no payload, ele substitui o nome do host fornecido durante a criação da conexão.

Enviar conteúdo em bytes

Para enviar conteúdo em bytes (como arquivos), defina o atributo de solicitação RequestHasBytes como true e configure o atributo body para a string codificada em Base64 que você quer enviar, conforme mostrado no exemplo abaixo.

  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação HttpRequest e clique em Concluído.
  3. Na seção Entrada da tarefa da tarefa Connectors, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo Default Value:
    
    {
      "Url": {
        "scheme": "https",
        "netloc": "httpbin.org",
      },
      "Method": "POST",
      "Headers": {
        "Accept": ["application/json", "application/xml"],
        "a": "b"
      },
      "Body": "SGVsbG8gV29ybGQ=",
      "RequestHasBytes":true
    }
  4. Clique em Salvar.

Este exemplo faz uma solicitação POST para o servidor httpbin.org e, no corpo da solicitação, envia o conteúdo do arquivo na forma de uma string codificada em Base64. O servidor pode decidir como processar o conteúdo do arquivo.

Receber conteúdo em bytes

Para receber bytes (como string Base64) do servidor, você precisa definir o atributo de solicitação ResponseHasBytes como true, conforme mostrado no exemplo a seguir.

  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação HttpRequest e clique em Concluído.
  3. Na seção Entrada da tarefa da tarefa Connectors, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo Default Value:
    
    {
      "Url": {
        "scheme": "https",
        "netloc": "httpbin.org",
      },
      "Method": "GET",
      "ResponseHasBytes":true
    }
  4. Clique em Salvar.

Este exemplo faz uma solicitação GET para o servidor httpbin.org e, no corpo da solicitação, define ResponseHasBytes como true.

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 o desafio é de um tipo incompatível.

Usar o Terraform para criar conexões

Use o recurso do Terraform (em inglês) para criar uma nova conexão.

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Confira um exemplo de modelo do Terraform para criar uma conexão em exemplo.

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 essa 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 ficará disponível tanto na Apigee Integration quanto na Application Integration. Use a conexão em uma integração por meio da tarefa Conectores.

  • Para entender como criar e usar a tarefa Conectores na integração da Apigee, consulte Tarefa Conectores.
  • Para entender como criar e usar a tarefa de conectores na Application Integration, 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