本頁面適用於 Apigee,但不適用於 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本文說明如何從在內部網路上執行的用戶端呼叫 API Proxy。如果 Apigee 已佈建為使用內部網路路由,這些步驟可用於測試您的設定。如果 Apigee 已配置下列任何網路路由設定,您可以按照本文件中的步驟操作:
佈建選項 | 網路選項 | 佈建步驟 |
---|---|---|
付費訂閱 | 使用虛擬私有雲對等互連 | 內部轉送 (VPC) 內部轉送 (PSC) |
即付即用 | 使用虛擬私有雲對等互連 | 內部轉送 (VPC) 內部轉送 (PSC) |
評估 | 使用虛擬私有雲對等互連 | 設定路徑 (內部) |
評估 | 未使用虛擬私有雲對等互連 | 內部轉送 (PSC) |
另請參閱「網路選項」。
事前準備
請完成下列初步設定步驟:
- 如果您尚未初始化 Cloud SDK,請按照「初始化 gcloud CLI」一節的說明進行操作,或者確認您在「先決條件」中建立的 Google Cloud 專案,是
gcloud
的預設專案。 -
定義下列本機環境變數:
export PROJECT_ID=YOUR_PROJECT_ID
export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
export SUBNET=NETWORK_NAME
export INSTANCE_NAME=INSTANCE_NAME
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
其中:
PROJECT_ID
是您在必要條件中建立的 Cloud 專案 ID。AUTH
會使用不記名憑證定義Authentication
標頭。您會在呼叫 Apigee API 時使用這個標頭。請注意,憑證會在一段時間後到期,屆時您只需使用相同的指令重新產生憑證即可。詳情請參閱 print-access-token 指令的參考頁面。SUBNET
是佈建期間指定的子網路。例如:default
。INSTANCE_NAME
:新執行個體的名稱。例如:my-runtime-instance
。名稱開頭必須為小寫英文字母,長度上限為 32 個字元,且只能包含小寫英文字母、數字和連字號。開頭或結尾不得為連字號,且長度至少須為兩個字元。PROJECT_NUMBER
是您在必要條件中建立的雲端專案編號。這個範例會發出gcloud
指令,為您取得專案編號。
- 從 Apigee 執行個體取得
location
屬性的值。這個值是執行個體所在的區域,例如us-west1
:curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances
- 在執行個體地區中選取區域,然後將區域名稱放入變數。區域必須位於執行個體內。例如:
export VM_ZONE="us-west1-b"
如果您需要協助找出執行個體區域中的區域,可以使用這個
gcloud
指令,為已設定的執行階段區域傳回區域名稱。例如:VM_ZONE=$(gcloud compute zones list | grep "us-west1" | head -n 1 | awk '{print $1}')
建立 VM 並呼叫 API Proxy
接著,請使用 gcloud beta compute 指令,在 VPC 網路中建立新的 VM。VM 可做為橋樑,讓您將要求傳送至內部負載平衡器 IP。設定 VM 後,您可以呼叫已部署的 API Proxy:
-
以下範例會使用一些常見選項建立新的 VM,並使用先前定義的環境變數做為輸入內容。
gcloud beta compute --project=$PROJECT_ID \ instances create $INSTANCE_NAME \ --zone=$VM_ZONE \ --machine-type=e2-micro \ --subnet=$SUBNET \ --network-tier=PREMIUM \ --no-restart-on-failure \ --maintenance-policy=TERMINATE \ --preemptible \ --service-account=$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=http-server,https-server \ --image=debian-12-bookworm-v20240701 \ --image-project=debian-cloud \ --boot-disk-size=10GB \ --boot-disk-type=pd-standard \ --boot-disk-device-name=$INSTANCE_NAME \ --no-shielded-secure-boot \ --shielded-vtpm \ --shielded-integrity-monitoring \ --reservation-affinity=any
-
開啟與您剛建立的新 VM 的安全連線。
gcloud compute ssh $INSTANCE_NAME --zone=$VM_ZONE --project=$PROJECT_ID
- 在 VM 殼層中安裝
jq
公用程式。後續步驟會使用這個值:sudo apt-get update -y
sudo apt-get install -y jq
- 在 VM shell 中建立下列環境變數,方便複製/貼上 API 代理要求:
export AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
export PROJECT_ID=YOUR_PROJECT_ID
export ENV_GROUP_HOSTNAME=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups -s | jq -r '.environmentGroups[0].hostnames[0]')
- 確認變數設定正確無誤:
echo $AUTH
echo $PROJECT_ID
echo $ENV_GROUP_HOSTNAME
- 呼叫 API Proxy。請選取下方與您在 Apigee 佈建期間所設定的路由方式相符的選項。
使用虛擬私有雲對等互連的安裝選項
- (TLS 選項 #1) 如果您在專案中設定了內部負載平衡器 (ILB),請按照「內部路由 (VPC)」一節所述,使用該 ILB 的 IP 呼叫 Proxy。這個選項會使用您控管的 CA 憑證,這些憑證是在建立內部負載平衡器時建立:
- 請參閱「 使用 VM 執行個體群組後端設定內部 HTTP(S) 負載平衡」一文,瞭解如何取得專案中 ILB 的 IP 位址。
- 呼叫 API Proxy:
curl -H "Host: $ENV_GROUP_HOSTNAME" \ https://INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
- (TLS 選項 #2) 使用預設的完整網域名稱,將其解析為 Apigee 專案中的內部負載平衡器。使用這個選項時,TLS 會使用內部建立的 Apigee 自行簽署憑證。您無法控制這些憑證。
- 取得 Apigee 專案中內部負載平衡器的 IP:
export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
- 使用下列指令,提取建立組織時建立的 CA 憑證:
curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID | jq -r .caCertificate | base64 -d > cacert.crt
- 將要求傳送至已部署的 API Proxy,其中
example.$PROJECT_ID.apigee.internal
是解析至內部負載平衡器的內部預設完整網域名稱。curl -is -H "Host: $ENV_GROUP_HOSTNAME" \ https://example.$PROJECT_ID.apigee.internal/PROXY_BASEPATH \ --cacert cacert.crt \ --resolve example.$PROJECT_ID.apigee.internal:443:$INTERNAL_LOAD_BALANCER_IP
- 取得 Apigee 專案中內部負載平衡器的 IP:
- (非 TLS 選項) 如果您遇到 SSL/TLS 憑證驗證問題,可以使用
-k
(或--insecure
) 標記搭配curl
指令。這麼做可略過憑證驗證,讓連線繼續進行。請注意,雖然通訊內容仍會加密,但由於伺服器的真實性未經過驗證,因此這個選項可能會影響網路安全性。- 取得 Apigee 專案中內部負載平衡器的 IP:
export INTERNAL_LOAD_BALANCER_IP=$(curl -H "$AUTH" https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances -s | jq -r '.instances[0].host')
- 呼叫 API Proxy:
curl -i -k \ -H "Host: $ENV_GROUP_HOSTNAME" \ https://$INTERNAL_LOAD_BALANCER_IP/PROXY_BASEPATH
- 取得 Apigee 專案中內部負載平衡器的 IP:
- (服務端點選項) 如果您使用 PSC 佈建付費或評估機構,並選擇服務端點路由選項:
- 取得服務端點的 IP。如需查詢端點 IP,請參閱「列出端點」。
- 呼叫 API Proxy:
curl -i -k \ -H "Host: $ENV_GROUP_HOSTNAME" \ https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH
例如:
curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k
不使用非虛擬私有雲對等互連的安裝選項
- (服務端點選項) 如果您使用 PSC 佈建付費或評估機構,並選擇服務端點路由選項:
- 取得服務端點的 IP。如需查詢端點 IP,請參閱「列出端點」。
- 呼叫 API Proxy:
curl -i -k \ -H "Host: $ENV_GROUP_HOSTNAME" \ https://SERVICE_ENDPOINT_IP/PROXY_BASEPATH
例如:
curl -H "Host: $ENV_GROUP_HOSTNAME" https://10.138.0.2/helloworld -k
如果在這個程序中遇到錯誤,請確認您建立並在指令中使用的所有環境變數都具有有效值。另請參閱疑難排解。
後續步驟
請嘗試建立 Proxy,然後進行部署,或是參閱 Apigee 教學課程,瞭解 Apigee 的功能,例如防範突發的流量尖峰或取得要求/回應流程的詳細資料。
(進階) 如果您打算將這項設定轉換為正式設定,可以為新叢集和相關 Cloud 服務設定安全邊界。VPC Service Controls 可讓您這麼做。
- (TLS 選項 #1) 如果您在專案中設定了內部負載平衡器 (ILB),請按照「內部路由 (VPC)」一節所述,使用該 ILB 的 IP 呼叫 Proxy。這個選項會使用您控管的 CA 憑證,這些憑證是在建立內部負載平衡器時建立: