现在,您已经配置了 Google Cloud 和 Hybrid 界面,并且安装和配置了运行时,接下来您将了解它们如何协同工作。
本部分将向您介绍下列内容:
- 使用 API 代理向导在 Apigee 界面中创建新的 API 代理
- 使用界面将新代理部署到集群
1. 使用 Hybrid 界面创建新的 API 代理
本部分介绍了如何使用 API 代理向导在该界面中创建新的 API 代理。
如需使用 API 代理向导创建简单的 API 代理,请执行以下操作:
- 在浏览器中打开 Apigee 界面。
- 在主视图中依次选择开发 > API 代理。
- 从环境下拉列表中选择要在其中创建新的 API 代理的环境。本部分假设环境的名称是“test”。 您在第 5 步:添加环境中已创建了至少一个环境。
Hybrid 界面会显示该环境的 API 代理列表。如果您尚未创建任何代理,则列表为空。
- 点击右上角的 +代理。 API 代理向导启动。
- 选择反向代理(最常见的方式),然后点击下一步。
系统将显示代理详细信息视图。
- 使用以下设置配置代理:
- 代理名称:输入“myproxy”。本部分的其余步骤假定这是代理的 ID。
- 代理基本路径:自动设置为“/myproxy”。代理基本路径是用于向 API 发出请求的网址的一部分。Edge 使用网址来匹配传入的请求并将其路由到相应的 API 代理。
- (可选)说明:为您的新 API 代理输入说明,例如“使用简单代理测试 Apigee Hybrid”。
- 目标(现有 API):输入“https://mocktarget.apigee.net”。此操作会定义 Apigee 在向 API 代理发送的请求上调用的目标网址。mocktarget 服务托管在 Apigee 上,并返回简单的数据。它不需要 API 密钥或访问令牌。
您的 API 代理的详细信息应如下所示:
- 点击下一步。
- 在政策屏幕上,选择直通(无授权) (Pass through (no authorization)) 作为安全选项。
- 点击下一步。
- 在摘要屏幕上,点击创建。
Hybrid 会生成代理(有时称为代理软件包):
- 点击 Go to proxy list。
Hybrid 会显示代理视图,其中显示 API 代理列表。新代理应位于列表顶部,并带有灰色状态指示器,表示该代理尚未部署。
2. 使用 Hybrid 界面将代理部署到集群
创建新代理后,您必须对其进行部署以便试用。本部分介绍如何使用 Hybrid 界面部署新的代理。
要在 Hybrid 界面中部署 API 代理,请执行以下操作:
- 在 Hybrid 界面中,依次选择开发 > API 代理。
确保选择“test”环境。
界面会在代理列表中显示您的新代理:
点击“myproxy”代理。
界面显示该代理的 API 代理概览标签页。
请注意,在部署下,修订版本列将显示“未部署”。
- 在修订版本列中,展开下拉选择器以选择要部署的修订版本。
此下拉列表仅显示“1”和“取消部署”。
从下拉列表中选择“1”(您要部署的修订版本)。
界面会提示您确认部署:
- 点击部署。
界面会开始将新代理的修订版本 1 部署到集群的过程。
请注意,部署不是即时过程。Hybrid 的“最终一致性”部署模型意味着在短时间内将新部署发布到集群,而不是立即生效。
您可以通过多种方法在界面中检查代理的部署状态,接下来的两个步骤介绍如何调用您刚刚部署的 API 代理以及如何调用 Apigee API 来检查部署状态。
3. 调用 API 代理
按照以下步骤操作,具体取决于您是否可以更新用于创建环境组的主机名的 DNS 记录。
如果您无法更新主机名的 DNS
如果您的环境组主机名未注册或者您无法更新其 DNS 记录,请按照以下步骤操作。在这些步骤中,您将获取入站流量 IP,并在带有 --resolve
标志的 cURL 调用中直接使用该 IP:
- 导出入站流量 IP:
export INGRESS_IP=$(kubectl -n istio-system get service \ istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
- 导出安全入站流量端口号:
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get \ service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
- 将环境组的主机别名导出到变量中:
export HOSTALIAS=your_host_alias
- 调用 API 代理。利用 cURL 上的
--resolve
标志,您可以直接指定入站流量 IP:curl -H Host:$HOSTALIAS --resolve \ $HOSTALIAS:$SECURE_INGRESS_PORT:$INGRESS_IP \ https://$HOSTALIAS:$SECURE_INGRESS_PORT/myproxy -k
如果您可以更新主机名的 DNS
如果您在创建环境组时使用的主机名已注册,则可以按照以下步骤进行操作,更新其 DNS 记录使其指向外部入站流量 IP:
- 将入站流量的外部 IP 导出到变量:
export INGRESS_IP=$(kubectl -n istio-system get service \ istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
- 检查变量中是否包含 IP 地址。例如:
echo $INGRESS_IP 34.118.196.202
- 使用此 IP 地址在您的注册商或 DNS 提供商处更新 DNS 记录(通常是 A 或 CNAME 记录)。DNS 记录更改最长可能需要一个小时才能传播。
- 将环境组的主机别名导出到变量中:
export HOSTALIAS=your_host_alias
- 调用 API 代理:
curl -k https://$HOSTALIAS/myproxy
例如:
curl -v -k https://apitest.acme.com/myproxy
如果调用成功,您将看到以下输出:
Hello, Guest!