See the supported connectors for Application Integration.

Create a startup script

This page describes how to create a startup script for the web service and then validate the script.

To ensure that bringing up the web service does not require manual intervention, you must create a startup script.The startup script does the following tasks:

  • Reads the virtual machine (VM) metadata and sets the environment variable for metadata with the CONNECTOR_ENV prefix. Any data required by consumers is taken during VM creation from Marketplace and is set as environment variables in docker. These environment variables can then be read and processed accordingly in the application.
  • Starts the docker container containing the web service with the appropriate environment variables.

The following code is a sample startup script:

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

Validate the startup script

  1. In the VM instance, add the metadata for the port and all other parameters which are required during VM creation.
    gcloud compute instances add-metadata VM_NAME \                                                   
        --zone=VM_ZONE \
        --project=PROJECT_NAME \
        --metadata=CONNECTOR_ENV_PORT=8081
  2. Edit the VM from UI and add the startup script mentioned in the automation section.

    You can also use the following gcloud command:

    gcloud compute instances add-metadata VM_NAME \                                                   
        --zone=VM_ZONE \
        --project=PROJECT_NAME \
        --metadata-from-file startup-script=gcp-start.sh
  3. After adding the startup script, ssh to the VM and run the following command:
    sudo google_metadata_script_runner startup
  4. Run the following command to ensure that the docker container is running on the mentioned port.
    sudo docker ps
  5. Run the following command to stop and remove the docker service. After testing, the service must not be running on the VM.
    sudo docker rm -f connector-service
  6. What's next

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2024-12-19 UTC.