实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

预配 Apigee X 评估组织

实验 1 小时 5 分钟 universal_currency_alt 1 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP904

Google Cloud 自学实验的徽标

概览

在本实验中,您将学习如何创建 Apigee X 组织。您将使用 Apigee X 预配向导来创建 Apigee X 组织。安装并配置组织后,您需要安装 API 代理并调用 API,以验证组织是否正常工作。

您在自己的 Google Cloud 项目中创建的 Apigee 评估组织通常可供使用 60 天。对于为本实验预配的组织,实验结束后就会被删除,届时您将无法再访问该组织。

建议您在点击开始实验之前先通读实验内容。开始实验后,您有 90 分钟的时间完成实验。当实验的访问时限到期时,实验将会结束,Apigee 评估组织也会被删除。

在本实验中,您将学习如何执行以下任务:

  • 使用预配向导创建 Apigee X 评估组织
  • 了解 Apigee X 架构以及如何与 Google Cloud 项目集成
  • 创建一个虚拟机,以便从内部 IP 地址调用 Apigee 代理
  • 从外部 IP 地址调用 Apigee 代理

设置

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。 注意:建议您使用新的无痕式窗口完成本实验。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 预配 Apigee X 组织

在此任务中,您将使用预配向导来预配 Apigee X 评估组织

Apigee X 组织附加在客户管理的 Google Cloud 项目中。

前提条件

在创建 Apigee X 评估组织之前,必须满足一些前提条件

  • 使用 Apigee X 时,Apigee 组织名称与关联的 Google Cloud 项目名称必须相匹配。项目名称必须以小写字母开头,并且只能包含小写字母 (a-z)、数字 (0-9) 和连字符。
  • 附加 Apigee X 的项目必须与启用了结算功能的 Google Cloud 账号相关联。无论您是创建 Apigee X 付费组织还是评估组织,此要求都适用。评估组织不会对您的账号产生费用,但组织使用的某些 API 可能会产生费用。
  • Cloud SDK 用于安装 Apigee 组织并与之交互。

本实验项目符合这些前提条件。

启动预配向导

  1. 在 Cloud 控制台中,前往 Apigee 控制台。

  2. 点击免费试用 Apigee,前往评估控制台。

    “实验详细信息”面板中 Google Cloud 项目名称旁边的“复制”图标,已突出显示。

启用 API

Apigee X 组织要求在 Google Cloud 项目中启用 Apigee、Service Networking 和 Compute Engine API。该向导会启用所需的 API。

  1. 设置 Apigee 评估中,点击启用 API 旁边的修改

    系统会显示要启用的 API 列表:

    • Apigee API 用于配置 Apigee 组织并与之交互。
    • Compute Engine API 用于创建托管式实例组 (MIG),该实例组将充当网络桥,以便连接到 Apigee 实例专用 IP 地址。
    • 借助 Service Networking API,您的 Google Cloud 项目才能与 Google 管理的 Apigee 评估组织进行通信。
  2. 点击启用 API

    稍等片刻,API 启用完成后,启用 API 旁边会显示一个对勾标记。

设置网络

预配向导会在客户的 Google Cloud 项目与 Google 管理的项目(包含 Apigee 运行时)之间创建虚拟私有云 (VPC) 网络对等互连。该向导还会创建一个专用服务连接,以便与 Apigee 运行时通信。

  1. 点击网络旁边的修改

    设置网络窗格会要求您指定授权网络。默认网络已可用,并且可用于评估组织,但通常不建议使用默认网络。

  2. 点击查看项目中的 VPC 网络

    控制台中的“VPC 网络”页面将在另一个标签页中打开。

  3. 点击 + 创建 VPC 网络

  4. 将网络命名为 apigeex-vpc

  5. 新子网窗格中,设置以下值:

    属性
    名称 apigeex-vpc
    区域 选择“
    IPv4 范围 10.0.0.0/20
    专用 Google 访问通道 On

    IP 地址范围以 CIDR 格式指定。十进制数字用于指定 IP 地址范围的大小,即从 /32(单个 IP 地址)到 /8(从 10.0.0.0 到 10.255.255.255 的最大专用 IP 范围)。

    您的子网必须使用一个足以容纳 /22 的 IP 地址范围。这里使用的是 /20 范围,它是 Apigee 将使用的 /22 范围的 4 倍。

  6. 新建子网窗格中,点击完成

  7. 点击创建

    系统会在您的项目中创建一个新 VPC 网络,该网络只包含一个子网。apigeex-vpc 网络旁边会显示一个旋转的圆圈,直到创建完成。

  8. 等待 apigeex-vpc 网络创建完成,然后返回向导的设置标签页。

  9. 点击刷新已获授权的网络 (刷新网络按钮),然后选择已获授权的网络 apigeex-vpc

  10. 选择自动分配 IP 范围

