查看 Application Integration 支持的连接器。
创建启动脚本
本页介绍了如何为 Web 服务创建启动脚本,然后验证该脚本。
为确保启动 Web 服务不需要人工干预,您必须创建启动脚本。启动脚本会执行以下任务:
- 读取虚拟机 (VM) 元数据,并为带有
CONNECTOR_ENV
前缀的元数据设置环境变量。使用者所需的任何数据都会在虚拟机创建期间从 Marketplace 中获取,并设置为 Docker 中的环境变量。然后,可以在应用中读取并相应地处理这些环境变量。 - 启动包含 Web 服务的 Docker 容器,并使用适当的环境变量。
以下是一个启动脚本示例:
#!/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
验证启动脚本
- 在虚拟机实例中,添加端口的元数据以及创建虚拟机期间所需的所有其他参数。
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata=CONNECTOR_ENV_PORT=8081
- 通过界面修改虚拟机,并添加自动化部分中提到的启动脚本。
您还可以使用以下 gcloud 命令:
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata-from-file startup-script=gcp-start.sh
- 添加启动脚本后,通过 SSH 连接到虚拟机并运行以下命令:
sudo google_metadata_script_runner startup
- 运行以下命令,确保 Docker 容器正在指定端口上运行。
sudo docker ps
- 运行以下命令以停止并移除 Docker 服务。测试结束后,服务不得在虚拟机上运行。
sudo docker rm -f connector-service