查看 Application Integration 支援的連接器。
建立網路服務
本頁說明如何使用以 Golang 編寫的 Gin 網路架構,在 VM 中建立網路服務。您可以選擇在任何其他要使用的架構中建立網路服務。
- 如要在 VM 中下載 Go 套件,請在 VM 中執行下列指令:
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
- 在 VM 中安裝 Go。詳情請參閱「安裝 Go」。
- 如要為網路服務建立新目錄,請執行下列指令:
mkdir SERVICE_REPO cd SERVICE_REPO
其他事項
建立網路服務時,請務必注意下列事項:
- 您在建立 VM 時需要的輸入內容會以環境變數的形式提供,並具有以下前置字元:
CONNECTOR_ENV_
。 - 設定網路服務時,請使用環境變數讀取這些值。
- 在建立 VM 時,請只將用於設定網路服務的值做為輸入內容。
- 服務的通訊埠必須從 CONNECTOR_ENV_PORT 變數取得做為輸入內容。
- 使用其他環境變數做為選用輸入內容。
- 您也可以在建立連線時取得輸入內容。您可以在建立自訂連接器時定義這些欄位,並在每個 API 呼叫中以路徑、查詢或標頭的形式傳遞這些欄位。
- 確認伺服器是在本機主機上執行。
記錄
記錄必要資訊,並將記錄檔推送至 Cloud Logging。這有助於連接器使用者追蹤及偵錯失敗情形。如要將記錄發布至 Cloud Logging,您可以使用 Go 中提供的以下 Cloud Logging 用戶端:https://pkg.go.dev/cloud.google.com/go/logging#NewClient
您必須在 main 中初始化記錄器,並在 Gin 中新增中介軟體,以便追蹤所有傳入的要求。您必須追蹤要求的方法、路徑、狀態和延遲時間。如要篩選記錄,請在記錄時使用適當的嚴重性。在網路服務中,從環境變數讀取記錄層級。系統會在建立 VM 期間將記錄層級視為選用輸入值。根據預設,您可以使用資訊記錄。以下是記錄層級:
- DEBUG:記錄要求的每個部分,包括 HTTP 要求/回應追蹤記錄。
- INFO:記錄服務啟動、服務關閉、要求和其他資訊。
- 錯誤:記錄要求失敗、格式設定例外狀況和其他錯誤。
安全關機
設定伺服器以妥善關閉及處理進行中的要求。如要瞭解如何順利重新啟動或停止伺服器,請參閱「順利重新啟動或停止」。
並行
Gin 伺服器本身支援使用 Go 例程的並行要求。根據預設,Go 例程允許處理不定數量的要求。不過,在某些情況下,如果要求需要大量資源,請使用 worker 集區來限制及緩衝伺服器上的要求。詳情請參閱「工作站集區範例」。
測試及建構二進位檔
- 請使用下列指令設定連接埠並執行伺服器:
- 如要驗證伺服器,請在 VM 上執行下列 curl 指令:
curl -X POST -H "Content-Type: application/json" -H "X-Custom-Header: MyValue" -d '{"name": "Alice", "address": "123 Main St", "gender": "F"}' http://localhost:8081/postData/456
curl -v http://localhost:8081/getData -H "TestKey: MyValue"
- 使用下列指令建立二進位檔,並將其用作 VM 映像檔:
go build -o SERVICE_NAME
- 使用下列指令將二進位檔移至根資料夾:
sudo cp SERVICE_NAME /opt
- 請再次執行服務,並使用下列指令確認二進位檔是否正常運作:
sudo chmod +x SERVICE_NAME ./SERVICE_NAME
EXPORT CONNECTOR_ENV_PORT = 8081 go get . go run .
這些指令會將必要的程式庫打包,並執行伺服器。
將應用程式容器化
- 安裝 Docker。詳情請參閱「安裝 Docker」。
- 建立 Docker 檔案以執行二進位檔。
FROM alpine:latest WORKDIR /opt COPY . . CMD ["./SERVICE_NAME"]
- 使用下列指令建構連接器容器:
sudo docker build -t connector-container .
- 執行 Docker 容器。設定
--restart=unless-stopped
,以便在發生非預期錯誤時重新啟動服務。
容器層級工作
在執行 Docker 容器時,您可以使用 gcplogs 記錄檔驅動程式,將 stdout 中的所有記錄檔轉送至 Cloud Logging。這有助於追蹤服務的啟動或非預期失敗或關閉情形。
如要將記錄轉送至 Cloud Logging,請執行下列指令:sudo docker run --name connector-service -e CONNECTOR_ENV_PORT=$CONNECTOR_ENV_PORT -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT --restart=unless-stopped ----log-driver=gcplogs connector-container
後續步驟
- 瞭解如何建立自訂連接器。