系统将创建一个名为 google-managed-services-apigeex-vpc 且前缀长度为 /22 的对等互连 IP 范围

注意: 对等互连范围前缀长度用于指定分配给 Apigee 的对等互连内部 IP 地址数量。地址数量为 2 ^(32 - 前缀长度)。付费组织的对等互连范围前缀长度应为 /16 或 /20,分别对应 65,536 或 4,096 个 IP 地址。

评估组织只能使用 /22 的前缀长度,对应 1024 个 IP 地址。由于 IP 地址数量较少,Apigee 在评估组织中的扩缩能力会受到限制。付费组织能够处理的流量远高于评估组织。
  1. 点击分配并连接
  2. 等待网络配置完成。

网络配置设置完成后,网络旁边会显示一个对勾标记。

  1. 返回 VPC 网络标签页,然后点击刷新
  2. 点击 apigeex-vpc
  3. 选中子网标签页,向右滚动并选择专用服务访问通道标签页。

google-managed-services-apigeex-vpc IP 地址范围已创建,其内部 IP 地址范围是 /22。

点击检查我的进度以验证是否完成了以下目标: 启用 API 并设置网络。

创建 Apigee 评估组织

预配向导会创建一个 Apigee 评估组织。

  1. 返回向导的设置标签页。

  2. 点击 Apigee 评估组织旁边的修改

    创建 Apigee 评估组织窗格中,您可以选择用于 Apigee 运行时和分析托管的 Google Cloud 区域

  3. 对于分析托管区域,选择

  4. 对于运行时位置,选择

您要为运行时位置选择一个区域。Apigee 会选择该区域中的一个可用区来预配评估组织。

注意: 如果所选运行时区域不能作为分析托管区域,请选择一个在地理位置上与运行时区域接近的区域。例如,如果您的运行时区域是 us-east4,则可以选择 us-east1 作为分析区域。 注意: 评估组织只能有一个运行时实例,该实例托管在单个 Google Cloud 可用区中。

付费组织运行时实例在一个区域内的多个可用区中运行。您可以为一个组织创建多个运行时实例,并将每个实例托管在不同的区域中。

对于多区域 Apigee 组织,请选择位于运行时区域中心位置或靠近最重要区域的分析托管区域。
  1. 点击预配

    稍后您将返回预配向导来配置访问路由

任务 2. 等待预配完成

在此任务中,您将等待 Apigee 评估组织预配完成。

Apigee 组织预配需要相当长的时间才能完成。您可以使用 Apigee API 监控组织预配进度。

