本頁面適用於 Apigee,但不適用於 Apigee Hybrid。
查看
Apigee Edge 說明文件。
步驟摘要
本文說明如何透過指令列安裝及設定 Apigee 評估機構 (或評估機構)。評估版機構會在 60 天後到期,且可能有其他限制。另請參閱 比較評估和付費機構。
佈建步驟如下:
- 步驟 1:定義環境變數:
設定
gcloud
並定義環境變數。Google Cloud CLI 可用來管理驗證作業、本機設定、開發人員工作流程,以及與 Google Cloud API 之間的互動。 - 步驟 2:啟用 API:Apigee 要求您啟用幾個 Google Cloud API。
- 步驟 3:設定服務網路:Service Networking 會使用虛擬私有雲網路對等互連設定,自動在網路和 Apigee 之間建立私人連線。
- 步驟 4:建立機構:Apigee 機構 (有時稱為「org」) 是 Apigee 中的頂層容器。其中包含所有環境和環境群組、使用者、API Proxy 和相關資源。
- 步驟 5:設定轉送:允許外部存取或僅限內部存取 API。
- 步驟 6:呼叫範例 API Proxy:部署並呼叫 API Proxy,以測試用途。
步驟 1:定義環境變數
設定 gcloud
,並定義後續步驟中會用到的環境變數:
- 請務必完成「必要條件」一節中列出的所有條件。
- 您必須安裝 gcloud CLI。如果您需要安裝 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 位址範圍後,這些位址會與專案建立關聯,直到您釋出為止。
- 建立 CIDR 長度為 /28 的第二個 IP 範圍。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 會透過 虛擬私有雲對等互連,將您的專案連結至 Service Networking API。Apigee 也會將 IP 位址與您的專案建立關聯。
步驟 4:建立機構
機構是 Apigee 中的頂層容器,其中包含所有 API 代理程式和相關資源。詳情請參閱「瞭解機構」。
- 使用 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 代理程式。 您必須在網路中建立新的 VM,並連線至該 VM。您可以透過新的 VM 將要求傳送至 Apigee API Proxy。 |
外部 |
允許外部存取 API 代理程式。 使用 Private Service Connect (PSC) 啟用服務供應者 (Apigee) 和服務使用者 (對等互連的 VPC 專案和/或您控制的一或多個其他雲端專案) 之間的私人連線。使用這種方法時,要求會經過全域外部負載平衡器,傳送至單一連結點,稱為「服務連結點」。這項設定可讓您從任何可連上網路的電腦傳送 Apigee API Proxy 要求。 |
下方操作說明的各個分頁中,都會顯示這些路由方法。
內部轉送
如果您使用指令列設定僅限內部存取的 API Proxy,則此步驟沒有任何工作可執行。您可以跳至步驟 6:呼叫範例 API proxy,向 API proxy 傳送要求。
外部轉送
本節說明如何使用 Private Service Connect (PSC) 設定外部路由,讓 Apigee 與您控管的 VPC 之間進行通訊。您必須先執行這項操作,才能從外部用戶端將要求傳送至 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 負載平衡器,您必須在 HTTPS 目標 Proxy 中使用SSL 憑證資源。您可以使用 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 來測試新的 eval 組織。
呼叫內部路由 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 位址。執行下列指令,查看保留的 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 總覽」。