Consultez les connecteurs compatibles avec Application Integration.

Créer un script de démarrage

Cette page explique comment créer un script de démarrage pour le service Web, puis comment le valider.

Pour vous assurer que le service Web ne nécessite pas d'intervention manuelle, vous devez créer un script de démarrage. Le script de démarrage effectue les tâches suivantes :

  • Il lit les métadonnées de la machine virtuelle (VM) et définit la variable d'environnement pour les métadonnées avec le préfixe CONNECTOR_ENV. Toutes les données requises par les consommateurs sont extraites de Marketplace lors de la création de la VM et définies en tant que variables d'environnement dans Docker. Ces variables d'environnement peuvent ensuite être lues et traitées en conséquence dans l'application.
  • Il démarre le conteneur Docker dans lequel se trouve le service Web avec les variables d'environnement appropriées.

Le code suivant est un exemple de script de démarrage :

#!/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

Valider le script de démarrage

  1. Dans l'instance de VM, ajoutez les métadonnées du port et tous les autres paramètres requis lors de la création de la VM.
    gcloud compute instances add-metadata VM_NAME \                                                   
        --zone=VM_ZONE \
        --project=PROJECT_NAME \
        --metadata=CONNECTOR_ENV_PORT=8081
  2. Modifiez la VM à partir de l'UI (interface utilisateur) et ajoutez le script de démarrage mentionné dans la section sur l'automatisation.

    Vous pouvez également vous servir de la commande gcloud suivante :

    gcloud compute instances add-metadata VM_NAME \                                                   
        --zone=VM_ZONE \
        --project=PROJECT_NAME \
        --metadata-from-file startup-script=gcp-start.sh
  3. Après avoir ajouté le script de démarrage, connectez-vous à la VM en SSH et exécutez la commande suivante :
    sudo google_metadata_script_runner startup
  4. Exécutez la commande suivante pour vous assurer que le conteneur Docker s'exécute sur le port mentionné.
    sudo docker ps
  5. Exécutez la commande suivante pour arrêter et supprimer le service Docker. Après les tests, le service ne doit pas être exécuté sur la VM.
    sudo docker rm -f connector-service
  6. Étape suivante