启动监控脚本

  1. 返回到控制台标签页。

  2. 在右上角的工具栏中,点击激活 Cloud Shell 按钮。

    突出显示的“激活 Cloud Shell”按钮。

  3. 如果出现提示,点击继续

    预配并连接到 Cloud Shell 需要一些时间。在连接成功后,您便通过了身份验证,并且项目已设置为您的“PROJECT_ID”

  4. 在 Cloud Shell 中,使用您的 Apigee 组织名称验证变量:

    echo ${GOOGLE_CLOUD_PROJECT}

    变量 GOOGLE_CLOUD_PROJECT 应包含您的项目名称,该名称与您的 Apigee 组织名称相同。

  5. 如果未设置 GOOGLE_CLOUD_PROJECT 变量,请使用类似如下的命令手动设置该变量,并将 替换为您的项目名称:

    export GOOGLE_CLOUD_PROJECT=<project>
  6. 将以下命令粘贴到 Cloud Shell 中:

    export INSTANCE_NAME=eval-instance; export ENV_NAME=eval; if [ -z "${GOOGLE_CLOUD_PROJECT}" ]; then echo "Error: GOOGLE_CLOUD_PROJECT environment variable is not set. Please set it to your project ID."; else export PREV_INSTANCE_STATE=; echo "waiting for runtime instance ${INSTANCE_NAME} to be active"; while : ; do export INSTANCE_STATE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}" | jq "select(.state != null) | .state" --raw-output); [[ "${INSTANCE_STATE}" == "${PREV_INSTANCE_STATE}" ]] || (echo; echo "INSTANCE_STATE=${INSTANCE_STATE}"); export PREV_INSTANCE_STATE=${INSTANCE_STATE}; [[ "${INSTANCE_STATE}" != "ACTIVE" ]] || break; echo -n "."; sleep 5; done; echo; echo "instance created, waiting for environment ${ENV_NAME} to be attached to instance"; while : ; do export ATTACHMENT_DONE=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${GOOGLE_CLOUD_PROJECT}/instances/${INSTANCE_NAME}/attachments" | jq "select(.attachments != null) | .attachments[] | select(.environment == \"${ENV_NAME}\" or (.environment | endswith(\"/${ENV_NAME}\"))) | .environment" --raw-output); [[ -n "${ATTACHMENT_DONE}" ]] && break; echo -n "."; sleep 5; done; echo; echo "${ENV_NAME} environment attached"; echo "***ORG IS READY TO USE***"; fi

    这一系列命令会使用 Apigee API 来确定运行时实例何时完成创建,然后等待“eval”环境被附加到该实例。

  7. 等待预配完成。

    当屏幕上显示文本 ***ORG IS READY TO USE*** 时,表示组织已准备好进行测试。

    注意:在等待组织完成创建期间,请继续阅读本实验内容,了解 Apigee X 架构、API 代理调用生命周期和 Apigee 界面。

    此过程可能需要接近 30 分钟。请注意实验剩余时间,并定期检查 Cloud Shell 输出,了解何时可以测试组织。

    此挑战任务中的其他实验会自动为您创建 Apigee 组织。

Apigee X 架构概览

Apigee X 组织需要两个 Google Cloud 项目:一个由客户管理;另一个由 Google 管理,用于 Apigee X 运行时。每个项目使用各自的虚拟私有云 (VPC) 网络。默认情况下,两个不同项目中的 VPC 网络无法相互通信。

两个不同项目,中间有一条分隔线,表示它们的 VPC 无法相互通信。

为了让这些 VPC 之间相互通信,Apigee 使用 VPC 网络对等互连。借助网络对等互连,两个网络之间可以建立内部 IP 地址连接。

VPC 网络对等互连叠放在 Google 的 VPC 以及客户的 VPC 之上,表示可让其实现相互通信。

Apigee 运行时环境将运行您的 API 代理,并在 Google 管理的项目中进行预配。发送到运行时的传入请求会被发送到内部 TCP 负载均衡器,该负载均衡器可通过对等网络中的专用 IP 地址进行访问。

如需将流量从互联网上的客户端路由到 Apigee 运行时,您可以使用全球外部 HTTPS 负载均衡器 (XLB)。但是,即使网络已实现对等互连,XLB 也无法直接与另一个项目中的内部 IP 地址通信。为了解决此问题,我们使用虚拟机的托管式实例组 (MIG) 作为网络桥。

使用 MIG 作为网络桥时的整体架构,包括全球服务和后端服务。

