HTTP
El conector HTTP proporciona conectividad al servicio HTTP y te permite usar APIs basadas en HTTP. El conector también admite la conectividad SSL/TLS mediante una configuración personalizada y varios mecanismos de autenticación, como la concesión de credenciales de cliente de OAuth 2.0, la autenticación básica y la autenticación Digest.
Antes de empezar
Antes de usar el conector HTTP, haz lo siguiente:
- En tu proyecto de Google Cloud:
- Asegúrate de que la conectividad de red esté configurada. Para obtener información sobre los patrones de red, consulta Conectividad de red.
- Concede el rol de gestión de identidades y accesos roles/connectors.admin al usuario que configure el conector.
- Concede los siguientes roles de gestión de identidades y accesos a la cuenta de servicio que quieras usar para el conector:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
Una cuenta de servicio es un tipo especial de cuenta de Google diseñada para representar a un usuario no humano que necesita autenticarse y disponer de autorización para acceder a los datos de las APIs de Google. Si no tienes una cuenta de servicio, debes crearla. El conector y la cuenta de servicio deben pertenecer al mismo proyecto. Para obtener más información, consulta el artículo Crear una cuenta de servicio.
- Habilita los siguientes servicios:
secretmanager.googleapis.com
(API Secret Manager)connectors.googleapis.com
(API Connectors)
Para saber cómo habilitar servicios, consulta Habilitar servicios.
Si estos servicios o permisos no se han habilitado en tu proyecto anteriormente, se te pedirá que los habilites al configurar el conector.
Configurar el conector
Una conexión es específica de una fuente de datos. Esto significa que, si tiene muchas fuentes de datos, debe crear una conexión independiente para cada una de ellas. Para crear una conexión, sigue estos pasos:
- En la consola de Cloud, ve a la página Integration Connectors > Connections (Conectores de integración > Conexiones) y, a continuación, selecciona o crea un proyecto de Google Cloud.
- Haga clic en + Crear nuevo para abrir la página Crear conexión.
- En la sección Ubicación, elige la ubicación de la conexión.
- Región: selecciona una ubicación de la lista desplegable.
Para ver la lista de todas las regiones admitidas, consulta Ubicaciones.
- Haz clic en Siguiente.
- Región: selecciona una ubicación de la lista desplegable.
- En la sección Detalles de la conexión, haz lo siguiente:
- Conector: selecciona HTTP en la lista desplegable de conectores disponibles.
- Versión del conector: seleccione la versión del conector en la lista desplegable de versiones disponibles.
- En el campo Connection Name (Nombre de conexión), introduce un nombre para la instancia de conexión.
Los nombres de las conexiones deben cumplir los siguientes criterios:
- Los nombres de conexión pueden contener letras, números o guiones.
- Las letras deben estar en minúsculas.
- Los nombres de conexión deben empezar por una letra y terminar por una letra o un número.
- Los nombres de conexión no pueden tener más de 49 caracteres.
- Si quiere, puede introducir una Descripción para la instancia de conexión.
- También puedes habilitar Registro en la nube y, a continuación, seleccionar un nivel de registro. De forma predeterminada, el nivel de registro es
Error
. - Cuenta de servicio: selecciona una cuenta de servicio que tenga los roles necesarios.
- Si quiere comprobar el estado de la conexión, puede especificar una URL de endpoint en el campo Comprobación de estado. La URL también puede incluir una dirección IP de adjunto de endpoint. El estado está activo de forma predeterminada.
- Si quieres, configura los ajustes del nodo de conexión:
- Número mínimo de nodos: introduce el número mínimo de nodos de conexión.
- Número máximo de nodos: introduce el número máximo de nodos de conexión.
Un nodo es una unidad (o réplica) de una conexión que procesa transacciones. Se necesitan más nodos para procesar más transacciones en una conexión y, a la inversa, se necesitan menos nodos para procesar menos transacciones. Para saber cómo influyen los nodos en el precio de tu conector, consulta la sección Precios de los nodos de conexión. Si no introduces ningún valor, de forma predeterminada, el número mínimo de nodos se establece en 2 (para mejorar la disponibilidad) y el máximo en 50.
-
Usar proxy: marca la casilla para configurar un servidor proxy para la conexión.
- Haga clic en + Añadir destino.
- Selecciona un Tipo de destino.
- Dirección de host: especifica el nombre de host o la dirección IP del destino.
Si quieres establecer una conexión privada con tu backend, haz lo siguiente:
- Crea una vinculación de servicio de PSC.
- Crea un endpoint attachment y, a continuación, introduce los detalles del endpoint attachment en el campo Host address (Dirección de host).
- Dirección de host: especifica el nombre de host o la dirección IP del destino.
- También puedes hacer clic en + AÑADIR ETIQUETA para añadir una etiqueta a la conexión en forma de par clave-valor.
- Si quieres usar SSL, selecciona Habilitar SSL. Se mostrarán los detalles de la configuración de SSL.
- Selecciona un tipo de almacén de confianza. Puede ser Pública, Privada o Conexión no segura.
- Selecciona los certificados tal como se muestran en función de la selección del almacén de confianza.
- Si usas un certificado autofirmado o un certificado de almacén de confianza privado, almacena el certificado raíz como un secreto de Secret Manager en formato PEM (Privacy Enhanced Mail) y, a continuación, en Almacén de confianza personalizado, selecciona el secreto necesario.
- Si usas mTLS, selecciona los certificados del almacén de claves en la sección Almacén de claves.
- También puedes seleccionar la versión de TLS.
- Introduce el paquete de cifrado admitido. Introduce varias suites de cifrado como valores separados por comas. Para obtener más información, consulta Conjuntos de cifrado admitidos.
- Haz clic en Siguiente.
- En la sección Destinations (Destinos), introduce los detalles del host remoto (sistema backend) al que quieras conectarte.
- Tipo de destino: selecciona un Tipo de destino.
- Para especificar el nombre de host o la dirección IP de destino, selecciona Dirección de host y introduce la dirección en el campo Host 1.
- Para establecer una conexión privada, selecciona Endpoint attachment (Endpoint adjunto) y elige el adjunto que quieras de la lista Endpoint Attachment (Endpoint adjunto).
Si quieres establecer una conexión pública con tus sistemas backend con seguridad adicional, puedes configurar direcciones IP de salida estáticas para tus conexiones y, a continuación, configurar las reglas de tu cortafuegos para que solo se permitan las direcciones IP estáticas específicas.
Para introducir más destinos, haga clic en + Añadir destino.
- Haz clic en Siguiente.
- Tipo de destino: selecciona un Tipo de destino.
-
En la sección Autenticación, introduce los detalles de autenticación.
- Seleccione un Tipo de autenticación e introduzca los detalles pertinentes.
La conexión HTTP admite los siguientes tipos de autenticación:
- Autenticación personalizada
- OAuth 2.0: concesión de credenciales de cliente
- Autenticación básica
- Autenticación Digest
- OAuth 2.0: código de autorización
- Cuenta de servicio
- Autenticación con token de ID de cuenta de servicio
- Autenticación con clave de API
- Haz clic en Siguiente.
Para saber cómo configurar estos tipos de autenticación, consulta Configurar la autenticación.
- Seleccione un Tipo de autenticación e introduzca los detalles pertinentes.
- Revisar: revisa los detalles de la conexión y la autenticación.
- Haz clic en Crear.
Configurar la autenticación
Introduce los detalles en función de la autenticación que quieras usar.
- Autenticación personalizada
Los detalles de autorización personalizados se pueden añadir como encabezado de solicitud durante la ejecución de la acción de la tarea Conectores.
- OAuth 2.0: concesión de credenciales de cliente
- ID de cliente: el ID de cliente que se usará para autenticar la solicitud HTTP.
- Secreto de cliente: secreto de Secret Manager que contiene el secreto de cliente para autenticar la solicitud HTTP.
- Formato de solicitud del token de acceso: formato de solicitud que se debe usar en las solicitudes para obtener el token de acceso del servidor de autorización.
Selecciona
body
para enviar el ID y el secreto de cliente como cuerpo de la solicitud, oheader
para enviarlos como encabezado codificado. - Ruta de solicitud de token: ruta de solicitud que se debe añadir a la URL del servidor de autorización para obtener la URL del token de acceso.
- Tiempo de vencimiento predeterminado: tiempo de vencimiento predeterminado (en segundos) del token de acceso. Este tiempo se usará en caso de que la respuesta del token de acceso no tenga tiempo de vencimiento. Si no se proporciona el valor, el token se actualizará en 6 horas.
- Autenticación básica
- Nombre de usuario: nombre de usuario que se usa para hacer la solicitud HTTP.
- Contraseña: secreto de Secret Manager que contiene la contraseña asociada al nombre de usuario proporcionado.
- Autenticación Digest
- Nombre de usuario: nombre de usuario que se usa para hacer la solicitud HTTP.
- Contraseña: secreto de Secret Manager que contiene la contraseña asociada al nombre de usuario proporcionado.
- OAuth 2.0: código de autorización
- ID de cliente: ID de cliente proporcionado por tu aplicación externa.
- Ámbitos: ámbitos de permisos admitidos por tu aplicación externa.
- Secreto de cliente: selecciona el secreto de Secret Manager. Debes haber creado el secreto de Secret Manager antes de configurar esta autorización.
- Versión del secreto: versión del secreto de Secret Manager para el secreto de cliente.
- De forma opcional, habilita PKCE (clave de prueba para el intercambio de código) si tu servidor backend lo admite.
- URL de autorización: introduce la URL de autorización de tu aplicación externa.
- URL del token de acceso: introduce la URL para obtener el token de acceso de tu aplicación externa.
- Cuenta de servicio
Selecciona esta opción para autenticarte con la cuenta de servicio que has proporcionado en los pasos anteriores al configurar esta conexión. Asegúrate de haber proporcionado la cuenta de servicio que tiene los roles y permisos de gestión de identidades y accesos pertinentes necesarios para la autenticación.
- Permisos: selecciona los permisos de OAuth 2.0 necesarios en el menú desplegable. Para obtener más información, consulta Ámbitos de acceso.
- Autenticación con token de ID de cuenta de servicio
Selecciona esta opción para autenticarte con el token de ID generado a partir de la cuenta de servicio que has proporcionado en los pasos anteriores. Esta autenticación usa tokens web JSON (JWT) para la autenticación. El proveedor de tokens de ID firma y emite los JWTs para la autenticación mediante una cuenta de servicio.
- Audiencia: introduce los destinatarios a los que va dirigido el JWT.
- Nombre del encabezado: introduce el nombre del encabezado del token de ID generado que se va a usar en el encabezado HTTP. Si no especifica ningún valor en este campo, el valor de la clave se define de forma predeterminada como
Authorization
.
- Autenticación con clave de API
Seleccione esta opción para autenticarse mediante una clave de API.
- Clave de API: selecciona el secreto de Secret Manager de la clave de API.
- Versión del secreto: selecciona la versión del secreto.
- Nombre del parámetro de la clave de API: introduce un nombre de parámetro para la clave de API. Una clave de API se envía a tu servidor backend como un par clave-valor. El valor que introduzcas aquí se usará como nombre de la clave de API que hayas seleccionado anteriormente.
- Ubicación de la clave de API: selecciona dónde quieres añadir la clave de API en la solicitud.
En el caso del tipo de autenticación Authorization code
, después de crear la conexión, debes seguir algunos pasos más para configurar la autenticación. Para obtener más información, consulta Pasos adicionales después de crear la conexión.
Paquetes de cifrado admitidos
Versión de TLS | Paquetes de cifrado admitidos |
---|---|
1.2 |
|
1.3 |
|
Pasos adicionales después de crear la conexión
Si has seleccionado OAuth 2.0 - Authorization code
para la autenticación, debes seguir estos pasos adicionales después de crear la conexión:
- En la página Conexiones,
busca la conexión que acabas de crear.
Verás que el estado del nuevo conector será Autorización obligatoria.
- Haz clic en Se requiere autorización.
Se mostrará el panel Editar autorización.
- Copia el valor de URI de redirección en tu aplicación externa.
- Verifica los detalles de la autorización.
- Haz clic en Autorizar.
Si la autorización se realiza correctamente, el estado de la conexión será Activo en la página Conexiones.
Reautorización del código de autorización
Si usas el tipo de autenticación Authorization code
y has hecho algún cambio en la configuración de tu aplicación HTTP de backend, debes volver a autorizar tu conexión HTTP. Para volver a autorizar una conexión, sigue estos pasos:
- En la página Conexiones, haga clic en la conexión que quiera.
Se abrirá la página de detalles de la conexión.
- Haz clic en Editar para modificar los detalles de la conexión.
- Verifica los detalles de OAuth 2.0 - Código de autorización en la sección Autenticación.
Si es necesario, haz los cambios pertinentes.
- Haz clic en Guardar. Se te dirigirá a la página de detalles de la conexión.
- En la sección Autenticación, haga clic en Editar autorización. Se muestra el panel Autorizar.
- Haz clic en Autorizar.
Si la autorización se realiza correctamente, el estado de la conexión será Activa en la página Conexiones.
Entidades, operaciones y acciones
Todos los conectores de integración proporcionan una capa de abstracción para los objetos de la aplicación conectada. Solo puedes acceder a los objetos de una aplicación a través de esta abstracción. La abstracción se te muestra como entidades, operaciones y acciones.
- Entidad: una entidad se puede considerar como un objeto o un conjunto de propiedades en la aplicación o el servicio conectados. La definición de una entidad varía de un conector a otro. Por ejemplo, en un conector de base de datos, las tablas son las entidades; en un conector de servidor de archivos, las carpetas son las entidades; y en un conector de sistema de mensajería, las colas son las entidades.
Sin embargo, es posible que un conector no admita o no tenga ninguna entidad. En ese caso, la lista
Entities
estará vacía. - Operación: una operación es la actividad que puedes realizar en una entidad. Puedes realizar cualquiera de las siguientes operaciones en una entidad:
Al seleccionar una entidad de la lista disponible, se genera una lista de operaciones disponibles para la entidad. Para ver una descripción detallada de las operaciones, consulta las operaciones de entidades de la tarea Connectors. Sin embargo, si un conector no admite ninguna de las operaciones de entidad, esas operaciones no admitidas no se mostrarán en la lista
Operations
. - Acción: una acción es una función de primera clase que se pone a disposición de la integración
a través de la interfaz del conector. Una acción te permite hacer cambios en una o varias entidades y varía de un conector a otro. Normalmente, una acción tendrá algunos parámetros de entrada y un parámetro de salida. Sin embargo, es posible que un conector no admita ninguna acción, en cuyo caso la lista
Actions
estará vacía.
Limitaciones del sistema
El conector HTTP puede procesar 100 transacciones por segundo por nodo y limita las transacciones que superen este límite. De forma predeterminada, Integration Connectors asigna 2 nodos (para mejorar la disponibilidad) a una conexión.
Para obtener información sobre los límites aplicables a Integration Connectors, consulta Límites.
Acciones admitidas
El conector HTTP admite las siguientes acciones:
Acción HttpRequest
El conector HTTP garantiza al menos un intento de enviar la solicitud al endpoint configurado. Esto está sujeto al Acuerdo de Nivel de Servicio (ANS) de Application Integration. En las siguientes tablas se describen los parámetros de entrada y salida de la acción HttpRequest.
Parámetros de entrada de la acción HttpRequest
Nombre del parámetro | Tipo de datos | Obligatorio | Descripción |
---|---|---|---|
URL | Estructura | No | URL para la que quiere enviar la solicitud.
La URL tiene el formato <scheme>://<netloc>/<path>;<params>?<query>#<fragment> .
Si proporcionas netloc , se anulará el nombre de host proporcionado durante la creación de la conexión. |
Método | Cadena | No | Método de solicitud HTTP, como GET, POST, DELETE o PUT. El valor predeterminado es GET. |
Encabezados | Estructura | No | Encabezados de solicitud HTTP. |
Body | Cadena | No | Cuerpo de la solicitud HTTP. |
RequestHasBytes | Booleano | No | Indica si se debe enviar la solicitud como bytes. Si se define como true , debe enviar la solicitud
como una cadena codificada en Base64 en el parámetro Body . El valor predeterminado es false . |
ResponseHasBytes | Booleano | No | Indica si se debe recibir la respuesta como bytes. Si se define como true , recibirás la respuesta como una cadena codificada en Base64 en el parámetro de salida ResponseBody . El valor predeterminado es false . |
HttpVersion | Cadena | No | Versión de HTTP que se usará al hacer una solicitud. Los valores admitidos son 1.1 y 2. Si especificas la versión 2, se llevará a cabo la negociación de ALPN (negociación del protocolo de la capa de la aplicación) y se usará la versión 1.1 si el servidor no admite la versión 2. El valor predeterminado es 2. |
ResponseFormat | Cadena | No | Especifica el formato de la respuesta del conector. Los valores posibles son v1 y v2 .
El valor predeterminado es v1 .
Respuesta de ejemplo de la versión 1: [{ "ResponseBody": "{\n \"status\": 200\n}" }, { "StatusCode": 200.0 }, { "HttpVersion": "2" }, { "ResponseHeaders": { ":status": "200", "content-length": "19" } }] Respuesta de ejemplo de la versión 2: [{ "ResponseBody": "{\n \"status\": 200\n}", "StatusCode": 200.0, "HttpVersion": "2", "ResponseHeaders": { ":status": "200", "content-length": "19" } }] |
FailOnError | Booleano | No | Especifica el comportamiento de la conexión cuando se produce un error en tu aplicación backend.
El valor predeterminado es |
Tiempo de espera | Entero | No | Valor de tiempo de espera de la solicitud HTTP en segundos. El valor máximo permitido es de 150 segundos. |
Parámetros de salida de la acción HttpRequest
Nombre del parámetro | Tipo de datos | Descripción |
---|---|---|
ResponseBody | Cadena | Respuesta recibida del servidor HTTP. |
StatusCode | Entero | Código de estado recibido del servidor HTTP. |
HttpVersion | Cadena | Versión negociada para la solicitud HTTP. |
ResponseHeaders | Estructura | Encabezados de respuesta HTTP en forma de pares key,value . |
Ejemplos
En los ejemplos de esta sección se describen las siguientes operaciones:
- Configurar una carga útil de solicitud
- Enviar contenido de bytes
- Obtener contenido de bytes
En la siguiente tabla se muestran los ejemplos de situaciones y la configuración correspondiente en la tarea Conectores:
Tarea | Configuración |
---|---|
Configurar una carga útil de solicitud |
En este ejemplo se envía una solicitud POST a la URL |
Enviar contenido de bytes |
Para enviar contenido de bytes (como archivos), debes asignar el valor
En este ejemplo se envía una solicitud POST al servidor |
Obtener contenido de bytes |
Para obtener bytes (como cadena Base64) del servidor, debes definir el atributo de solicitud
En este ejemplo se envía una solicitud GET al servidor |
Códigos de error
En esta sección se describen los mensajes de error que pueden aparecer al usar la conexión HTTP.
Mensaje de error | Causa |
---|---|
Error al conectar con el servidor HTTP | No se ha podido establecer la conexión HTTP con el servidor debido a un error de handshake SSL o a un endpoint del servidor HTTP incorrecto. |
Se ha recibido una respuesta de error del servidor HTTP | El servidor HTTP al que intentas conectarte devuelve una respuesta de error con el código de estado 4xx o 5xx. Respuesta de ejemplo:
{ "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" } } |
Error al obtener el token de acceso | Se ha producido un error al obtener el token de acceso para el tipo de autenticación OAuth Client Credentials Grant . |
Error de autenticación Digest | El tiempo de ejecución del conector no ha recibido un reto de resumen o el reto es de un tipo no admitido. |
Crear conexiones con Terraform
Puedes usar el recurso de Terraform para crear una conexión.
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Para ver una plantilla de Terraform de ejemplo para crear una conexión, consulta la plantilla de ejemplo.
Cuando crees esta conexión con Terraform, debes definir las siguientes variables en el archivo de configuración de Terraform:
Nombre del parámetro | Tipo de datos | Obligatorio | Descripción |
---|---|---|---|
proxy_enabled | BOOLEAN | Falso | Seleccione esta casilla para configurar un servidor proxy para la conexión. |
Usar la conexión HTTP en una integración
Una vez que hayas creado la conexión, estará disponible tanto en Apigee Integration como en Application Integration. Puedes usar la conexión en una integración a través de la tarea Conectores.
- Para saber cómo crear y usar la tarea Conectores en la integración de Apigee, consulta Tarea Conectores.
- Para saber cómo crear y usar la tarea Conectores en Application Integration, consulta Tarea Conectores.
Obtener ayuda de la comunidad de Google Cloud
Puedes publicar tus preguntas y hablar sobre este conector en la comunidad de Google Cloud, en los foros de Cloud.Siguientes pasos
- Consulta cómo suspender y reanudar una conexión.
- Consulta cómo monitorizar el uso de los conectores.
- Consulta cómo ver los registros de conectores.