本頁內容適用於 Apigee,但不適用於 Apigee Hybrid。
查看
Apigee Edge 說明文件。
步驟摘要
本文說明如何透過指令列安裝及設定 Apigee 評估機構 (或評估機構)。評估機構的效期為 60 天,且可能設有其他限制。另請參閱 比較評估和付費機構。
佈建步驟如下:
- 步驟 1:定義環境變數:
設定
gcloud
並定義環境變數。 Google Cloud CLI 可管理驗證作業、本機設定、開發人員工作流程,以及與 Google Cloud API 之間的互動。 - 步驟 2:啟用 API:Apigee 要求您啟用多個 Google Cloud API。
- 步驟 3:設定 Service Networking:Service Networking 會使用虛擬私有雲網路對等互連設定,自動在您的網路與 Apigee 之間建立私人連線。
- 步驟 4:建立機構:Apigee 機構 (有時也稱為機構) 是 Apigee 中的頂層容器。包括所有環境和環境群組、使用者、API Proxy 和相關資源。
- 步驟 5:設定轉送:允許外部存取或僅限內部存取您的 API。
- 步驟 6:呼叫範例 API Proxy:部署並呼叫 API Proxy,測試佈建作業。
步驟 1:定義環境變數
設定 gcloud
並定義環境變數,以供後續步驟使用:
- 請務必完成「必要條件」一節列出的規定。
- 您必須安裝 gcloud CLI。如需安裝,請參閱「安裝 gcloud CLI」。
- 如「初始化 gcloud CLI」一節所述,初始化 gcloud CLI。如果 CLI 已初始化,請確認您在「必要條件」中建立的 Google Cloud 專案是 gcloud 的預設專案。
- 定義下列環境變數:
AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
其中:
- AUTH 會使用不記名權杖定義
Authentication
標頭。呼叫 Apigee API 時,您會使用這個標頭。請注意,權杖會在一段時間後過期,屆時您只要使用相同指令重新產生即可。詳情請參閱 print-access-token 指令的參考頁面。 - PROJECT_ID 是您在必要條件中建立的 Cloud 專案 ID。
RUNTIME_LOCATION 是 Apigee 執行個體的實際所在位置。如需可用執行階段位置清單,請參閱 Apigee 位置。
-
ANALYTICS_REGION 是 Apigee 儲存分析資料的實際位置。如需可用的 Apigee API Analytics 區域清單,請參閱 Apigee 位置。
RUNTIME_LOCATION 和 ANALYTICS_REGION 可以是相同區域,但並非必要。不過,如果兩者相同,可能會提升成效。
- AUTH 會使用不記名權杖定義
- (選用) 透過回顯剛才設定的值,檢查您的工作。請注意,如要在指令中使用變數,請在變數名稱前加上美元符號 ($)。
echo $AUTH
echo $PROJECT_ID
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
echo
指令的回應內容應如下所示:Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_ 1CxN my-cloud-project us-west1 us-west1
步驟 2:啟用 API
-
Apigee 需要啟用多個 Google Cloud API。執行
services enable
指令來啟用這些功能:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(選用) 如要檢查作業,請使用
services list
指令顯示所有已啟用的 API:gcloud services list
回應會顯示所有已啟用的服務,包括您剛啟用的 API (Apigee、Service Networking、Cloud KMS 和 Compute Engine)。
步驟 3:設定服務網路
- 建立下列環境變數:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
其中:
RANGE_NAME
是您要建立的 IP 位址範圍名稱。您可以隨意命名範圍。例如:google-svcs
NETWORK_NAME
是要預留位址的網路資源名稱。Google 會為每個新專案建立預設網路 (名為default
),因此您可以直接使用該網路。不過,Google 不建議將預設網路用於測試以外的任何用途。
- 建立 CIDR 長度為 /22 的 IP 範圍:
gcloud compute addresses create $RANGE_NAME \ --global \ --prefix-length=22 \ --description="Peering range for Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
其中
--addresses
可讓您選擇為/22
的前置字元長度指定一或多個位址 IP。例如,如要分配 CIDR 區塊192.168.0.0/22
,請將位址指定為192.168.0.0
,並將前置字串長度指定為22
。另請參閱建立 IP 配置。如果您未提供
--addresses
參數,gcloud 會為您選取可用的位址範圍。成功後,
gcloud
會傳回下列內容:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
建立 IP 位址範圍後,這些位址就會與專案建立關聯,直到您釋出為止。
- 建立第二個 IP 範圍,CIDR 長度為 /28。Apigee 會使用這個範圍進行疑難排解,因此無法自訂或變更。
gcloud compute addresses create google-managed-services-support-1 \ --global \ --prefix-length=28 \ --description="Peering range for supporting Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
其中
--addresses
可讓您選擇為/28
的前置字元長度指定一或多個位址 IP。例如,如要分配 CIDR 區塊192.168.0.0/28
,請將位址指定為192.168.0.0
,並將前置字串長度指定為28
。另請參閱建立 IP 配置。如果您未提供
--addresses
參數,gcloud 會為您選取可用的位址範圍。 - 使用下列指令將服務連線至網路:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$RANGE_NAME,google-managed-services-support-1 \ --project=$PROJECT_ID
這項作業可能需要幾分鐘才能完成。成功後,
gcloud
會傳回下列內容:Operation "operations/OPERATION_ID" finished successfully.
其中 OPERATION_ID 是 LRO (長時間執行的作業) 的 UUID。
Apigee 會在您的網路與 Google 服務之間建立連線;具體來說,Apigee 會透過 VPC 對等互連,將您的專案連線至 Service Networking API。Apigee 也會將 IP 位址與您的專案建立關聯。
步驟 4:建立機構
機構是 Apigee 中的頂層容器,其中包含所有 API Proxy 和相關資源。詳情請參閱「瞭解機構」。
- 使用 gcloud alpha apigee
organizations 指令建立新的評估機構:
gcloud alpha apigee organizations provision \ --runtime-location=$RUNTIME_LOCATION \ --analytics-region=$ANALYTICS_REGION \ --authorized-network=$NETWORK_NAME \ --project=$PROJECT_ID
其中
--authorized-network
是自訂對等互連網路的名稱。例如:default
。 -
執行
provision
指令時,Google 會啟動 LRO 來建立評估機構。這項作業最多需要 40 分鐘才能完成。在這段期間,gcloud
會顯示下列內容:Provisioning organization...
建立評估機構和相關聯的執行階段例項後,
gcloud
會回應下列訊息:Provisioning organization...done.
-
如果您執行下列指令:
gcloud alpha apigee operations list --organization=$PROJECT_ID
您應該會看到所有 UUID 都處於
FINISHED
狀態。例如:UUID ORGANIZATION STATE 00bab06f-c60c-41a5-4242-7SAMPLE7f my-org FINISHED 429790a7-3151-4642-4343-7SAMPLE7f my-org FINISHED d00a92a9-9b83-4642-4343-7SAMPLE7f my-org FINISHED f48a00ff-7daa-4c4a-4444-7SAMPLE7f my-org FINISHED
步驟 5:設定轉送
決定要允許外部存取還是僅限內部存取:
存取權類型 | 設定和部署程序說明 |
---|---|
內部 |
只允許內部存取 API Proxy。 您必須在網路中建立新的 VM,並連線至該 VM。您可以在新的 VM 中,傳送要求至 Apigee API Proxy。 |
外部 |
允許外部存取 API Proxy。 使用 Private Service Connect (PSC) 啟用服務供應商 (Apigee) 與服務消費者 (對等互連的虛擬私有雲專案,和/或您控管的一或多個其他 Cloud 專案) 之間的私人連線。使用這種方法時,要求會通過全域外部負載平衡器,傳送至單一連結點 (稱為「服務連結」)。完成這項設定後,您就能從任何啟用網路的機器傳送 Apigee API Proxy 要求。 |
下方的操作說明會以分頁呈現每種轉送方式。
內部轉送
如果您使用指令列設定僅供內部存取的 API Proxy,則不必執行這個步驟。您可以跳至「步驟 6:呼叫範例 API Proxy」,向 API Proxy 傳送要求。
外部轉送
本節說明如何使用 Private Service Connect (PSC) 設定外部路由,允許 Apigee 與您控管的虛擬私有雲進行通訊。您必須先完成這項操作,才能從外部用戶端將要求傳送至 Apigee 執行階段例項。
外部設定步驟如下:
步驟 5a:建立網路端點群組 (NEG)
步驟 5b:設定負載平衡器
以下各節將說明這些步驟。
步驟 5a:建立網路端點群組 (NEG)
- 取得 Apigee 執行個體的服務連結:
curl -i -X GET -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
在下列輸出範例中,
serviceAttachment
值會以粗體顯示:{ "instances": [ { "name": "eval-instance", "location": "us-west1", "host": "10.72.100.2", "port": "443", "createdAt": "1657832463500", "lastModifiedAt": "1657833920670", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-8-0-apigee-18", "ipRange": "10.74.100.0/28,10.74.100.16/28", "consumerAcceptList": [ "apigee-eval-test" ], "serviceAttachment": "projects/s8da1b0111eb33765-tp/regions/us-west1/serviceAttachments/apigee-us-west1-icza" } ] }
建立 Private Service Connect 網路端點群組 (NEG),指向您在上一個步驟中從執行個體回應主體取得的服務附件。
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=$RUNTIME_LOCATION \ --network=$NETWORK_NAME \ --subnet=SUBNET_NAME \ --project=$PROJECT_ID
更改下列內容:
- NEG_NAME:網路端點群組的名稱。
- TARGET_SERVICE:要連線的服務附件。例如:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- SUBNET_NAME:用於與生產者建立私有連線的子網路名稱。 子網路大小可以很小:PSC NEG 只需要子網路中的一個 IP。如果是 Apigee,每個區域只需要一個 PSC NEG。VM 或其他實體可以共用及使用子網路。如果未指定子網路,網路端點可能會屬於建立網路端點群組的區域中任何子網路。
步驟 5b:設定負載平衡器
設定全域外部 HTTP(S) 負載平衡器 (負載平衡配置設為 EXTERNAL_MANAGED
)。
雖然 Private Service Connect NEG 是區域性的,但這項設定中的所有其他負載平衡元件都是全域性的。
- 為負載平衡器保留全域外部 IPv4 位址。
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global --project=$PROJECT_ID
將 ADDRESS_NAME 替換為 IP 位址資源的名稱。
執行下列指令,查看保留的 IP 位址:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
- 為 NEG 建立後端服務。
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global --project=$PROJECT_ID
- 將 NEG 新增至後端服務:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=$RUNTIME_LOCATION \ --global --project=$PROJECT_ID
更改下列內容:
- BACKEND_SERVICE_NAME:後端服務的名稱。
- NEG_NAME:網路端點群組的名稱。
為負載平衡器建立網址對應。
網址對應必須參照預設後端服務。將您剛建立的後端服務設為預設服務。
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_ID
更改下列內容:
- URL_MAP_NAME:網址對應表名稱。
- DEFAULT_BACKEND_SERVICE_NAME:負載平衡器的預設後端服務名稱。 如果沒有任何主機規則與要求的主機名稱相符,系統就會使用預設規則。
為 HTTPS 目標 Proxy 建立 SSL 憑證。
如要建立 HTTPS 負載平衡器,您必須具備SSL 憑證資源,才能在 HTTPS 目標 Proxy 中使用。您可以透過Google 代管的 SSL 憑證或自行管理的 SSL 憑證建立 SSL 憑證資源。
使用這個指令建立 Google 代管的 SSL 憑證資源:
gcloud compute ssl-certificates create CERTIFICATE \ --domains DOMAIN --project=$PROJECT_ID
更改下列內容:
- CERTIFICATE:憑證名稱。
- DOMAIN:用於外部負載平衡器的網域名稱。
如要建立自行管理的 SSL 憑證,您需要本機私密金鑰檔案和本機憑證檔案。如需建立這些檔案,請參閱「使用自行管理的安全資料傳輸層 (SSL) 憑證」。
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --project=$PROJECT_ID
更改下列內容:
- CERTIFICATE:憑證名稱。
- LB_CERT:PEM 格式的憑證檔案路徑 (適用於自行管理的憑證)。
- LB_PRIVATE_KEY:PEM 格式的私密金鑰檔案路徑,適用於您自行管理的憑證。
-
佈建憑證最多可能需要一小時。如要檢查佈建狀態,請執行下列指令:
gcloud compute ssl-certificates describe CERTIFICATE \ --global \ --format="get(name,managed.status, managed.Status)"
- 將網域新增至為您建立的 Apigee 環境群組。環境群組的名稱為
eval-group
:curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group" \ -H "$AUTH" \ -X PATCH \ -H "Content-Type:application/json" \ -d '{ "hostnames":["'"DOMAIN"'"] }'
- 檢查環境群組作業的狀態:
curl -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
-
使用 SSL 憑證資源建立目標 HTTPS Proxy。
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE --project=$PROJECT_ID
更改下列內容:
- PROXY_NAME:目標 HTTPS Proxy 的名稱。
- URL_MAP_NAME:網址對應表名稱。
- CERTIFICATE:憑證資源的名稱。
- 建立轉送規則。
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --global --project=$PROJECT_ID
更改下列內容:
- FWD_RULE:轉送規則的名稱。
- ADDRESS_NAME:您預留用於轉送規則的 IP 位址資源。
- PROXY_NAME:目標 HTTPS Proxy 的名稱。
將 BACKEND_SERVICE_NAME 改為後端服務的名稱。
Apigee 佈建完成。
步驟 6:呼叫範例 API Proxy
佈建期間,系統會為您建立並部署名為 hello-world
的 API Proxy。在這個步驟中,您將呼叫 Proxy,測試新的評估機構。
使用內部路徑呼叫 Proxy
如果您在步驟 5 中選擇內部路徑選項,請按照「呼叫僅限內部存取的 API Proxy」一節中的步驟操作。
使用外部路徑呼叫 Proxy
如果您在步驟 5 中選擇外部轉送選項,請按照本節中的步驟操作。
- 為網域設定 DNS 項目。以下提供兩種做法:
- 在註冊機構中,建立指向網域的 A 記錄。舉例來說,如果您的網域是
sales.example.com
,IP 位址為 10.23.0.2,請將sales.example.com
的記錄指向10.23.0.2
位址。執行下列指令,查看保留的 IP 位址:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
- 使用 Google Cloud DNS 將網址對應至 IP 位址。
- 在註冊機構中,建立指向網域的 A 記錄。舉例來說,如果您的網域是
- 確認已部署
hello-world
Proxy:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
- 呼叫 API Proxy:
從任何啟用網路的電腦執行下列指令,將要求傳送至 API Proxy:
curl -i -H "Host: DOMAIN" \ https://DOMAIN/hello-world
其中 DOMAIN 是您放入憑證並新增至環境群組的網域,如「步驟 5:設定轉送」所述。如有需要,您可以使用這個 API 從環境群組取得
DOMAIN
值:curl -i -H "$AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"
成功後,範例 API 代理伺服器會傳回下列回應:
Hello, Guest!
疑難排解訣竅:
如果發生信號交換錯誤,請檢查 SSL 憑證的狀態。如要瞭解如何排解自行管理和 Google 代管憑證的問題,請參閱「排解 SSL 憑證問題」。
請確認註冊網域的 A 記錄指向步驟 5 中建立的全域外部 IPv4 位址。執行下列指令,查看保留的 IP 位址:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID
如果無法解決網域設定問題,請嘗試使用下列指令呼叫 Proxy:
curl -H Host:DOMAIN --resolve \ DOMAIN:443:EXTERNAL_IP_ADDRESS \ https://DOMAIN:443/hello-world -k
後續步驟:如要進一步瞭解如何建立及部署 API Proxy,請參閱 建立第一個 API Proxy 總覽。