HTTP

O conector HTTP fornece conectividade ao serviço HTTP e consome APIs baseadas em HTTP. O conector também oferece suporte à conectividade SSL/TLS por meio de configuração personalizada e oferece suporte a várias como Concessão de credenciais do cliente OAuth 2.0, Basic e Digest.

Antes de começar

Antes de usar o conector HTTP, faça o seguinte:

  • No seu projeto do Google Cloud, faça o seguinte:
    • Conceder o papel do IAM roles/connectors.admin ao usuário e configurar 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.

    Acessar 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 conferir a lista de todas as regiões com suporte, consulte Locais.

    2. Clique em Next.
  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. Insira o pacote de criptografia compatível. Digite vários pacotes de criptografia, conforme valores separados por vírgula. Para mais informações, consulte Pacotes de criptografia compatíveis.
      .
    10. Clique em Next.
  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.
      • 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.

    2. Clique em Next.
  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 Next.
  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 da solicitação durante a ação 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 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.
    • Default Expiration Time: 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 de 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 o servidor de back-end for compatível, ative a PKCE (PKCE, na sigla em inglês).
    • 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.

    Para o tipo de autenticação Authorization code, depois de criar a conexão, faça o seguinte: você precisa executar mais algumas etapas para configurar a autenticação. Para mais informações, consulte Outras etapas após a criação da conexão.

  • Conta de serviço

    Selecione esta opção para autenticar usando a conta de serviço que você informou no as 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: digite os escopos de acesso exigidos por vírgulas, separados por vírgula. Para mais informações, consulte Escopos de acesso.
  • Autenticação de token de ID da conta de serviço

    Selecione esta opção para autenticar usando o token de ID gerado da conta de serviço que que você forneceu nas etapas anteriores. Essa autenticação usa JSON Web Tokens (JWT) para autenticação. O provedor do token de ID assina e emite a JWTs para autenticação usando uma conta de serviço.

    • Público-alvo: insira os destinatários para os quais o JWT se destina.
    • Nome do cabeçalho: digite o nome do cabeçalho do token de ID gerado que será usado no cabeçalho HTTP. Se você não especificar qualquer valor neste campo. Por padrão, a chave-valor é definida como Authorization.
  • 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: digite 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.

Conjuntos de criptografia compatíveis

Versão TLS Conjuntos de criptografia compatíveis
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 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 será exibido.

  3. Copie o valor de Redirect URI 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 no 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 mudanças na configuração no HTTP de back-end reautorize a conexão HTTP. Para autorizar uma conexão novamente, 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 Editar 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 mudanças 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. Isso mostra o painel Autorizar.
  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, 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 , 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 compatíveis

O conector HTTP oferece suporte às ações a seguir:

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.
  • 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.

Tempo limite Número inteiro Não Valor de tempo limite da 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
  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 de tarefa da tarefa Conectores, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo 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 de bytes

Para enviar conteúdo em bytes (como arquivos), defina o atributo de solicitação RequestHasBytes. como true e defina o atributo body como a string codificada em Base64 que você quer enviar, conforme o 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 de tarefa da tarefa Conectores, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo 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.

Acessar conteúdo de bytes

Para receber bytes (como string Base64) do servidor, você precisa definir o ResponseHasBytes de solicitação ao 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 de tarefa da tarefa Conectores, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo 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 o 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

É 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 a criação de conexões, 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 que você cria a conexão, ela fica disponível nos Apigee Integration e Application Integration. 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 no 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