本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本頁說明如何設定 Apigee 擴充功能處理器,透過啟用服務擴充功能的負載平衡器,對 API 流量強制執行 API 政策。
如要進一步瞭解建議用途,以及使用 Apigee Extension Processor 進行 API 管理的好處,請參閱 Apigee Extension Processor 總覽。
Apigee Extension Processor 是一種流量 擴充功能 (Service Extension 的類型),可讓您使用 Cloud Load Balancing,從應用程式負載平衡器的資料處理路徑將呼叫傳送至 Apigee Extension Processor。設定負載平衡器和流量擴充功能後,API 流量就會由負載平衡器處理。Apigee 擴充功能處理器中的政策會套用至使用流量擴充功能呼叫的 API 流量。
以下各節將逐步說明如何設定 Apigee 擴充功能處理器的重要元素:
事前準備
開始設定 Apigee 擴充功能處理器之前,請務必完成下列工作:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Apigee, Compute Engine, and Network Services APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Apigee, Compute Engine, and Network Services APIs.
安裝 Google Cloud CLI。
安裝 Google Cloud CLI 後,請執行
gcloud components update
指令,取得最新版 gcloud 元件。如果尚未這麼做,請使用
1-15-0-apigee-2
以上版本佈建 Apigee 執行個體。您可以在 Google Cloud 控制台的 Apigee UI 中,前往「執行個體詳細資料」頁面查看執行個體版本。前往 Google Cloud 控制台的「Instances」 頁面,選取執行個體並查看詳細資料:
您可以在訂閱或Pay-as-you-go的 Apigee 機構中使用擴充功能處理器。如果不確定自己使用的是訂閱型還是即付即用型 Apigee 機構,請與 Apigee 機構管理員聯絡。 如要進一步瞭解如何佈建付費 Apigee 執行個體,請參閱「事前準備」一文。
- 確認您要在使用的 Apigee 執行個體中啟用 VPC 和子網路。前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面:
-
建立及管理服務帳戶:
服務帳戶管理員 (
roles/iam.serviceAccountAdmin
) -
建立及管理服務擴充功能:
「Service Extensions 管理員」 (
roles/networkservices.serviceExtensionsAdmin
) -
建立及管理網路端點群組 (NEG):
Compute 執行個體管理員 (
roles/compute.instanceAdmin
) -
建立及管理網路資源:
Compute 網路管理員 (
roles/compute.networkAdmin
) -
建立及管理後端服務:
Compute 負載平衡器管理員 (
roles/compute.loadBalancerAdmin
) -
建立及管理 Apigee 資源:
Apigee 機構管理員 (
roles/apigee.admin
) PROJECT_ID
是 Apigee 執行個體所屬專案的 ID。REGION
是 Apigee 執行個體的 Google Cloud 區域。INSTANCE
是 Apigee 執行個體的名稱。VPC_NETWORK_NAME
是您要用於 Apigee 擴充功能處理器的 Google Cloud 專案中虛擬私有雲網路的名稱。SUBNET
是您要用於 Apigee 擴充功能處理器的 Google Cloud 專案中子網路名稱。- 將
gcloud
設定為使用目前的專案:gcloud config set project PROJECT_ID
其中 PROJECT_ID 是 Apigee 執行個體所屬專案的 ID。
- 建立全域靜態 IP 位址:
gcloud compute addresses create IP_ADDRESS --ip-version=IPV4 --global
其中 IP_ADDRESS 是您要建立的 IP 位址名稱。名稱必須符合規則運算式
(?:a-z?)
。 - 取得 IP 位址並儲存為環境變數:
IP=$(gcloud compute addresses describe IP_ADDRESS --format="get(address)" --global)
其中 IP_ADDRESS 是您在上一個步驟中建立的 IP 位址名稱。
- 為
nip.io
建立 TLS 憑證,這個第三方服務會提供 IP 位址的萬用字元 DNS 記錄:gcloud compute ssl-certificates create SSL_CERT_NAME \ --domains="nip.io"
其中 SSL_CERT_NAME 是要建立的憑證名稱。
- 建立 NEG:
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=INTERNET_FQDN_PORT \ --default-port=443 \ --global
其中 NEG_NAME 是要建立的 NEG 名稱。
- 將 httpbin.org 的端點新增至 NEG:
gcloud compute network-endpoint-groups update NEG_NAME \ --add-endpoint=fqdn=httpbin.org,port=443 \ --global
其中 NEG_NAME 是您在上一個步驟中建立的 NEG 名稱。
- 建立後端服務:
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global
其中 BACKEND_SERVICE_NAME 是要建立的後端服務名稱。
- 將 NEG 新增至後端:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --global-network-endpoint-group \ --global
其中:
- BACKEND_SERVICE_NAME 是您在上一個步驟中建立的後端服務名稱。
- NEG_NAME 是您在前一個步驟中建立的 NEG 名稱。
- URL_MAP_NAME 是您要建立的網址對應名稱。
- BACKEND_SERVICE_NAME 是您在先前步驟中建立的後端服務名稱。
- TARGET_PROXY_NAME 是您要建立的目標 Proxy 名稱。
- URL_MAP_NAME 是您在前一個步驟建立的網址對應表名稱。
- SSL_CERT_NAME 是您在前一個步驟中為
nip.io
建立的 SSL 憑證名稱。 - FORWARDING_RULE_NAME 是您要建立的轉送規則名稱。
- IP_ADDRESS 是您在先前步驟中建立的 NEG 端點 IP 位址名稱。
- TARGET_PROXY_NAME 是您在先前步驟中建立的目標 Proxy 名稱。
- 使用下列指令建立 Apigee 環境:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments" -H "Content-Type:application/json" -d \ '{ "name": "ENV_NAME", "displayName": "ENV_NAME", "state": "ACTIVE", "deploymentType": "PROXY", "apiProxyType": "PROGRAMMABLE", "type": "COMPREHENSIVE", "properties": {"property": [ { "name": "apigee-service-extension-enabled", "value": "true" } ] } }'
其中 ENV_NAME 是您要建立的環境名稱。名稱長度必須介於 2 至 32 個字元之間,且只能使用小寫英文字母、數字或連字號。名稱開頭須為英文字母,結尾不得為連字號。名稱不得與貴機構中的任何其他環境名稱相同。
確認環境已建立:
curl -i -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments"
環境清單應包含您剛建立的環境。
- 將新建立的環境附加至 Apigee 執行個體:
curl -i -X POST -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances/$INSTANCE/attachments" -H "Content-Type:application/json" -d \ '{ "environment": "ENV_NAME" }'
其中 ENV_NAME 是您在上一個步驟中建立的環境名稱。
這項作業最多可能需要 10 分鐘。
- 建立 Apigee 環境群組:
curl -H "Authorization: Bearer $TOKEN" -X POST \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups" -H "Content-Type:application/json" -d \ '{ "name": "ENV_GROUP_NAME", "hostnames": ["ENV_GROUP_HOSTNAME"] }'
其中:
- ENV_GROUP_NAME 是您要建立的環境群組名稱。
- ENV_GROUP_HOSTNAME 是您要建立的環境群組主機名稱。主機名稱必須是完整網域名稱 (FQDN)。
- 將新環境連結至新環境群組:
curl -H "Authorization: Bearer $TOKEN" -X POST\ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/ENV_GROUP_NAME/attachments" -H "content-type:application/json" -d \ '{ "name": "ENV_GROUP_NAME", "environment": "ENV_NAME" }'
其中:
- ENV_GROUP_NAME 是您要建立的環境群組名稱。
- ENV_NAME 是您在先前步驟中建立的環境名稱。
- 請按照「建立 API Proxy」一文中的步驟,建立具有下列規格的無目標 Proxy:
- Proxy 範本:選取「無目標」。
- Proxy 名稱:輸入 Proxy 名稱。
- 基本路徑:設定所需的基本路徑。系統不會使用該路徑。
Proxy 的 XML 規格應如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <APIProxy revision="1" name="extproc-sample"> <DisplayName/> <Description/> <CreatedAt>1739581781912</CreatedAt> <LastModifiedAt>1739582447868</LastModifiedAt> <BasePaths>/</BasePaths> <Policies></Policies> <ProxyEndpoints> <ProxyEndpoint>default</ProxyEndpoint> </ProxyEndpoints> </APIProxy>
- 按照「部署 API Proxy」一文中的步驟,將 Proxy 部署至您先前建立的環境。
- 取得 Apigee PSC 服務連結:
PSC_ATTACHMENT=$(curl -s -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/instances" \ | jq -r '.instances[] | select(.name = "'$INSTANCE'") | .serviceAttachment' \ )
如要查看服務附件:
echo $PSC_ATTACHMENT
回應應如下所示:
projects/apigee-psc-autopush/regions/us-west1/serviceAttachments/apigee-us-west1-1234567890-psc-service-attachment
- 在與 Apigee 執行個體相同的地區中建立 PSC NEG:
gcloud compute network-endpoint-groups create apigee-neg-$REGION \ --network-endpoint-type=private-service-connect \ --psc-target-service=$PSC_ATTACHMENT \ --region=$REGION \ --network=$VPC_NETWORK_NAME \ --subnet=$SUBNET
回應應如下所示:
projects/ab123456cd78ef910g-tp/regions/asia-northeast1/serviceAttachments/apigee-asia-northeast1-abcd
- 建立指向 PSC NEG 的
HTTP/2
後端服務 (如果還沒有):gcloud compute backend-services create PSC_NEG_BACKEND_SERVICE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP2 \ --global
其中 PSC_NEG_BACKEND_SERVICE 是要建立的後端服務名稱。
- 新增 PSC NEG 後端服務:
gcloud compute backend-services add-backend PSC_NEG_BACKEND_SERVICE \ --network-endpoint-group=apigee-neg-$REGION \ --network-endpoint-group-region=$REGION \ --global
其中 PSC_NEG_BACKEND_SERVICE 是您在前一個步驟建立的後端服務名稱。
- 啟用後端服務的記錄功能:
gcloud compute backend-services update PSC_NEG_BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1.0
其中 PSC_NEG_BACKEND_SERVICE 是您在前一個步驟建立的後端服務名稱。
- EXT_PROC_NAME 這個名稱必須與您在先前步驟中建立的 API Proxy 名稱相符。
- FORWARDING_RULE_NAME 是您在先前步驟中建立的轉送規則名稱。
- ENV_GROUP_HOSTNAME 是用於環境群組的網域名稱。
- PSC_NEG_BACKEND_SERVICE 是您在先前步驟中建立的後端服務名稱。
- 在 Cloud 控制台的 Apigee 使用者介面中,前往「開發」分頁,然後選取您在先前步驟中建立的擴充功能處理器 Proxy。
- 在「政策」部分中,按一下「+ 新增政策」。
- 在「Add policy」(新增政策) 窗格中,從政策清單選取「VerifyAPIKey」。
- 在「VerifyAPIKey」窗格中,使用下列值填妥「Policy name」和「Display name」區段中的必填欄位:
- 政策名稱:輸入政策名稱。例如:
VA-verify-api-key
。 - 顯示名稱:輸入要在使用者介面中使用的政策名稱。例如:
VA-verify-api-key
。
- 政策名稱:輸入政策名稱。例如:
- 按一下「建立」。
Extension Processor Proxy 中包含的 VerifyAPIKey 政策 XML 規格應如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <VerifyAPIKey continueOnError="false" enabled="true" name="VA-verify-api-key"> <DisplayName>VA-verify-api-key</DisplayName> <Properties/> <APIKey ref="request.queryparam.x-api-key"/> </VerifyAPIKey>
- 部署新的 Proxy 修訂版本。
- 按照「建立 API 產品」一文中的步驟,為服務建立 API 產品。您可以視需要設定 API 產品的產品詳細資料。
- 請按照「作業」一節中的步驟,根據下列規格將 API 作業集新增至 API 產品:
- 來源:選擇「API Proxy」,然後選取您在先前步驟中建立的 Proxy。
- 作業:設定下列路徑和方法:
- 路徑:
/get
,方法:GET
- 路徑:
/PROXY_NAME
,方法:GET
PROXY_NAME 是您在先前步驟中建立的 Proxy 名稱。
- 路徑:
前往 Google Cloud 控制台的「Apigee API 管理」頁面:
- 建立開發人員:
- 選取「發行」>「開發人員」。
- 在「開發人員」頁面中,按一下「+ 建立」。
- 在「新增開發人員」頁面中,使用任意值填寫必填欄位。
- 按一下「新增」。
- 建立應用程式:
- 選取「發布」>「應用程式」。
- 在「應用程式」頁面,按一下「+ 建立」
- 在「建立應用程式」頁面的「應用程式詳細資料」區段中,使用下列值填寫必填欄位:
- 應用程式名稱:輸入應用程式名稱,例如
ext-proc-app
- 開發人員:選取您在上一個步驟中建立的開發人員,或從清單中選取其他開發人員。
- 應用程式名稱:輸入應用程式名稱,例如
- 在「應用程式憑證」部分中,按一下「+ 新增憑證」。
- 在「憑證」部分,從「到期」清單方塊中選取「永不到期」。
- 在「產品」部分中,按一下「+ 新增產品」,顯示「新增產品」窗格。
- 選取您在上一個步驟中建立的 API 產品。
- 按一下 [確定]。
- 按一下「新增」,關閉「新增產品」窗格。
- 點選「建立」。
- 在「應用程式詳細資料」頁面的「憑證」部分,按一下
visibility_off 即可顯示「金鑰」的值。
複製
Key
值。您會在後續步驟中使用這組金鑰,向服務發出 API 呼叫。 - 在「應用程式詳細資料」頁面的「憑證」部分,按一下 visibility_off 即可顯示「應用程式密鑰」的值。
- LB_DOMAIN_NAME 是您用於負載平衡器和 SSL 憑證的網域名稱。
- API_KEY 是在稍早步驟中顯示的開發人員應用程式憑證 API 金鑰。
- 在 Cloud 控制台的 Apigee 使用者介面中,前往「開發」分頁,然後選取您在先前步驟中建立的 Proxy。
- 在「政策」部分中,按一下「+ 新增政策」。
- 在「新增政策」窗格中,從政策清單選取「指派訊息」。
- 在「指派訊息」窗格中,使用下列值填妥「政策名稱」和「顯示名稱」區段中的必填欄位:
- 政策名稱:輸入政策名稱。例如:
AM-auth
。 - 顯示名稱:輸入要在使用者介面中顯示的政策名稱。例如:
AM-auth
。
- 政策名稱:輸入政策名稱。例如:
- 點選「建立」。
- 在
<Set>
元素下方,新增下列子項元素:<Set> <Authentication> <HeaderName>Authorization</HeaderName> <GoogleAccessToken> <Scopes> <Scope>https://www.googleapis.com/auth/cloud-platform</Scope> </Scopes> </GoogleAccessToken> </Authentication> </Set>
- 按一下 [儲存]。
- 使用 Google 服務帳戶部署新修訂版本。
必要的角色
如要取得安裝 Apigee 擴充功能處理器所需的權限,請要求管理員在機構中授予下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
設定環境變數
在包含 Apigee 執行個體的 Google Cloud 專案中,使用下列指令設定環境變數:
export PROJECT_ID=PROJECT_ID
export ORG_NAME=$PROJECT_ID
export REGION=REGION
export INSTANCE=INSTANCE
export VPC_NETWORK_NAME=VPC_NETWORK_NAME
export SUBNET=SUBNET
其中:
如要確認環境變數是否設定正確,請執行下列指令並檢查輸出內容:
echo $PROJECT_ID $ORG_NAME $REGION $INSTANCE $VPC_NETWORK_NAME $SUBNET
設定驗證權杖
如要設定驗證權杖,請執行下列指令:
export TOKEN=$(gcloud auth print-access-token)
echo $TOKEN
為後端服務設定負載平衡器
下列各節說明如何為後端服務設定全域外部應用程式負載平衡器,並以 httpbin.org 為例:
建立全域外部應用程式負載平衡器
如要建立負載平衡器:
建立網路端點群組 (NEG)
為負載平衡器建立網路端點群組 (NEG):
建立後端服務
如要建立負載平衡器公開的後端服務,請執行下列操作:
建立網址對應
如要在負載平衡器與後端服務之間建立網址對應,請使用下列指令:
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE_NAME \ --global
其中:
建立目標 Proxy
如要為負載平衡器建立目標 Proxy,請使用下列指令:
gcloud compute target-https-proxies create TARGET_PROXY_NAME \ --global \ --ssl-certificates SSL_CERT_NAME \ --global-ssl-certificates \ --url-map URL_MAP_NAME \ --global-url-map
其中:
建立通用轉送規則
如要為負載平衡器建立全域轉送規則,請使用下列指令:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=IP_ADDRESS \ --target-https-proxy=TARGET_PROXY_NAME \ --ports=443 \ --global
其中:
設定 Apigee 擴充功能處理器
以下各節說明設定 Apigee 擴充功能處理器所需的步驟:
建立 Apigee 環境
建立擴充功能處理器 Proxy
如要建立 Apigee 無目標 API Proxy,以便搭配擴充功能處理器負載平衡器使用,請按照下列步驟操作:
設定流量擴充功能
本節說明如何使用下列步驟,為擴充功能處理器設定流量服務擴充功能:
建立 Apigee Private Service Connect 網路端點群組
在本節中,您將建立 Apigee Private Service Connect (PSC) 網路端點群組 (NEG),用於連線至 Apigee 執行個體。如要進一步瞭解 PSC,請參閱南向網路模式。
如要建立 Apigee PSC NEG,請按照下列步驟操作:
建立負載平衡器服務擴充功能
建立負載平衡器服務擴充功能時,您可以變更描述擴充功能的各種欄位值,自訂擴充功能處理器 Proxy 的行為,如下表所示:
身體處理 | 支援的事件 | 中繼資料 | 傳送模式 |
---|---|---|---|
處理要求和回應主體 |
|
|
|
僅處理要求主體 |
|
|
|
僅處理回應內容 |
|
|
|
在本步驟中,您將建立負載平衡器服務擴充功能,支援要求和回應本文處理作業:
curl -X POST "https://networkservices.googleapis.com/v1beta1/projects/$PROJECT_ID/locations/global/lbTrafficExtensions?lbTrafficExtensionId=global-xlb-httpbin-apim-policy" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "global-xlb-httpbin-apim-policy", "forwardingRules": [ "https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME" ], "extensionChains": [ { "name": "httpbin-apigee-extension-chain", "matchCondition": { "celExpression": "true" }, "extensions": [ { "name": "httpbin-apigee-extension", "authority": "ENV_GROUP_HOSTNAME", "service": "https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/backendServices/PSC_NEG_BACKEND_SERVICE", "supportedEvents": [ "REQUEST_HEADERS", "REQUEST_BODY", "REQUEST_TRAILERS", "RESPONSE_HEADERS", "RESPONSE_BODY", "RESPONSE_TRAILERS" ], "timeout": "1s", "requestBodySendMode": "BODY_SEND_MODE_FULL_DUPLEX_STREAMED", "responseBodySendMode": "BODY_SEND_MODE_FULL_DUPLEX_STREAMED" } ] } ], "loadBalancingScheme": "EXTERNAL_MANAGED", "metadata": { "apigee-extension-processor": "EXT_PROC_NAME", "apigee-request-body": "true", "apigee-response-body": "true" } }'
其中:
這項作業可能需要幾分鐘才能完成。
如要確認服務擴充功能已建立,請使用下列指令:
curl "https://networkservices.googleapis.com/v1beta1/projects/$PROJECT_ID/locations/global/lbTrafficExtensions/httpbin-apigee-extension" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json"
回應應與下列內容類似,並顯示轉送規則和後端服務:
createTime: '2025-03-22T00:29:16.056719825Z' extensionChains: - extensions: - authority: extension-processor-test.hybrid.e2e.apigeeks.net name: httpbin-apigee-extension service: https://www.googleapis.com/compute/v1/projects/123456789012/global/backendServices/ep-test-psc-neg-bes supportedEvents: - REQUEST_HEADERS - REQUEST_BODY - REQUEST_TRAILERS - RESPONSE_HEADERS - RESPONSE_BODY - RESPONSE_TRAILERS timeout: 1s matchCondition: celExpression: 'true' name: httpbin-apigee-extension-chain forwardingRules: - https://www.googleapis.com/compute/v1/projects/123456789012/global/forwardingRules/ep-test-fw-rule loadBalancingScheme: EXTERNAL_MANAGED metadata: apigee-extension-processor: ep-test-proxy apigee-request-body: true apigee-response-body: true name: projects/extension-processor-test/locations/global/lbTrafficExtensions/global-xlb-httpbin-apim-policy updateTime: '2025-03-22T00:29:31.183275055Z'
將要求傳送至負載平衡器
如要測試負載平衡器和擴充功能處理器設定,請將要求傳送至負載平衡器:
curl "https://LB_DOMAIN_NAME/get"
其中 LB_DOMAIN_NAME 是您用於負載平衡器和 SSL 憑證的網域名稱。如果您使用 nip.io
,網域名稱會類似 IP_ADDRESS.nip.io
。
回應內容應如下所示:
{"status": 200, { "args": {}, "headers": { ... }, "origin": "173.93.50.108", "url": "https://httpbin.org/get" } }
搭配擴充功能處理器使用政策
本節說明如何搭配擴充功能處理器使用政策。
在本例中,系統會為擴充功能處理器設定 VerifyAPIkey 和 AssignMessage 政策。這些政策用於驗證 Apigee 要求中包含的 API 金鑰,並將 Google權杖插入要求標頭,以便呼叫後端服務。如果 API 供應商使用 Apigee 擴充功能處理器,授權及驗證對 Apigee 服務的要求,並順暢地插入 Vertex AI 等後端服務所需的 Google 驗證權杖,這個情境就非常實用。
新增 VerifyAPIKey 政策,驗證 API 金鑰
以下章節說明如何使用 VerifyAPIKey 政策,透過擴充功能處理器驗證對後端服務的呼叫 API 金鑰:
將 VerifyAPIKey 政策附加至 Proxy
將 VerifyAPIKey 政策附加至擴充功能處理器 Proxy 的步驟如下:
建立 API 產品
如要建立 API 產品,並為服務設定 API 作業集,請按照下列步驟操作:
建立開發人員應用程式和應用程式憑證
如要為新建立的 API 產品建立開發人員應用程式和應用程式憑證,請按照下列步驟操作:
使用 API 金鑰將要求傳送至負載平衡器
如要測試 API 金鑰驗證,請使用 API 金鑰將要求傳送至負載平衡器:
curl "https://LB_DOMAIN_NAME/get"
其中 LB_DOMAIN_NAME 是您用於負載平衡器和 SSL 憑證的網域名稱。
如果沒有 API 金鑰,回應應該會失敗。
使用要求中的 API 金鑰,將另一個要求傳送至負載平衡器:
curl "https://LB_DOMAIN_NAME/get?key=API_KEY"
其中:
回應應指出端點授權成功。這表示 Extension Processor 已驗證 API 金鑰,Apigee Proxy 現在可以處理要求。
新增驗證的 AssignMessage 政策 Google
如要使用 Extension Processor 為 Google 驗證服務提供 API 管理功能,可以透過 AssignMessage 政策,將 Google 存取權杖或 Google ID 權杖插入傳送至後端服務的要求。
以下各節說明如何使用 AssignMessage 政策,透過擴充功能處理器將驗證權杖插入傳送至後端服務的要求: Google
將 AssignMessage 政策附加至 Proxy
如要將 AssignMessage 政策新增至 Proxy,請按照下列步驟操作:
服務帳戶用於產生 Google 存取權杖,並將權杖插入 API 呼叫的要求標頭,以呼叫 Google 後端服務。
傳送要求至負載平衡器,測試權杖插入作業
如要確認權杖插入作業是否正常運作,請將要求傳送至負載平衡器:
curl "https://LB_DOMAIN_NAME/get"
其中 LB_DOMAIN_NAME 是您用於負載平衡器和 SSL 憑證的網域名稱。
回應內容應如下所示:
{ ... "headers": { "Accept": "*/*", "Authorization": "Bearer ya29.c.c0ASRK0Gbw03y9cfvxL11DxaRYBQUU18SmUP4Vu63OckHI5cX7wJ4DmGMG2vbDDS69HXJHqMj-lak4tcqOsJGmE65crn2gNuJLanXidwM8", "First": "1.0", "Host": "apigee-ext-proc-test.apigee.net", "Second": "1.0", "Sum": "2", "User-Agent": "curl/8.7.1", "X-Api-Key": "McYcHGR3PTSGLXExvKADwQ1JJeCjgPDUvAakCl0rJKCFaX0Y", "X-Cloud-Trace-Context": "0fd3dadc2a3c328fa968d5f5f1434c29/18300783092696918345" }, ... }
回應應會顯示驗證權杖已成功插入要求標頭。 Google
成功套用 AssignMessage 政策後,系統會進一步修改範例情境中用戶端向 Apigee 提出的成功要求 (內含 API 金鑰),在要求標頭中加入 Google 驗證權杖,這是 Google驗證後端服務的要求。