在沒有虛擬私有雲對等互連的情況下佈建評估機構

本頁內容適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

本文說明如何透過指令列安裝及設定 Apigee 評估機構,無須虛擬私有雲對等互連。評估機構的效期為 60 天,且可能設有其他限制。另請參閱 比較評估和付費機構

限制

本文所述的非 VPC 對等互連安裝選項有以下限制:

如需非 VPC 對等互連支援和不支援的功能與網路方法完整清單,請參閱「如何選擇網路選項」。

步驟摘要

佈建步驟如下:

步驟 1:定義環境變數

設定 gcloud 並定義環境變數,以供後續步驟使用:

  1. 請務必完成「必要條件」一節列出的規定。
  2. 您必須安裝 gcloud CLI。如需安裝,請參閱「安裝 gcloud CLI」。
  3. 如「初始化 gcloud CLI」一節所述,初始化 gcloud CLI。如果 CLI 已初始化,請確認您在「必要條件」中建立的 Google Cloud 專案是 gcloud 的預設專案。
  4. 定義下列環境變數:
    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_LOCATIONANALYTICS_REGION 可以是相同區域,但並非必要。不過,如果兩者相同,可能會提升成效。

  5. (選用) 透過回顯剛才設定的值,檢查您的工作。請注意,如要在指令中使用變數,請在變數名稱前加上美元符號 ($)。
    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

  1. Apigee 需要啟用多個 Google Cloud API。執行 services enable 指令來啟用這些功能:

    gcloud services enable apigee.googleapis.com \
      cloudkms.googleapis.com --project=$PROJECT_ID
  2. (選用) 如要檢查作業,請使用 services list 指令顯示所有已啟用的 API:

    gcloud services list

    回應會顯示所有已啟用的服務,包括您剛啟用的 API (Apigee、Cloud KMS 和 Compute Engine)。

步驟 3:建立機構

機構是 Apigee 中的頂層容器,其中包含所有 API Proxy 和相關資源。詳情請參閱「瞭解機構」。

  1. 使用 provisionOrganization API 建立新的評估機構:
    curl "https://apigee.googleapis.com/v1/projects/$PROJECT_ID:provisionOrganization"  \
      -H "$AUTH" \
      -X POST \
      -H "Content-Type:application/json" \
      -d '{
        "analyticsRegion":"'"$ANALYTICS_REGION"'",
        "runtimeLocation":"'"$RUNTIME_LOCATION"'",
        "disableVpcPeering":"true",
      }'

    其中:

    • -d 定義要求的資料酬載。這個酬載必須包含下列項目:
      • ANALYTICS_REGION:指定要儲存 Analytics 資料的實體位置。

      • RUNTIME_LOCATION:是 Apigee 執行個體所在的實體位置。

      • disableVpcPeering:在這個佈建流程中,我們不會使用虛擬私有雲對等互連,因此這個標記必須設為 true。預設值:false
  2. Apigee 會啟動 LRO,建立評估機構。這項作業最多需要 40 分鐘才能完成。

  3. 如要查看建立要求狀態,可以將 GET 要求傳送至 Apigee List organizations API,如下列範例所示:
    curl -H "$AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"

    如果看到這則回應,表示機構尚未建立完成:

    {
      "error": {
        "code": 403,
        "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)",
        "status": "PERMISSION_DENIED"
      }
    }

    成功後,回應物件會指出 "state": "ACTIVE",您可以繼續下一個步驟。

步驟 4:設定轉送

在這個步驟中,您將設定用戶端應用程式與 Apigee 的通訊方式。用戶端到 Apigee 的流量也稱為「北向」流量。北向設定選項包括:

存取類型 設定和部署程序說明
內部 (與 PSC)

使用 Private Service Connect (PSC),只允許從任何 Google Cloud 專案內部存取 API Proxy。

PSC 可在服務供應商 (Apigee) 和服務消費者 (對等互連的 VPC 專案,和/或您控管的一或多個其他 Cloud 專案) 之間建立私人連線。使用這種方法時,要求會通過服務端點或區域內部負載平衡器,傳送至單一連結點 (稱為服務連結)。完成這項設定後,內部用戶端就能從任何啟用網路的電腦傳送 Apigee API Proxy 要求。

外部 (含 PSC)

使用 Private Service Connect (PSC) 允許外部存取 API Proxy。

