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

本頁面適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

本文說明如何透過指令列安裝及設定 Apigee 評估機構,且不建立 VPC 對等連線。評估版機構會在 60 天後到期,且可能有其他限制。另請參閱 比較評估和付費機構

限制

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

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

步驟摘要

佈建步驟如下:

步驟 1:定義環境變數

設定 gcloud,並定義後續步驟中會用到的環境變數:

  1. 請務必先完成「必要條件」一節中列出的所有條件。
  2. 您必須安裝 gcloud CLI。如果您需要安裝 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 代理程式和相關資源。詳情請參閱「瞭解機構」。

  1. 使用 provisionOrganization API 建立新的評估機構:
     suppresswarning="true">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:指定分析資料的儲存位置。

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

      • disableVpcPeering:在這個佈建流程中,我們不會使用 VPC 對接,因此這個標記必須設為 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 代理程式。

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

外部 (使用 PSC)

使用 Private Service Connect (PSC) 允許外部存取 API 代理程式。

使用 Private Service Connect (PSC) 在服務供應者 (Apigee) 和服務消費者 (對等互連的 VPC 專案和/或您控制的一或多個其他雲端專案) 之間建立私人連線。使用這種方法時,要求會經過全域外部負載平衡器或區域性外部負載平衡器,傳送至單一連結點,稱為服務連結。這項設定可讓您從任何可連上網路的電腦傳送 Apigee API Proxy 要求。

下方操作說明的各個分頁中,都會顯示這些路由方法。

內部轉送 (PSC)

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

您可以透過 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. 您必須具備要在 HTTPS 目標 Proxy 中使用的 SSL 憑證資源

      請使用這個指令建立自行管理的 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 與您控管的 VPC 之間進行通訊。您必須先執行這項操作,才能從外部用戶端將要求傳送至 Apigee 執行階段執行個體。

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

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

    全域外部 LB

    設定全域外部 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 專案,或是在Apigee 執行階段執行個體建立時,consumerAcceptlist 中納入的 Cloud 專案。
    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。

      您必須具備要在 HTTPS 目標 Proxy 中使用的 SSL 憑證資源。您可以使用 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。

      您必須具備要在 HTTPS 目標 Proxy 中使用的 SSL 憑證資源

      請使用這個指令建立自行管理的 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 來測試新的 eval 組織。

    使用內部路由呼叫 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 總覽」。