查看 Application Integration 支援的連接器。
建立啟動指令碼
本頁說明如何為網頁服務建立啟動指令碼,然後驗證指令碼。
為確保啟動網路服務時不需要手動介入,您必須建立啟動指令碼。啟動指令碼會執行下列工作:
- 讀取虛擬機器 (VM) 中繼資料,並使用
CONNECTOR_ENV
前置字元設定中繼資料的環境變數。消費者所需的任何資料,都會在從 Marketplace 建立 VM 時取得,並在 Docker 中設為環境變數。應用程式隨後就能讀取這些環境變數,並據此進行處理。 - 啟動含有網路服務的 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
驗證開機指令碼
- 在 VM 執行個體中,新增通訊埠的中繼資料,以及建立 VM 時所需的所有其他參數。
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata=CONNECTOR_ENV_PORT=8081
- 透過 UI 編輯 VM,並新增自動化部分提及的開機指令碼。
您也可以使用下列 gcloud 指令:
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata-from-file startup-script=gcp-start.sh
- 新增開機指令碼後,請透過 SSH 連線至 VM,然後執行下列指令:
sudo google_metadata_script_runner startup
- 執行下列指令,確保 Docker 容器在上述通訊埠上執行。
sudo docker ps
- 執行下列指令,停止並移除 Docker 服務。測試完成後,服務不得在 VM 上執行。
sudo docker rm -f connector-service
- 瞭解如何建立 VM 部署指令碼。