在不使用 VPC 对等互连的情况下预配评估组织

本页面适用于 Apigee,但不适用于 Apigee Hybrid

查看 Apigee Edge 文档。

本文档介绍了如何在不使用 VPC 对等互连的情况下通过命令行安装和配置 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_LOCATIONRUNTIME_LOCATION 可以位于同一区域,但这不是必须的。不过,如果两者相同,则可能会获得性能优势。

  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. 如需检查创建请求的状态,您可以向 Apigee List Organizations API 发送 GET 请求,如以下示例所示:
    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 代理请求。

使用 PSC 从外部访问

允许使用 Private Service Connect (PSC) 从外部访问 API 代理。

使用 Private Service Connect (PSC) 可以在服务提供方 (Apigee) 和服务使用方(对等互连 VPC 项目和/或您控制的一个或多个其他 Cloud 项目)之间启用专用连接。借助这种方法,请求会通过全球外部负载均衡器或区域外部负载均衡器传递到单连接点(称为服务连接)。此配置可让您从任何启用了网络的机器发送 Apigee API 代理请求。

在以下说明的标签页上介绍了每种路由方法。

内部路由 (PSC)

本部分介绍如何使用 Private Service Connect (PSC) 仅允许从任何 Google Cloud 项目内部访问 API 代理。

必须通过 PSC 配置内部访问权限:

在下面选择您的配置选项对应的标签页,然后按照以下步骤操作:

服务端点

为服务连接创建 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 代理测试设置时,您需要使用该 IP 地址。(例如:10.138.0.2

Apigee 预配完成。转到部署示例代理

内部区域级 LB

第 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。子网可以由虚拟机或其他实体共享和使用。如果未指定子网,网络端点可能属于创建网络端点组的区域中的任何子网。
  • 第 8b 步:创建代理专用子网

    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 目标代理中使用的 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 代理。

      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 代理的名称。
      • 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 代理的名称。

    Apigee 预配完成。转到部署示例代理

    外部路由 (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。子网可以由虚拟机或其他实体共享和使用。如果未指定子网,网络端点可能属于创建网络端点组的区域中的任何子网。
      • 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 代理。

      您必须拥有要在 HTTPS 目标代理中使用的 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 代理。

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

      替换以下内容:

      • PROXY_NAME:目标 HTTPS 代理的名称。
      • 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 代理的名称。

    Apigee 预配完成。转到部署示例代理

    区域级外部 LB

    配置区域级外部 HTTP(S) 负载均衡器。另请参阅外部 HTTP(S) 负载均衡器概览

    1. 确保您已在定义环境变量中设置变量。
    2. 创建代理专用子网:
      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 代理。

      您必须拥有要在 HTTPS 目标代理中使用的 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 代理。

      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 代理的名称。
      • 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 代理的名称。

    Apigee 预配完成。转到调用示例 API 代理

    第 5 步:调用示例 API 代理

    系统在预配期间为您创建并部署了一个名为 hello-world 的 API 代理。在这一步中,您将通过调用此代理来测试新的评估组织。

    使用内部路由调用 API 代理

    如果您在第 5 步中选择了使用服务端点选项的内部路由,请按照调用仅限内部访问的 API 代理中的步骤操作。

    使用外部路由调用 API 代理

    如果您在第 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 代理已部署:
      curl -i -H "$AUTH" \
        "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
    3. 调用 API 代理:

      通过执行以下命令,从任何已启用网络的计算机向 API 代理发送请求:

      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 证书进行问题排查

      确保您的注册网域具有指向第 5 步中创建的全球外部 IPv4 地址的 A 记录。运行以下命令以查看预留的 IP 地址:

      gcloud compute addresses describe ADDRESS_NAME \
                    --format="get(address)" --region=$RUNTIME_LOCATION \
                    --project=$PROJECT_ID

      如果您无法解析网域配置,请尝试使用此命令调用代理:

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

    下一步:如需详细了解构建和部署 API 代理,请参阅构建第一个 API 代理概览