Consulta los conectores compatibles con Application Integration.

Crea una secuencia de comandos de inicio

En esta página, se describe cómo crear una secuencia de comandos de inicio para el servicio web y, luego, validarla.

Para asegurarte de que la activación del servicio web no requiera intervención manual, debes crear una secuencia de comandos de inicio.Esta secuencia realiza las siguientes tareas:

  • Lee los metadatos de la máquina virtual (VM) y establece la variable de entorno para los metadatos con el prefijo CONNECTOR_ENV. Los datos que requieren los consumidores se toman de Marketplace durante la creación de la VM y se configuran como variables de entorno en Docker. Luego, estas variables de entorno se pueden leer y procesar según corresponda en la aplicación.
  • Inicia el contenedor de Docker que contiene el servicio web con las variables de entorno adecuadas.

El siguiente código es un ejemplo de una secuencia de comandos de inicio:

#!/bin/bash

# 1. Fetch Metadata Keys
metadata_keys_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/"
metadata_keys=$(curl -H "Metadata-Flavor: Google" "$metadata_keys_url")

# 2. Set Environment Variables for CONNECTOR_ENV Keys (with error handling)
for key in $metadata_keys; do
  if [[ $key == CONNECTOR_ENV_* ]]; then
    metadata_value_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/$key"

    # Fetch value with error handling
    value=$(curl -H "Metadata-Flavor: Google" "$metadata_value_url" 2>/dev/null)
    if [[ -z "$value" ]]; then
      echo "Warning: No value found for key '$key'. Skipping." >&2 # Log the warning to stderr
      continue  # Skip to the next iteration
    fi
    export "$key=$value"
  fi
done

# 3. Run Docker with Environment Variables
sudo docker stop connector-service || true
sudo docker run \
  --name connector-service \
 $(env | grep CONNECTOR_ENV_ | sed 's/=/="/;s/$/"/' | sed 's/^/-e /') \
 -d -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT \
 --restart=unless-stopped \
  connector-container

Valida la secuencia de comandos de inicio

  1. En la instancia de VM, agrega los metadatos del puerto y todos los demás parámetros que se requieren durante la creación de la VM.
    gcloud compute instances add-metadata VM_NAME \                                                   
        --zone=VM_ZONE \
        --project=PROJECT_NAME \
        --metadata=CONNECTOR_ENV_PORT=8081
  2. Edita la VM desde la IU y agrega la secuencia de comandos de inicio que se menciona en la sección de automatización.

    También puedes usar el siguiente comando de gcloud:

    gcloud compute instances add-metadata VM_NAME \                                                   
        --zone=VM_ZONE \
        --project=PROJECT_NAME \
        --metadata-from-file startup-script=gcp-start.sh
  3. Después de agregar la secuencia de comandos de inicio, establece una conexión SSH con la VM y ejecuta el siguiente comando:
    sudo google_metadata_script_runner startup
  4. Ejecuta el siguiente comando para asegurarte de que el contenedor de Docker se esté ejecutando en el puerto mencionado.
    sudo docker ps
  5. Ejecuta el siguiente comando para detener y quitar el servicio de Docker. Después de la prueba, el servicio no debe ejecutarse en la VM.
    sudo docker rm -f connector-service
  6. ¿Qué sigue?