設定 Apigee API Hub 的 Private Cloud 連接器

本節將詳細說明 Apigee API Hub for Private Cloud 連接器的設定步驟,包括網路、驗證和機構專屬設定。

所需權限

新的 API Hub API 已與 Apigee API Hub for Private Cloud 連接器整合,可處理環境和 Proxy 組合的上傳作業,因此需要新的 IAM 角色。這是手動步驟,您只需執行一次,即可授予必要權限。

如要授予正確的權限,請執行下列 gcloud 指令一次:

  gcloud projects add-iam-policy-binding GCP_PROJECT_NAME \
    --member="serviceAccount:SERVICE_ACCOUNT" \
    --role="roles/apihub.admin"

這項指令會將 roles/apihub.admin 角色繫結至指定的服務帳戶,讓連接器執行必要動作。請確認這個服務帳戶與建立外掛程式執行個體時使用的帳戶相同。

網路和驗證設定

  1. 允許使用特定通訊埠:Apigee API Hub for Private Cloud 連接器必須連線至管理伺服器,才能取得必要的 API 中繼資料,因此連接器必須能連線至管理伺服器的 8080 和 443 通訊埠。
  2. Google Cloud Platform 服務的憑證式驗證:Private Cloud 適用的 Apigee API Hub 連接器會與 Google Cloud 服務通訊,並需要權杖進行驗證。這是透過服務帳戶金鑰建立模擬權杖來達成。

    • 用於產生權杖的服務帳戶:建立專門用於產生權杖的新服務帳戶。這個服務帳戶必須具備 Token Creator 角色。
    • 產生及下載服務帳戶金鑰
      • 按照「建立服務帳戶金鑰」一文中的步驟,為權杖產生服務帳戶產生 JSON 金鑰。
      • 下載這個金鑰檔案 (例如下載到 Apigee API Hub for Private Cloud 連接器 VM 的 /opt/apigee/keys/uapim.key)。
    • 設定 GOOGLE_APPLICATION_CREDENTIALS:啟動 Apigee API Hub for Private Cloud 連接器時,您需要透過環境變數提供這個檔案的路徑:
      export $GOOGLE_APPLICATION_CREDENTIALS=/opt/apigee/keys/uapim.key
  3. 管理 API 驗證 (UAPIM_MGMT_AUTH):Private Cloud 適用的 Apigee API Hub 連接器需要憑證,才能呼叫 Apigee Management API。為確保安全和自動化,請在 Apigee 中使用機器使用者,而非真人使用者。

    在 Apigee 中建立機器使用者:

    1. 建立使用者
      • 在 Apigee 控制台中,建立機器使用者 (或系統使用者)。如要進一步瞭解使用者和角色,請參閱「自動產生權杖」。
      • 指派電子郵件地址 (用於識別) 和說明名稱 (例如uapim-connector-user)。
    2. 指派角色:將下列角色指派給機器使用者:
      • Apigee API 管理員:這個角色可存取管理 API,讓 Apigee API Hub for Private Cloud 連接器與 Apigee 的管理系統互動 (例如擷取中繼資料或管理 API 設定)。

產生 Base64 編碼的憑證:

  1. 為機器使用者產生使用者名稱/密碼組合。
  2. 以 Base64 編碼憑證:echo -n 'username:password' | base64
  3. 使用 Base64 編碼值設定 $UAPIM_MGMT_AUTH 環境變數:
    export UAPIM_MGMT_AUTH=USERNAME_PASSWORD

    其中 USERNAME_PASSWORD 是使用者名稱和密碼配對的 Base64 編碼值。

    啟動 Apigee API Hub for Private Cloud 連接器前,請務必設定這個環境變數。

設定 Apigee API Hub 的 Private Cloud 連接器

開啟設定檔 /opt/apigee/customer/application/uapim-connector.properties,指定要將資料上傳至 API 中心的 Apigee 機構。您可能有多個外掛程式執行個體或多個 API 中心執行個體。

  conf_uapim.settings.json={\
    "connectorConfig" : { \
      "org1" : { \
        "runtimeDataPubsub" : "", \
        "metadataPubsub":"", \
        "serviceAccount": "mysa1@in.myfirstProject",\
        "pluginInstanceId":"aaaa" \
      },\
      "org2" : { \
        "runtimeDataPubsub" : "", \
        "metadataPubsub":"",\
        "serviceAccount": "mysa2@in.mySecondProject",\
        "pluginInstanceId":"bbbbb", \
      } 
    },
    "runtimeDataPath":"/the/nfs/mounted/path", \    
    "managementServer": "hostname"
  } 

設定 JSON 說明

  • connectorConfig 區段
    • 這是對應,每個鍵都是 Apigee 機構名稱 (例如 org1、org2)。
    • 每個機構項目都包含下列欄位,這些欄位是在外掛程式建立步驟中取得:
      • runtimeDataPubsub:這個機構的執行階段 (分析) 資料 Pub/Sub 主題。
      • metadataPubsub:這個機構的 API 中繼資料 Pub/Sub 主題。
      • serviceAccount:用於驗證的服務帳戶 (例如 mysa1@in.myfirstProject.iam.gserviceaccount.com),可將資料寫入這個機構的 Pub/Sub。
      • pluginInstanceId:與這個機構相關聯的外掛程式專屬執行個體 ID。
  • runtimeDataPath 區段:提供 NFS 掛接的路徑,訊息處理器會將 Analytics (AX) 資料寫入該路徑。這必須與訊息處理器上設定的路徑相同。
  • managementServer 區段:Apigee 管理伺服器網址的主機名稱或 IP 位址。
  • 環境變數 UAPIM_MGMT_AUTH:這個環境變數是從外部設定,包含存取管理伺服器的 Base64 編碼 username:password

新增轉送 Proxy 設定

在同一個 /opt/apigee/customer/application/uapim-connector.properties 檔案中新增轉送 Proxy 設定

  1. conf_http_client_service_jetty.proxy.enabled=true
  2. conf_http_client_service_jetty.proxy.host=
  3. conf_http_client_service_jetty.proxy.port=
  4. conf_http_client_service_jetty.proxy.user=
  5. conf_http_client_service_jetty.proxy.password=

連接器必須連線至下列外部來源,才能正常運作:

  • pubsub.googleapis.com:443
  • oauth2.googleapis.com:443
  • iamcredentials.googleapis.com:443

如果連接器無法直接連線至外部來源,但可透過轉送 Proxy 連線,使用者就必須透過下列設定提供轉送 Proxy 設定,並確保上述外部來源已加入允許清單。

啟動 Apigee API Hub for Private Cloud Connector

設定所有項目後,請使用 Apigee 服務指令啟動 Apigee API Hub for Private Cloud 連接器:

apigee-service edge-uapim-connector start