為 API Proxy 設定轉送 Proxy

轉送 Proxy 提供單一存取點,多部機器可透過這個存取點將要求傳送至外部伺服器。這些規則可強制執行安全政策、記錄及分析要求,並執行其他動作,確保要求符合業務規則。

在 Apigee Hybrid 中使用正向 Proxy,即可攔截及管理 Kubernetes 叢集的所有輸出流量。包括對目標端點的 API Proxy 要求,以及混合式執行階段為偵錯和分析管道,以及 MessageLogging 等政策與 *.googleapis.com 進行的通訊。

如要在混合式環境和 TargetEndpoint 之間使用 HTTP 轉送 Proxy,請務必在覆寫檔案中設定輸出 Proxy。這些環境範圍的屬性會將混合式環境的目標要求,轉送至 HTTP 轉送 Proxy。此外,如要讓任何 TargetEndpoint 透過 HTTP 轉送 Proxy,請務必將 use.proxy 設為「true」。如需操作說明,請參閱頁面底部。

如要設定混合式環境以轉送 Proxy,請將 envs.httpProxy 屬性新增至覆寫檔案,並套用至叢集。例如:

envs:
  - name: test
    httpProxy:
      scheme: HTTP
      host: 10.12.0.47
      port: 3128
      ...

如要進一步瞭解各項 envs.httpProxy 設定屬性,請參閱「設定屬性參考資料」。

系統會為環境設定轉送 Proxy,因此該環境中 API Proxy 傳送至後端目標的所有流量,都會經過指定的 HTTP 轉送 Proxy。如果 API Proxy 特定目標的流量應直接前往後端目標,略過轉送 Proxy,請在 TargetEndpoint 中設定下列屬性,覆寫 HTTP 轉送 Proxy:

<Property name="use.proxy">false</Property>

如要進一步瞭解如何設定 TargetEndpoint 屬性,包括如何設定與目標端點的連線,請參閱「端點屬性參考資料」。

針對要透過 HTTP 轉送 Proxy 的任何 TargetEndpoint,將 use.proxy 設為「true」:

<Property name="use.proxy">true</Property>

如果後端有防火牆,且設定為一律在「主機標頭」中加入「後端」伺服器主機名稱,但訊息處理器傳送的是「Proxy 伺服器」主機名稱,請執行下列步驟來設定這個選項:

在 TargetEndpoint 中將 use.proxy.host.header.with.target.uri 屬性設為 true,如以下範例所示:

TargetEndpoint 設定範例:

  <TargetEndpoint name="default">
    <HTTPTargetConnection>
      <URL>https://mocktarget.apigee.net/json</URL>
      <Properties>
        <Property name="use.proxy.host.header.with.target.uri">true</Property>
      </Properties>
    </HTTPTargetConnection>
  </TargetEndpoint>

如要瞭解 use.proxy.host.header.with.target.uri 屬性,請參閱「端點屬性參考資料」。

AI 政策和正向代理伺服器

Model Armor 政策 (SanitizeUserPrompt 和 SanitizeModelResponse) 和語意快取政策 (SemanticCacheLookup 和 SemanticCachePopulate) 會在處理要求和回應時發出外送呼叫。包括 Model Armor 清理呼叫,以及 Agent Platform 文字嵌入、向量搜尋 findNeighbors 和 upsertDatapoints 呼叫。

為環境設定轉送 Proxy 時,如果使用 envs.httpProxy,上述所有呼叫預設都會透過轉送 Proxy 傳送,不需要進行政策層級的設定。即使是不在 *.googleapis.com 下的端點 (例如 SemanticCacheLookup 呼叫的公開向量搜尋端點),也會出現這種行為。

對外部服務的這些政策呼叫,會視為與執行階段的追蹤和分析流量相同:將 envs[].managementCallsSkipProxy 設為 true 會讓這些呼叫略過轉送 Proxy,直接輸出。略過轉送 Proxy 適用於上述所有呼叫 (即清除、文字嵌入、findNeighbors 和 upsertDatapoints)。這個 Proxy 層級的轉送 Proxy 行為與 TargetEndpoint 無關,後者的轉送 Proxy 行為是由自身的 use.proxy 屬性控管。