Startskript erstellen
Auf dieser Seite wird beschrieben, wie Sie ein Startskript für den Webdienst erstellen und dann das Script validieren.
Damit der Webdienst nicht manuell gestartet werden muss, müssen Sie ein Startskript erstellen.Das Startskript führt folgende Aufgaben aus:
- Liest die Metadaten der virtuellen Maschine (VM) und legt die Umgebungsvariable für Metadaten mit dem Präfix
CONNECTOR_ENV
fest. Alle für Nutzer erforderlichen Daten werden während der VM-Erstellung aus dem Marketplace übernommen und in Docker als Umgebungsvariablen festgelegt. Diese Umgebungsvariablen können dann in der Anwendung gelesen und entsprechend verarbeitet werden. - Startet den Docker-Container mit dem Webdienst mit den entsprechenden Umgebungsvariablen.
Der folgende Code ist ein Beispiel für ein Startskript:
#!/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
Startskript validieren
- Fügen Sie der VM-Instanz die Metadaten für den Anschluss und alle anderen Parameter hinzu, die bei der VM-Erstellung erforderlich sind.
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata=CONNECTOR_ENV_PORT=8081
- Bearbeiten Sie die VM über die Benutzeroberfläche und fügen Sie das im Abschnitt „Automatisierung“ erwähnte Startskript hinzu.
Sie können auch den folgenden gcloud-Befehl verwenden:
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata-from-file startup-script=gcp-start.sh
- Nachdem Sie das Startskript hinzugefügt haben, stellen Sie eine SSH-Verbindung zur VM her und führen Sie den folgenden Befehl aus:
sudo google_metadata_script_runner startup
- Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Docker-Container auf dem angegebenen Port ausgeführt wird.
sudo docker ps
- Führen Sie den folgenden Befehl aus, um den Docker-Dienst zu beenden und zu entfernen. Nach dem Test darf der Dienst nicht mehr auf der VM ausgeführt werden.
sudo docker rm -f connector-service