MIG 中的虚拟机能够跨实现了对等互连的网络进行双向通信。来自互联网的请求将通过 XLB 流向 MIG 中的桥接虚拟机。虚拟机可以调用 Apigee 运行时内部负载均衡器的专用 IP。

运行时还可以直接调用对等网络中客户项目的内部 IP 地址,或者通过 Google 管理的项目 Cloud NAT(网络地址转换)网关调用外部 IP。

API 代理调用生命周期

下图显示了 Apigee X 付费组织中 API 代理调用的生命周期。

代理调用生命周期,从 Apigee API 代理请求开始,到 Apigee 请求返回结束。

  1. 客户端应用调用 Apigee API 代理。
  2. 该请求发送到全球外部 HTTPS 负载均衡器 (XLB)。XLB 是使用外部公共 IP 地址和 TLS 证书配置的。
  3. XLB 将请求转发到 MIG 中的虚拟机。
  4. 虚拟机将请求转发到内部负载均衡器的专用 IP 地址,该地址会路由到 Apigee 运行时。
  5. 请求处理完成后,Apigee 运行时会将请求发送到后端服务。响应会沿同一路径返回。

Apigee 界面

Apigee 界面用于管理您的组织。您可以访问 apigee.google.com 并在显示的界面中探索您的组织。

注意: 预配过程开始后,Apigee X 组织过几分钟应该就会显示在 Apigee 界面中。

点击检查我的进度以验证是否完成了以下目标: 创建 Apigee 评估组织并等待预配完成。

任务 3. 设置访问路由

在此任务中,您将使用预配向导来创建基础设施,从而支持从 VPC 网络外部进行 API 调用。

  1. 返回向导的设置标签页。

    注意: 如果之前的进度检查点已成功完成,则 Apigee 评估组织流程(第 3 步)应该已标记为已完成,或者很快就会标记为已完成。等待第 3 步完成。
  2. 点击访问路由旁边的修改

  3. 选择启用互联网访问

    注意: 向导中提到了 Google Cloud 负载均衡器的费用。使用本实验无需支付任何费用。
  4. 选择使用通配符 DNS 服务

    通配符 DNS 服务将根据嵌入在主机名中的 IP 地址自动返回 DNS 条目。例如,主机名 eval-34.100.120.55.nip.io 会解析为 IP 地址 34.100.120.55。

  5. 如需使用默认的通配符 DNS 提供商 nip.io,请不要修改该网域

  6. 对于子网,选择 apigeex-vpc

  7. 点击设置访问权限

  8. 等待访问路由配置完成,然后点击继续

点击检查我的进度以验证是否完成了以下目标: 设置访问路由。

正在为评估组织创建外部访问权限。负载均衡器使用的 apigee-ssl-cert 可能需要几分钟才能创建完成,因此您将先测试内部访问权限。

任务 4. 使用内部访问权限测试 Apigee 评估组织

在此任务中,您将测试是否可以从内部 IP 地址调用 Apigee 评估组织中的代理。

如需使用内部 IP 地址调用运行时实例上的 API 代理,您需要在同一网络上创建一个虚拟机,该虚拟机要能够调用此运行时实例。

创建可调用 Apigee 运行时的虚拟机

