OpenAI Private Link 可讓 Azure 工作負載透過 Azure Private Link 存取區域 OpenAI API 端點,而無須直接連線至公用 API 端點。請為 OpenAI 提供的每個區域 Private Link 服務建立私人端點,在私人 DNS 中設定其區域主機名稱的對應,然後向該主機名稱傳送一般經過驗證的 API 請求。
如果你的組織嚴格要求流量必須留在 Azure 私人網路內,請使用 Private Link。如果沒有私人網路方面的要求,OpenAI 的公用端點在設定和維運上會更簡單。Private Link 與 IP 允許清單控制或雙向 TLS (mTLS) 不相容;如需協助選擇適當的企業網路控制措施,請聯絡 OpenAI。
Private Link 目前不提供自助服務。請洽詢你的 OpenAI 聯絡人,或 聯絡業務團隊以申請存取權,並 取得所需的區域 Private Link 服務 別名或資源識別碼。
瞭解 Private Link 的運作方式
部分客戶一直使用舊版 Private Link 解決方案 (v1),此方案會將每個私人端點連線至特定的 OpenAI API 叢集。目前的區域解決方案與舊版有以下差異:
| 舊版 Private Link (v1) | 區域 Private Link | |
|---|---|---|
| 主機名稱 | 特定叢集專用,例如 privatelink.enterprise.unified-1.api.openai.com | 區域專用,例如 southcentralus.privatelink.api.openai.com |
| OpenAI 路由 | 已釘選至單一 OpenAI API 叢集 | 可將請求路由至多個後端 OpenAI API 叢集的區域私人邊緣閘道 |
| 客戶端健康狀態檢查 | 舊版 v1 健康狀態檢查路徑 | GET /v2/privatelink_healthcheck |
請求會依循下列路徑:
- 你的應用程式透過私人 DNS 解析區域 Private Link 主機名稱。
- 該主機名稱會解析為你虛擬網路中的 Azure 私人端點。
- 私人端點會連線至區域 OpenAI Private Link 服務。
- Private Link 服務會將請求傳送至 OpenAI 的區域私人邊緣閘道。
- 閘道會將請求路由至該區域通道中已啟用企業功能的後端 OpenAI API 叢集。
在同一個區域通道內,Private Link 可避開無法使用的後端叢集來路由請求,OpenAI 也能新增後端叢集,而無須你重新設定私人端點。它不會自動將流量從你選定的區域主機名稱移至另一個區域的私人端點。請勿假設 Private Link 會沿用 OpenAI 公用端點的路由行為;你需要設定應用程式如何在區域之間進行容錯移轉。
選擇區域端點
OpenAI 會在導入過程中提供確切的 Private Link 服務別名或資源識別碼。目前正式環境的區域主機名稱如下:
| 區域標籤 | 客戶使用的主機名稱 |
|---|---|
| 美國中南部 | southcentralus.privatelink.api.openai.com |
| 美國西部 | westus.privatelink.api.openai.com |
| 美國東部 2 | eastus2.privatelink.api.openai.com |
| 西班牙中部 / 歐盟 | spaincentral.privatelink.api.openai.com |
西班牙中部 / 歐盟的主機名稱可將請求路由至其他歐盟區域的後端叢集,例如北歐。
設定 Private Link
1. 提供導入資訊
請將以下資訊傳送給 OpenAI:
- 需要存取 OpenAI Private Link 服務的 Azure 訂用帳戶 ID。
- 你的 OpenAI 組織 ID。
- 你需要的區域。
- 負責接收維護及區域流量切換通知的維運聯絡人。
OpenAI 會授予這些訂用帳戶查看相應區域 Private Link 服務的權限並核准連線,然後提供 Private Link 服務別名或資源識別碼。
2. 建立私人端點
為每個選定的區域建立一個私人端點。Azure 要求私人端點與客戶的虛擬網路位於同一區域。請將 --location 設為該區域;這個區域可能與 OpenAI Private Link 服務所在的區域不同。
下列指令使用 OpenAI 提供的 Private Link 服務資源識別碼:
az network private-endpoint create \
--name openai-privatelink-southcentralus \
--resource-group <customer-resource-group> \
--location <customer-vnet-region> \
--vnet-name <customer-vnet> \
--subnet <customer-private-endpoint-subnet> \
--private-connection-resource-id <openai-provided-pls-resource-id> \
--connection-name openai-privatelink-southcentralus
如果 OpenAI 提供的是別名,請使用該別名並加上 --manual-request true:
az network private-endpoint create \
--name openai-privatelink-southcentralus \
--resource-group <customer-resource-group> \
--location <customer-vnet-region> \
--vnet-name <customer-vnet> \
--subnet <customer-private-endpoint-subnet> \
--private-connection-resource-id <openai-provided-pls-alias> \
--connection-name openai-privatelink-southcentralus \
--manual-request true
Azure 要求使用別名的連線必須設定 --manual-request true;存取清單中的訂用帳戶仍可獲得自動核准。
如果你的組織透過基礎結構即程式碼管理私人端點,請使用類似的 Azure 入口網站或 Terraform 工作流程。
3. 在變更 DNS 前測試連線
在 OpenAI 核准私人端點且 Azure 完成佈建後,請記錄其私人 IP 位址。使用 curl --resolve 測試區域主機名稱,無須變更全域 DNS 設定:
curl -v \
--resolve southcentralus.privatelink.api.openai.com:443:<PRIVATE_ENDPOINT_IP> \
https://southcentralus.privatelink.api.openai.com/v2/privatelink_healthcheck
健康狀態正常時,回應會傳回 HTTP 200,並包含類似以下內容的訊息:
{ "message": "Service is up" }
請使用確切的健康狀態檢查路徑:/v2/privatelink_healthcheck。請將自動健康狀態檢查的流量維持在低水準:除非 OpenAI 核准其他速率,否則每個區域端點最多只能使用 1 QPS。
4. 設定私人 DNS
建立私人 DNS 記錄,讓每個區域 OpenAI Private Link 主機名稱在你的網路內解析為對應的私人端點 IP 位址:
| 主機名稱 | 私人端點 IP 位址 |
|---|---|
southcentralus.privatelink.api.openai.com | <southcentralus-private-endpoint-ip> |
westus.privatelink.api.openai.com | <westus-private-endpoint-ip> |
eastus2.privatelink.api.openai.com | <eastus2-private-endpoint-ip> |
spaincentral.privatelink.api.openai.com | <spaincentral-private-endpoint-ip> |
透過應用程式所使用的相同網路路徑,檢查 DNS 和連線:
nslookup southcentralus.privatelink.api.openai.com
curl -v https://southcentralus.privatelink.api.openai.com/v2/privatelink_healthcheck
5. 在區域之間進行容錯移轉
Private Link 提供區域入口,但流量仍會傳送至你選定的區域主機名稱。請設定用戶端、服務網格、DNS 層或負載平衡層,以便在區域之間進行容錯移轉。
建議採取以下做法:
- 使用
GET /v2/privatelink_healthcheck探測每個已設定的區域。 - 收到 HTTP
200時,將該區域視為可用。 - 收到
5xx回應、發生連線錯誤或 TLS 錯誤,或反覆逾時時,將該區域視為無法使用。 - 只有在連續發生幾次錯誤後才進行容錯移轉,以免頻繁來回切換。
- 在背景持續探測無法使用的區域,並依照你的維運政策切回該區域。
區域健康情況檢查反映私人邊緣通道後方 OpenAI API 叢集的健康狀態。若區域沒有已知的後端叢集、缺少健康情況檢查組態,或健康的後端叢集數量不足,就會傳回錯誤。
如果你的路由決策取決於特定 API 或模型,除了執行這項健康情況檢查,也應透過相同的網路路徑,以低頻率向該 API 和模型傳送合成測試請求。
6. 更新應用程式的基底 URL
使用區域 Private Link 主機名稱作為 OpenAI API 的基底 URL:
from openai import OpenAI
client = OpenAI(
base_url="https://southcentralus.privatelink.api.openai.com/v1",
)SDK 會從你的環境中讀取 OPENAI_API_KEY。
你也可以直接呼叫區域端點:
curl https://southcentralus.privatelink.api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"input": "Say hello from Private Link."
}'先在開發或預備環境中開始使用,再逐步導入流量。
檢查你的組態
在導入或遷移至 Private Link 時,請使用這份檢查清單:
- OpenAI 已確認你的 Azure 訂用帳戶 ID 可以存取所選區域的 Private Link 服務。
- 你已為每個所選區域建立私人端點,且 OpenAI 已核准這些端點。
- 你已記錄私人端點的 IP 位址。
- 使用
curl --resolve對/v2/privatelink_healthcheck發出的請求已成功。 - 從應用程式所在的網路查詢時,私人 DNS 會將區域主機名稱解析為私人端點的 IP 位址。
- 應用程式可以透過區域主機名稱呼叫具代表性的
/v1API 端點。 - 自動化健康情況檢查已設有速率限制,並會在發生錯誤時記錄區域、狀態碼和錯誤類型。
- 你已在受控環境中強制將某個區域設為不健康狀態,測試應用程式的容錯移轉行為。
- 你的維運文件已載明哪些人可以變更 DNS、私人端點組態,以及應用程式的區域路由。
檢查端點相容性
下表反映所列公開 API 路由背後服務的目前部署組態。這不能取代客戶的實際驗證:請在每個目標區域測試模型可用性、產品存取條件、下游相依項目、請求大小限制、串流行為和 WebSocket 行為。Yes 表示區域通道中的每個後端叢集都有該路由;No 表示該通道中沒有對應的後端服務。
| 端點類別 | 美國中南部 | 美國西部 | 美國東部 2 | 西班牙中部 / 歐盟 |
|---|---|---|---|---|
/v1/responses | 是 | 是 | 是 | 是 |
/v1/chat/completions | 是 | 是 | 是 | 是 |
/v1/completions | 是 | 是 | 是 | 是 |
/v1/embeddings | 是 | 是 | 是 | 是 |
/v1/audio/*(推論) | 是 | 是 | 是 | 是 |
/v1/audio/*(管理) | 是 | 否 | 否 | 是 |
/v1/models | 是 | 是 | 是 | 是 |
/v1/files、/v1/uploads | 是 | 是 | 是 | 是 |
/v1/batches | 是 | 是 | 是 | 是 |
/v1/images/* | 是 | 是 | 是 | 是 |
/v1/moderations | 是 | 是 | 是 | 是 |
/v1/vector_stores | 是 | 是 | 是 | 是 |
/v1/organization/audit_logs | 是 | 是 | 是 | 是 |
其他 /v1/organization/*、/v1/usage | 是 | 否 | 否 | 是 |
/v1/realtime | 是 | 是 | 是 | 是 |
常見問題
Private Link 會自動在區域之間進行容錯移轉嗎?
不會。區域私人邊緣通道可以將流量路由至其已設定的不同後端叢集,但不會自動將您的流量移至其他區域的私人端點。請設定應用程式,讓它能在您使用的區域端點之間進行容錯移轉。
我應該使用哪種健康狀態檢查?
請對區域主機名稱使用 GET /v2/privatelink_healthcheck。舊版 v1 健康狀態檢查路徑探測的是後端叢集的健康狀態通道,因此請勿將這些路徑用作客戶端探測。
應用程式應該使用哪個 API 主機名稱?
請使用區域主機名稱搭配一般的 /v1 API 路徑,例如 https://southcentralus.privatelink.api.openai.com/v1。
AWS 或 Google Cloud 工作負載可以透過 Private Link 連線嗎?
無法直接連線。Private Link 連線僅適用於 Azure。AWS 或 Google Cloud 中的工作負載只能透過客戶管理的網路連入 Azure,例如使用 Azure Proxy 或跨雲端私人連線架構,再從 Azure 透過 Azure Private Link 連線至 OpenAI。
Private Link 會改變身分驗證方式嗎?
不會。Private Link 只會改變網路路徑。請求仍須通過一般的 OpenAI API 身分驗證與授權。
Private Link 支援所有 OpenAI API 嗎?
並非全部支援。是否支援取決於所選區域通道的每個後端叢集是否都提供該 API。請先參考相容性矩陣,再於每個目標區域測試您需要的各項 API 功能與模型。