使用 Private Service Connect (PSC) 啟用服務供應商 (Apigee) 與服務消費者 (對等互連的虛擬私有雲專案,和/或您控管的一或多個其他 Cloud 專案) 之間的私人連線。使用這種方法時,要求會通過全域外部負載平衡器或區域外部負載平衡器,傳送至單一附加點,也就是服務附件。完成這項設定後,您就能從任何啟用網路的電腦傳送 Apigee API Proxy 要求。

下方的操作說明會以分頁呈現每種轉送方式。

內部轉送 (PSC)

本節說明如何使用 Private Service Connect (PSC),只允許從任何 Google Cloud 專案內部存取 API Proxy。

您可以透過下列兩種方式,使用 PSC 設定內部存取權:

  • 服務端點:要求會通過服務端點,連至單一連結點,也就是服務連結
  • 內部區域負載平衡器:要求會通過區域內部 HTTP(S) 負載平衡器。另請參閱全球性與地區性負載平衡

選取下方分頁標籤,瞭解所選設定的步驟:

服務端點

為服務連結建立 PSC 服務端點

  1. 從 Apigee 執行個體取得服務連結:
    curl -i -X GET -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    在下列輸出範例中,serviceAttachment 值會以粗體顯示:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "runtimeVersion": "1-7-0-20220228-190814",
          "consumerAcceptList": [
            "my-project"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. 建立指向服務連結的 PSC 服務端點,如「建立 Private Service Connect 端點」一文所述,該服務連結是您在上一個步驟中,從執行個體回應主體取得。
  3. 請記下並記住服務端點 IP 位址。稍後您呼叫 API Proxy 測試設定時,會需要這個 IP 位址。(例如:10.138.0.2)

Apigee 佈建完成。前往「部署範例 Proxy」。

內部區域負載平衡器

步驟 8a:設定環境變數

本節的操作說明會使用環境變數,參照重複使用的字串。請務必在「定義環境變數」中設定變數。

此外,請設定下列環境變數:

  • 在指令終端機中定義下列環境變數:
    NEG_NAME=YOUR_NEG_NAME"
    TARGET_SERVICE=YOUR_TARGET_SERVICE"
    NETWORK_NAME=YOUR_NETWORK_NAME"
    SUBNET_NAME=YOUR_SUBNET_NAME"

    其中:

    • NEG_NAME:網路端點群組的名稱。
    • TARGET_SERVICE:要連線的服務連結。例如:projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
    • NETWORK_NAME:(選用) 建立 NEG 的網路名稱。如果省略這個參數,系統會使用 default 專案網路。
    • SUBNET_NAME:用於與生產者建立私有連線的子網路名稱。 子網路大小可以很小:PSC NEG 只需要子網路中的一個 IP。如果是 Apigee,每個區域只需要一個 PSC NEG。子網路可供 VM 或其他實體共用及使用。如果未指定子網路,網路端點可能會屬於建立網路端點群組的區域中任何子網路。
  • 步驟 8b:建立僅限 Proxy 的子網路

    gcloud compute networks subnets create testproxyonlysubnet \
      --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$RUNTIME_REGION --network=$NETWORK_NAME \
      --range=100.0.0.0/24 --project=$PROJECT_ID

    步驟 8c:建立網路端點群組 (NEG)

    1. 從先前建立的執行個體取得服務附件:
      curl -i -X GET -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      在下列輸出範例中,serviceAttachment 值會以粗體顯示:

      {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "runtimeVersion": "1-7-0-20220228-190814",
          "consumerAcceptList": [
            "my-project"
          ],
          "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
        }
      ]
      }
    2. 建立 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 \
      --project=$PROJECT_ID

    步驟 8d:設定區域內部負載平衡器

    1. 為負載平衡器保留內部 IPv4 位址。
      gcloud compute addresses create ADDRESS_NAME \
      --ip-version=IPV4 --subnet=$SUBNET_NAME \
        --region=$RUNTIME_LOCATION --project=$PROJECT_ID

      ADDRESS_NAME 替換為 IP 位址資源的名稱。

      執行下列指令,查看保留的 IP 位址:

      gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --region=RUNTIME_LOCATION --project=$PROJECT_ID
    2. 為 NEG 建立後端服務。
      gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTPS \
      --region=$RUNTIME_REGION \
      --project=$PROJECT_ID
    3. BACKEND_SERVICE_NAME 改為後端服務的名稱。

    4. 將 NEG 新增至後端服務。
      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --region=$RUNTIME_LOCATION \
      --project=$PROJECT_ID

      更改下列內容:

      • BACKEND_SERVICE_NAME:後端服務的名稱。
      • NEG_NAME:網路端點群組的名稱。
    5. 您必須擁有安全資料傳輸層 (SSL) 憑證資源,才能在 HTTPS 目標 Proxy 中使用。

      使用這個指令建立自行管理的 SSL 憑證資源。如要建立自行管理的 SSL 憑證,您需要本機私密金鑰檔案和本機憑證檔案。如需建立這些檔案,請參閱使用自行管理的 SSL 憑證一文的步驟 1。

      gcloud compute ssl-certificates create CERTIFICATE \
      --certificate LB_CERT \
      --private-key LB_PRIVATE_KEY
      --region=RUNTIME_LOCATION --project=$PROJECT_ID

      更改下列內容:

      • CERTIFICATE:憑證名稱。
      • LB_CERT:PEM 格式的憑證檔案路徑 (適用於自行管理的憑證)。
      • LB_PRIVATE_KEY:PEM 格式的私密金鑰檔案路徑,適用於您自行管理的憑證。
    6. 為負載平衡器建立網址對應。

      網址對應必須參照預設後端服務。將您剛建立的後端服務設為預設服務。

      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:負載平衡器的預設後端服務名稱。 如果沒有任何主機規則與要求的主機名稱相符,系統就會使用預設規則。
    7. 使用 SSL 憑證資源建立目標 HTTPS Proxy。

      gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE \
      --region=$RUNTIME_LOCATION --project=$PROJECT_ID

      更改下列內容:

      • PROXY_NAME:目標 HTTPS Proxy 的名稱。
      • URL_MAP_NAME:網址對應表名稱。
      • CERTIFICATE:憑證資源的名稱。
    8. 建立轉送規則。
      gcloud compute forwarding-rules create FWD_RULE \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --address=ADDRESS_NAME \
      --target-https-proxy=PROXY_NAME \
      --ports=443 \
      --target-https-proxy-region=$RUNTIME_REGION \
      --region=$RUNTIME_REGION
      --project=$PROJECT_ID

      更改下列內容:

      • FWD_RULE:轉送規則的名稱。
      • ADDRESS_NAME:您預留用於轉送規則的 IP 位址資源。
      • PROXY_NAME:目標 HTTPS Proxy 的名稱。

    Apigee 佈建完成。前往「部署範例 Proxy」。

    外部轉送 (PSC)

    本節說明如何使用 Private Service Connect (PSC) 設定外部路由,允許 Apigee 與您控管的虛擬私有雲進行通訊。您必須先完成這項操作,才能從外部用戶端將要求傳送至 Apigee 執行階段例項。

    步驟 8b:建立 NEG 並設定負載平衡器

    您可以建立全域或區域負載平衡器。

    全域外部負載平衡器

    設定全域外部 HTTP(S) 負載平衡器 (負載平衡配置設為 EXTERNAL_MANAGED)。

    雖然 Private Service Connect NEG 是區域性的,但這項設定中的所有其他負載平衡元件都是全域性的。

    1. 請確認您已在「定義環境變數」中設定環境變數。
    2. 從先前建立的執行個體取得服務附件:
      curl -i -X GET -H "$AUTH" \
            "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      在下列輸出範例中,serviceAttachment 值會以粗體顯示:

      {
            "instances": [
              {
                "name": "us-west1",
                "location": "us-west1",
                "host": "10.82.192.2",
                "port": "443",
                "createdAt": "1645731488019",
                "lastModifiedAt": "1646504754219",
                "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
                "state": "ACTIVE",
                "peeringCidrRange": "SLASH_22",
                "runtimeVersion": "1-7-0-20220228-190814",
                "ipRange": "10.82.192.0/22,10.82.196.0/28",
                "consumerAcceptList": [
                  "875609189304"
                ],
                "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
              }
            ]
          }
    3. 建立 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
          

      更改下列內容:

      • NETWORK_NAME:(選用) 建立 NEG 的網路名稱。如果省略這個參數,系統會使用 default 專案網路。
      • SUBNET_NAME:用於與生產者建立私有連線的子網路名稱。 子網路大小可以很小:PSC NEG 只需要子網路中的一個 IP。如果是 Apigee,每個區域只需要一個 PSC NEG。VM 或其他實體可以共用及使用子網路。如果未指定子網路,網路端點可能會屬於建立網路端點群組的區域中任何子網路。
      • PROJECT_ID 已與 Apigee 機構建立關聯的 Cloud 專案,或consumerAcceptlist中包含的 Cloud 專案 (建立 Apigee 執行階段例項時)。
    4. 為負載平衡器保留全域外部 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
    5. 為 NEG 建立後端服務。
      gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --global --project=$PROJECT_ID
    6. BACKEND_SERVICE_NAME 改為後端服務的名稱。

    7. 將後端服務新增至 NEG。
      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=$REGION \
        --global --project=$PROJECT_ID

      更改下列內容:

      • BACKEND_SERVICE_NAME:後端服務的名稱。
      • NEG_NAME:網路端點群組的名稱。
      • REGION:網路端點群組的區域。
    8. 為負載平衡器建立網址對應。

      網址對應必須參照預設後端服務。將您剛建立的後端服務設為預設服務。

      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:負載平衡器的預設後端服務名稱。 如果沒有任何主機規則與要求的主機名稱相符,系統就會使用預設規則。
    9. 建立目標 HTTPS Proxy。

      您必須擁有安全資料傳輸層 (SSL) 憑證資源,才能在 HTTPS 目標 Proxy 中使用。您可以透過 Google 代管的 SSL 憑證或自行管理的 SSL 憑證,建立 SSL 憑證資源。建議使用 Google 代管憑證,因為 Google Cloud 會自動取得、管理及更新這些憑證。

      如要建立 Google 代管的憑證,您必須擁有網域

      使用這個指令建立 Google 代管的 SSL 憑證資源:

      gcloud compute ssl-certificates create CERTIFICATE \
        --domains DOMAIN --project=$PROJECT_ID

      更改下列內容:

      • CERTIFICATE:憑證名稱。
      • DOMAIN:負載平衡器的網域名稱。

      使用這個指令建立自行管理的 SSL 憑證資源。如要建立自行管理的 SSL 憑證,您需要本機私密金鑰檔案和本機憑證檔案。如需建立這些檔案,請參閱使用自行管理的 SSL 憑證的步驟 1

      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 格式的私密金鑰檔案路徑,適用於您自行管理的憑證。

      使用 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:憑證資源的名稱。
    10. 建立轉送規則。
      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 的名稱。

    Apigee 佈建完成。前往「部署範例 Proxy」。

    區域外部 LB

    設定區域型外部 HTTP(S) 負載平衡器。另請參閱外部 HTTP(S) 負載平衡器總覽

    1. 請務必在「定義環境變數」中設定變數。
    2. 建立僅限 Proxy 的子網路:
      gcloud compute networks subnets create SUBNET_NAME \
        --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \
        --region=$RUNTIME_LOCATION --network=NETWORK_NAME \
        --range=100.0.0.0/24 --project=$PROJECT_ID
      • SUBNET_NAME 替換為子網路名稱。
      • (選用) 將 NETWORK_NAME 替換為建立子網路的網路名稱。 如果省略這個參數,系統會使用預設專案網路。
    3. 從先前建立的執行個體取得服務附件:
      curl -i -X GET -H "$AUTH" \
              "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

      在下列輸出範例中,serviceAttachment 值會以粗體顯示:

      {
              "instances": [
                {
                  "name": "us-west1",
                  "location": "us-west1",
                  "host": "10.82.192.2",
                  "port": "443",
                  "createdAt": "1645731488019",
                  "lastModifiedAt": "1646504754219",
                  "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
                  "state": "ACTIVE",
                  "peeringCidrRange": "SLASH_22",
                  "runtimeVersion": "1-7-0-20220228-190814",
                  "ipRange": "10.82.192.0/22,10.82.196.0/28",
                  "consumerAcceptList": [
                    "875609189304"
                  ],
                  "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7"
                }
              ]
            }
    4. 建立網路端點群組。
      gcloud compute network-endpoint-groups create NEG_NAME \
              --network-endpoint-type=private-service-connect \
              --psc-target-service=TARGET_SERVICE \
              --region=$RUNTIME_LOCATION --project=$PROJECT_ID

      更改下列內容:

      • NEG_NAME:網路端點群組的名稱。
      • TARGET_SERVICE:要連線的服務附件名稱。 例如:projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
    5. 為 NEG 建立後端服務。
      gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --region=$RUNTIME_LOCATION  \
        --project=$PROJECT_ID
    6. BACKEND_SERVICE_NAME 改為後端服務的名稱。

    7. 將後端服務新增至 NEG。
      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --region=$RUNTIME_LOCATION  \
        --project=$PROJECT_ID

      更改下列內容:

      • BACKEND_SERVICE_NAME:後端服務的名稱。
      • NEG_NAME:網路端點群組的名稱。
    8. 為負載平衡器建立網址對應。

      網址對應必須參照預設後端服務。將您剛建立的後端服務設為預設服務。

      gcloud compute url-maps create URL_MAP_NAME \
        --default-service=DEFAULT_BACKEND_SERVICE_NAME \
        --region=$RUNTIME_LOCATION  \
        --project=$PROJECT_ID

      更改下列內容:

      • URL_MAP_NAME:網址對應表名稱。
      • DEFAULT_BACKEND_SERVICE_NAME:負載平衡器的預設後端服務名稱。 如果沒有任何主機規則與要求的主機名稱相符,系統就會使用預設規則。
    9. 建立目標 HTTPS Proxy。

      您必須具備 SSL 憑證資源,才能在 HTTPS 目標 Proxy 中使用。

      使用這個指令建立自行管理的 SSL 憑證資源。如要建立自行管理的 SSL 憑證,您需要本機私密金鑰檔案和本機憑證檔案。如需建立這些檔案,請參閱使用自行管理的 SSL 憑證的步驟 1

      gcloud compute ssl-certificates create CERTIFICATE \
        --certificate LB_CERT \
        --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION \
        --project=$PROJECT_ID

      更改下列內容:

      • CERTIFICATE:憑證名稱。
      • LB_CERT:PEM 格式的憑證檔案路徑 (適用於自行管理的憑證)。
      • LB_PRIVATE_KEY:PEM 格式的私密金鑰檔案路徑,適用於您自行管理的憑證。
    10. 將網域新增至為您建立的 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"'"]
            }'
    11. 檢查環境群組作業的狀態:
      curl -H "$AUTH" \
            "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
          
    12. 使用 SSL 憑證資源建立目標 HTTPS Proxy。

      gcloud compute target-https-proxies create PROXY_NAME \
        --url-map=URL_MAP_NAME --region=$RUNTIME_LOCATION \
        --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

      更改下列內容:

      • PROXY_NAME:目標 HTTPS Proxy 的名稱。
      • URL_MAP_NAME:網址對應表名稱。
      • CERTIFICATE:憑證資源的名稱。
    13. 為負載平衡器保留區域外部位址。請注意,網路層級必須設為 STANDARD
      gcloud compute addresses create ADDRESS_NAME \
            --region=$RUNTIME_LOCATION --network-tier=STANDARD \
            --project=$PROJECT_ID

      ADDRESS_NAME 替換為 IP 位址資源的名稱。

      執行下列指令,查看保留的 IP 位址:

      gcloud compute addresses describe ADDRESS_NAME \
            --format="get(address)" --region=$RUNTIME_LOCATION \
            --project=$PROJECT_ID
    14. 建立轉送規則。
      gcloud compute forwarding-rules create FWD_RULE \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network-tier=STANDARD \
        --address=ADDRESS_NAME \
        --target-https-proxy=PROXY_NAME \
        --ports=443  --region=$RUNTIME_LOCATION \
        --target-https-proxy-region=$RUNTIME_LOCATION --project=$PROJECT_ID

      更改下列內容:

      • FWD_RULE:轉送規則的名稱。
      • ADDRESS_NAME:您預留用於轉送規則的 IP 位址資源。
      • PROXY_NAME:目標 HTTPS Proxy 的名稱。

    Apigee 佈建完成。前往「呼叫範例 API 代理程式」。

    步驟 5:呼叫範例 API Proxy

    佈建期間,系統會為您建立並部署名為 hello-world 的 API Proxy。在這個步驟中,您將呼叫 Proxy,測試新的評估機構。

    使用內部路徑呼叫 API Proxy

    如果您在步驟 5 中選擇「內部路由」和「服務端點」選項,請按照「僅限內部存取權呼叫 API Proxy」中的步驟操作。

    使用外部路徑呼叫 API Proxy

    如果您在步驟 5 中選擇外部轉送選項,請按照本節中的步驟操作。

    1. 為網域設定 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)" --region=$RUNTIME_LOCATION \
            --project=$PROJECT_ID
      • 使用 Google Cloud DNS 將網址對應至 IP 位址。
    2. 確認已部署 hello-world Proxy:
      curl -i -H "$AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
    3. 呼叫 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)" --region=$RUNTIME_LOCATION \
                    --project=$PROJECT_ID

      如果無法解決網域設定問題,請嘗試使用下列指令呼叫 Proxy:

      curl  -H Host:DOMAIN --resolve \
        DOMAIN:443:EXTERNAL_IP_ADDRESS  \
        https://DOMAIN:443/hello-world -k

    後續步驟:如要進一步瞭解如何建立及部署 API Proxy,請參閱 建立第一個 API Proxy 總覽