完成预配后,Apigee 评估组织仅允许内部 IP 地址与 Apigee 运行时通信。集群中的 Compute Engine 虚拟机可以向 Apigee 运行时的内部负载均衡器发送请求。

  1. 在 Cloud Shell 中,设置以下环境变量:

    export ORG=${GOOGLE_CLOUD_PROJECT} export PROJECT_NUMBER=$(gcloud projects describe ${GOOGLE_CLOUD_PROJECT} --format="value(projectNumber)") export NETWORK=apigeex-vpc export SUBNET=apigeex-vpc export INSTANCE_NAME=eval-instance export VM_NAME=apigeex-test-vm export VM_ZONE={{{ project_0.default_zone | ZONE }}} export RUNTIME_IP=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/instances/${INSTANCE_NAME}" | jq ".host" --raw-output) echo "RUNTIME_IP=${RUNTIME_IP}"

    运行时 IP 地址使用 Apigee API 进行检索,该 API 用于检索运行时实例的详细信息。工具 jq 用于解析 JSON 响应并检索特定字段。

  2. 创建虚拟机:

    gcloud beta compute --project=${GOOGLE_CLOUD_PROJECT} \ instances create ${VM_NAME} \ --zone=${VM_ZONE} \ --machine-type=e2-micro \ --subnet=${SUBNET} \ --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=http-server,https-server \ --image-family=debian-11 \ --image-project=debian-cloud \ --boot-disk-size=10GB \ --boot-disk-device-name=${VM_NAME} \ --metadata=startup-script="sudo apt-get update -y && sudo apt-get install -y jq"

    gcloud 命令使用以下参数创建一个新虚拟机:

    • 可用区:虚拟机实例的可用区
    • machine-type:e2-micro 是一种经济实惠的共享核心机器类型
    • subnet:您在 apigeex-vpc 网络中创建的子网
    • service-account:附加到实例的身份
    • scopes:为虚拟机上的服务账号提供的访问权限级别
    • tags:应用到实例的标记列表;用于提供默认防火墙规则和路由
    • image-family:用于映像的映像系列;系统将使用该系列中未弃用的最新映像
    • image-project:托管公共映像系列的 Google Cloud 项目
    • boot-disk-size:要创建的虚拟机启动磁盘的大小
    • boot-disk-device-name:创建的启动磁盘的名称
    • metadata:指定要运行的启动脚本;此脚本用于安装供测试使用的 jq

    如需详细了解这些参数,可以使用以下命令:

    gcloud compute instances create --help
  3. 添加防火墙规则,以允许通过安全外壳 (SSH) 访问网络中的虚拟机:

    gcloud compute --project=${GOOGLE_CLOUD_PROJECT} \ firewall-rules create ${NETWORK}-allow-ssh \ --direction=INGRESS \ --priority=65534 \ --network=${NETWORK} \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=0.0.0.0/0

    利用此命令,可指定允许从任何来源向机器发出 SSH 入站请求。SSH 会话仍需要用户进行身份验证。

  4. 在 Cloud Shell 中,打开与新虚拟机的 SSH 连接:

    gcloud compute ssh ${VM_NAME} --zone=${VM_ZONE} --force-key-file-overwrite
  5. 对于出现的每个问题,按 Enter 键或 Return 键来指定默认输入。

    您的登录身份是项目的所有者,因此可以通过 SSH 连接到此虚拟机。

    您的 Cloud Shell 会话现在正在虚拟机内运行。

测试 Apigee 评估组织

  1. 在虚拟机的 shell 中,设置所需的 shell 变量:

    export PROJECT_NAME=$(gcloud config get-value project) export ORG=${PROJECT_NAME} export INSTANCE_NAME=eval-instance export INSTANCE_IP=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/instances/${INSTANCE_NAME}" | jq ".host" --raw-output) export ENV_GROUP_HOSTNAME=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://apigee.googleapis.com/v1/organizations/${ORG}/envgroups" | jq ".environmentGroups[0].hostnames[0]" --raw-output) echo "INSTANCE_IP=${INSTANCE_IP}" echo "ENV_GROUP_HOSTNAME=${ENV_GROUP_HOSTNAME}"

    环境组主机名用于将调用路由到部署在 eval 环境组中的环境的 API 代理。

  2. 使用内部 IP 地址调用已部署的 hello-world API 代理:

    curl -i -k --resolve "${ENV_GROUP_HOSTNAME}:443:${INSTANCE_IP}" \ "https://${ENV_GROUP_HOSTNAME}/hello-world"

    --resolve 设置会强制要求发送给环境组主机名的命令解析为该实例的负载均衡器 IP 地址,因为环境组主机名没有 DNS 条目。-k 选项会跳过对实例负载均衡器 TLS 证书的验证。

    curl 命令使用连接到对等互联网络的虚拟机来调用运行时负载均衡器的内部 IP 地址。curl 命令返回 hello-world 代理的输出:Hello, Guest!

