本页面介绍如何通过您拥有的自定义网域(例如 example.com
)提供 API。
您也可以不使用自己的域名,而是使用由 Google 管理的域名。如需了解详情,请参阅使用由 Google 管理的网域。
准备工作
- 从域名注册商处获取域名(如果您还没有用于 API 的域名)。
- 验证网域所有权。
- 使用您的域名指定您的 API 主机名。
- 如果您对您的网域使用 SSL,请获取并上传您的 SSL 证书。
- 部署您的 API 和 Extensible Service Proxy (ESP)。
将您的 API 项目配置为使用您的域名
请按照相应标签页中的说明操作。
App Engine
要将您的 API 项目设置为使用您的经过验证的网域,请按照为您的应用添加自定义网域中提供的说明操作
Compute Engine
要通过 Compute Engine 实例提供 API,建议在实例组之间使用负载均衡器。您需要为域名预留一个外部 IP 地址,并将该外部 IP 地址用于负载平衡器。
要通过域名提供 API,请执行以下操作:
- 在您的项目中至少预留一个静态外部 IP 地址:
- 为预留的 IP 地址任意指定一个您想使用的名称。
- 对于类型,点击全球。
- 对于附加到,点击无。稍后将 IP 地址附加到负载平衡器。
- 访问您的域名提供商账号并修改您的域名设置。您必须创建包含您的 API 名称的 A 记录,例如将外部 IP 地址包含在数据字段中的
myapi.example.com
- 创建一个实例组,其中包含运行 API 和 Extensible Service Proxy (ESP) 的实例:
- 为该实例组任意指定一个您想使用的名称并添加说明。
- 在地区列表中,点击您的 API 实例使用的地区。
- 在实例定义列表中,点击选择现有实例。
- 在虚拟机实例字段中,添加运行 API 的虚拟机实例。
- 点击创建。
- 创建并配置 HTTP(S) 负载均衡器:
- 点击定义后端服务 > 创建或选择后端服务。
- 为此后端服务配置任意指定一个您想使用的名称并添加说明。
- 在协议字段中,选择要通过负载平衡器支持的协议:HTTP 或 HTTPS。
- 在实例组列表中,点击您的实例组。
- 在端口号字段中,输入
8080
。 - 点击健康检查以配置健康检查:
- 输入健康检查配置的名称。
- 分配端口
8080
。 - 要接受其余的默认值,请点击保存。
- 现在先接受其余配置的默认值。 以后您可以根据需要加以更改,例如使用更多端口。
- 您不需要在主机和路径规则中进行任何设置;您可以使用默认的任何不匹配的项过滤条件将所有内容转发到后端 API。 这意味着所有进入负载平衡器的流量都将被定向到上述步骤中定义的端口
8080
(默认端口)上的 API。 - 点击前端配置。
- 在协议字段中,选择要通过负载平衡器支持的协议:HTTP 或 HTTPS。
- 在 IP 列表中,点击您之前创建的外部 IP 地址。
- 对于 HTTPS 协议,您需要使用 SSL。在证书列表中,点击所需的证书。
- (可选)如果您要支持其他协议,请点击添加前端 IP 和端口,指定协议、相同的外部 IP 地址和其他端口。
- 要创建配置完整的负载平衡器,请点击创建。如果创建按钮未启用,请检查刚刚配置的组件:每个配置组件旁边都应显示一个对勾标记。如果缺少对勾标记,则表示您尚未完成配置。
- 您的 DNS 更改生效后,系统会使用负载平衡器将请求发送到您的 API。
GKE
要通过网域为 Google Kubernetes Engine (GKE) 提供 API,您需要将返回的外部 IP 地址用于您的网域的 DNS 设置,从而将 ESP 作为服务公开提供。请注意,GKE 会自动为您平衡负载。
要将 API 作为服务公开提供,请执行以下操作:
- 如果您还没有 Kubernetes 服务,请为您的 API 后端配置一个 Kubernetes 服务。 创建服务配置文件
service.yaml
,内容如下所示:apiVersion: v1 kind: Service metadata: name: echo spec: ports: - port: 80 targetPort: 8081 protocol: TCP selector: app: echo-app type: LoadBalancer
- 更改
selector
标签以与您的后端标签(在此示例中为app: echo-app
)匹配。 - 确保
targetPort
与 API 后端中配置的 ESP 使用的端口匹配。ESP 默认使用端口8081
。 - 部署 Kubernetes 服务:
kubectl apply -f service.yaml
- 查看分配给公开服务的外部 IP 地址:
输出中会显示一个如下所示的kubectl get services
EXTERNAL-IP
地址:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node 10.X.XXX.202 10X.XXX.XX.123 8080/TCP 1m
- 将生成的外部 IP 从临时改为静态。
- 从列表中选择您的外部 IP 地址。
- 在类型列表中,点击静态。
- 访问您的域名提供商账号并修改您的域名设置。您必须创建包含您的 API 名称的 A 记录,例如将外部 IP 地址包含在数据字段中的
myapi.example.com
。