Créer un script de démarrage
Cette page explique comment créer un script de démarrage pour le service Web, puis le valider.
Pour vous assurer que le démarrage du 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:
- 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 la place de marché lors de la création de la VM et sont 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. - Démarre le conteneur Docker contenant 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
- 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
- Modifiez la VM depuis l'UI et ajoutez le script de démarrage mentionné dans la section "Automatisation".
Vous pouvez également exécuter 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
- Après avoir ajouté le script de démarrage, connectez-vous à la VM via SSH et exécutez la commande suivante:
sudo google_metadata_script_runner startup
- Exécutez la commande suivante pour vous assurer que le conteneur Docker s'exécute sur le port mentionné.
sudo docker ps
- Exécutez la commande suivante pour arrêter et supprimer le service Docker. Après les tests, le service ne doit pas s'exécuter sur la VM.
sudo docker rm -f connector-service
- Découvrez comment créer un script de déploiement de VM.