Consulta los conectores compatibles con Application Integration.
Crea un servicio web
En esta página, se describe cómo crear un servicio web en la VM con el framework web Gin escrito en Golang. Puedes crear el servicio web en cualquier otro framework que desees usar.
- Para descargar el paquete de Go en la VM, ejecuta el siguiente comando en la VM:
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
- Instala Go en la VM. Para obtener más información, consulta Instala Go.
- Para crear un directorio nuevo para el servicio web, ejecuta el siguiente comando:
mkdir SERVICE_REPO cd SERVICE_REPO
Consideraciones adicionales
Cuando crees un servicio web, debes tener en cuenta los siguientes factores:
- Las entradas que necesitas durante la creación de la VM están disponibles como variables de entorno y tienen el siguiente prefijo:
CONNECTOR_ENV_
. - Cuando configures el servicio web, usa las variables de entorno para leer esos valores.
- Solo se deben tomar como entrada los valores necesarios para configurar el servicio web durante la creación de la VM.
- El puerto del servicio debe tomarse como entrada de la variable CONNECTOR_ENV_PORT.
- Usa otras variables de entorno para las entradas opcionales.
- También puedes obtener entradas durante la creación de la conexión. Puedes definir estos campos cuando creas el conector personalizado y pasarlos como ruta, consulta o encabezados en cada llamada a la API.
- Asegúrate de que el servidor se ejecute en localhost.
Logging
Registra la información requerida y envía los registros a Cloud Logging. Esto ayuda a los consumidores del conector a hacer un seguimiento de las fallas y depurarlas. Para publicar registros en Cloud Logging, puedes usar el siguiente cliente de Cloud Logging disponible en Go: https://pkg.go.dev/cloud.google.com/go/logging#NewClient
Debes inicializar el registrador en main y agregar un middleware en Gin para hacer un seguimiento de todas las solicitudes entrantes. Debes hacer un seguimiento del método, la ruta, el estado y la latencia de una solicitud. Para filtrar los registros, usa la gravedad adecuada durante el registro. En el servicio web, lee el nivel de registro de la variable de entorno. El nivel de registro se toma como entrada opcional durante la creación de la VM. De forma predeterminada, se pueden usar los registros de información. Estos son los niveles de registro:
- DEBUG: Registra cada parte de la solicitud, incluidos los registros de seguimiento de la solicitud/respuesta HTTP.
- INFO: Registra el inicio y el cierre del servicio, las solicitudes y otra información.
- ERROR: Registra fallas en las solicitudes, excepciones de formato y otros errores.
Cierre ordenado
Configura el servidor para que se apague de forma correcta y controle las solicitudes en curso. Para obtener información sobre cómo reiniciar o detener el servidor de forma ordenada, consulta Reinicio o detención ordenados.
Simultaneidad
Los servidores de Gin admiten inherentemente solicitudes simultáneas con rutinas de Go. De forma predeterminada, se permite que las rutinas de Go procesen una cantidad indefinida de solicitudes. Sin embargo, en algunos casos, cuando se espera que las solicitudes consuman muchos recursos, usa grupos de trabajadores para restringir y almacenar en búfer las solicitudes en el servidor. Para obtener más información, consulta el ejemplo de grupos de trabajadores.
Cómo probar y compilar el objeto binario
- Configura el puerto y ejecuta el servidor con los siguientes comandos:
- Para verificar el servidor, ejecuta el siguiente comando curl en la VM:
curl -X POST -H "Content-Type: application/json" -H "X-Custom-Header: MyValue" -d '{"name": "Alice", "address": "123 Main St", "gender": "F"}' http://localhost:8081/postData/456
curl -v http://localhost:8081/getData -H "TestKey: MyValue"
- Crea el archivo binario y úsalo como imagen de VM con el siguiente comando:
go build -o SERVICE_NAME
- Mueve el objeto binario a la carpeta raíz con el siguiente comando:
sudo cp SERVICE_NAME /opt
- Vuelve a ejecutar el servicio para verificar que el objeto binario funcione según lo esperado con el siguiente comando:
sudo chmod +x SERVICE_NAME ./SERVICE_NAME
EXPORT CONNECTOR_ENV_PORT = 8081 go get . go run .
Estos comandos agrupan las bibliotecas requeridas y ejecutan el servidor.
Organiza la aplicación en contenedores
- Instala Docker. Para obtener más información, consulta Cómo instalar Docker.
- Crea un archivo de Docker para ejecutar archivos binarios.
FROM alpine:latest WORKDIR /opt COPY . . CMD ["./SERVICE_NAME"]
- Compila el contenedor del conector con el siguiente comando:
sudo docker build -t connector-container .
- Ejecuta el contenedor de Docker. Establece
--restart=unless-stopped
para reiniciar el servicio en caso de falla inesperada.
Tarea a nivel del contenedor
Todos los registros en stdout se pueden enrutar a Cloud Logging con el controlador de registros gcplogs mientras se ejecuta el contenedor de Docker. Esto ayuda a hacer un seguimiento del inicio, la falla inesperada o el apagado del servicio.
Para enrutar los registros a Cloud Logging, ejecuta el siguiente comando:sudo docker run --name connector-service -e CONNECTOR_ENV_PORT=$CONNECTOR_ENV_PORT -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT --restart=unless-stopped ----log-driver=gcplogs connector-container
¿Qué sigue?
- Obtén más información para crear un conector personalizado.