点击检查我的进度以验证是否完成了以下目标: 使用内部访问权限测试 Apigee 评估组织。

任务 5. 使用外部访问权限测试 Apigee 评估组织

在此任务中,您将测试是否可以从外部 IP 地址调用 Apigee 评估组织中的代理。

在预配流程的访问路由步骤中,您会创建从外部 IP 地址调用 API 代理所需的基础设施。预配向导会创建一个外部负载均衡器,该均衡器通过托管式实例组调用运行时。

探索创建的基础设施

  1. 在控制台中,前往网络服务 > 负载均衡

    已创建名为 apigee-proxy-url-map 的负载均衡器。

  2. 点击 apigee-proxy-url-map

    负载均衡器配置部分包括前端、主机和路径规则,以及后端。

    前端指定有关入站流量的详细信息。此负载均衡器应接受外部 IP 地址的 443 端口上的 HTTPS 流量。证书名为 apigee-ssl-cert

    主机和路径规则指定哪些主机名和网址路径可用于调用特定后端。在本例中,包含任何主机名和路径的请求都将转发到 apigee-proxy-backend 后端服务。

    后端指定负载均衡器要调用的服务。apigee-proxy- 实例组包含 2 个虚拟机,用于将请求转发到运行时实例。全球负载均衡器无法将请求转发到内部 IP 地址,但实例组虚拟机可以调用内部 IP 地址。

  3. 如需访问证书详细信息,请在前端配置中点击 apigee-ssl-cert

    负载均衡器使用的证书(处于活跃状态时)具有证书链,允许您使用 curl 调用负载均衡器,且无需跳过证书验证。该证书的网域为“[IP_ADDRESS].nip.io”,其中的 IP 地址是前端的外部 IP 地址

    Google Cloud 需要预配证书,不过预配可能需要相当长的时间才能完成。

    有效证书的配置如下所示:

    有效认证配置设置,包括状态、类型和证书链。

    如果证书的状态为 PROVISIONING,则表示 Google Cloud 可能已创建证书,但仍在与证书授权机构合作签发证书。

    预配通常只需要不到 10 分钟,但最长可能需要 1 小时。如需了解详情,请参阅托管状态问题排查指南

  4. 在 Cloud Shell 中,点击打开新标签页 (+),以便打开一个新标签页。

    Cloud Shell 无法调用 Google Cloud 项目中的专用 IP 地址。

  5. 使用外部 IP 地址调用已部署的 hello-world API 代理:

    export PROJECT_NAME=$(gcloud config get-value project) export SSL_HOSTNAME=$(curl -s -H "Authorization: Bearer $(gcloud auth print-access-token)" -X GET "https://compute.googleapis.com/compute/v1/projects/${PROJECT_NAME}/global/sslCertificates/apigee-ssl-cert" | jq ".managed.domains[0]" --raw-output) echo "SSL_HOSTNAME=${SSL_HOSTNAME}" curl -H "Cache-Control: no-cache" "https://${SSL_HOSTNAME}/hello-world"

    Compute Engine API 的 sslCertificates.get 方法用于检索与证书关联的 nip.io 主机名。

    如果证书已完成预配,curl 命令将再次返回 hello-world 代理的输出:Hello, Guest!

    如果 curl 命令返回握手失败,则表示还没有为负载均衡器配置 SSL 证书。

  6. 返回证书详情页面,查看证书的状态。如果证书的状态仍然不是 ACTIVE,请等待证书变成活跃状态,然后重试 curl 命令。

恭喜!

在本实验中,您创建了一个虚拟私有云 (VPC) 网络和一个 Apigee X 评估组织。然后,您创建了一个虚拟机 (VM),并使用该虚拟机直接调用了运行时,从而调用在 Apigee X 组织上运行的 API 代理。最后,您启用了互联网访问权限,并通过全球负载均衡器调用了代理。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2025 年 9 月 23 日

上次测试实验的时间:2025 年 9 月 23 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.