查看 Application Integration 支援的連接器

建立網路服務

本頁說明如何使用以 Golang 編寫的 Gin 網路架構,在 VM 中建立網路服務。您可以選擇在任何其他要使用的架構中建立網路服務。

  1. 如要在 VM 中下載 Go 套件,請在 VM 中執行下列指令:
    wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
      
  2. 在 VM 中安裝 Go。詳情請參閱「安裝 Go」。
  3. 如要為網路服務建立新目錄,請執行下列指令:
    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 集區來限制及緩衝伺服器上的要求。詳情請參閱「工作站集區範例」。

測試及建構二進位檔

  1. 請使用下列指令設定連接埠並執行伺服器:
  2. EXPORT CONNECTOR_ENV_PORT = 8081
    go get .
    go run .

    這些指令會將必要的程式庫打包,並執行伺服器。

  3. 如要驗證伺服器,請在 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"
  4. 使用下列指令建立二進位檔,並將其用作 VM 映像檔:
    go build -o SERVICE_NAME
  5. 使用下列指令將二進位檔移至根資料夾:
    sudo cp SERVICE_NAME /opt
  6. 請再次執行服務,並使用下列指令確認二進位檔是否正常運作:
    sudo chmod +x SERVICE_NAME
    ./SERVICE_NAME

將應用程式容器化

  1. 安裝 Docker。詳情請參閱「安裝 Docker」。
  2. 建立 Docker 檔案以執行二進位檔。
    FROM alpine:latest
    WORKDIR /opt
    COPY . .
    CMD ["./SERVICE_NAME"]
  3. 使用下列指令建構連接器容器:
    sudo docker build -t connector-container .
  4. 執行 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

後續步驟