You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭配自定义Google Cloud Endpoints使用Google Cloud Functions?能否类同AWS Lambda模式?

嘿,这个问题问得太精准了!完全可以按照你设想的「用户→Google Cloud Endpoints→Google Cloud Function」路径来搭建服务,这和Amazon API Gateway搭配Lambda的模式几乎是一一对应的,我来给你拆解具体怎么实现:

一、核心结论:完全匹配你想要的架构

Google Cloud Endpoints就是Google生态里的API网关服务,专门用来做API的路由、认证、限流等管控,而Cloud Functions则是无服务器函数计算服务——两者搭配使用,完美对应AWS API Gateway+Lambda的架构,完全满足你的需求。

二、具体实现步骤

咱们一步步来,从准备函数到部署网关,全程走一遍:

1. 先准备你的Cloud Functions

首先写好一个HTTP触发的Cloud Function,比如用Node.js写个简单的示例:

exports.myDemoFunction = (req, res) => {
  const name = req.query.name || 'Guest';
  res.status(200).send(`Hello ${name}! This response comes from Cloud Function via Endpoints.`);
};

部署这个函数后,你会得到一个专属的HTTP触发URL,格式大概是:https://[REGION]-[PROJECT_ID].cloudfunctions.net/myDemoFunction,先把这个URL记下来。

2. 编写OpenAPI配置文件

Cloud Endpoints用OpenAPI规范来定义API的路由规则、后端指向等,所以需要创建一个openapi.yaml文件,把刚才的Cloud Function作为后端服务配置进去:

swagger: '2.0'
info:
  title: My Endpoints + Functions API
  description: A demo API gateway connecting to Cloud Functions
  version: '1.0.0'
schemes:
  - https
paths:
  /greet:
    get:
      summary: Greet users via Cloud Function
      operationId: greetUser
      parameters:
        - name: name
          in: query
          type: string
          description: Name of the user to greet
      x-google-backend:
        address: https://[REGION]-[PROJECT_ID].cloudfunctions.net/myDemoFunction
      responses:
        '200':
          description: A friendly greeting
          schema:
            type: string

这里的关键是x-google-backend字段,直接把Cloud Function的URL填进去,指定Endpoints把请求转发到这个地址。

3. 部署Cloud Endpoints配置

用gcloud命令把刚才的OpenAPI配置部署到Endpoints服务:

gcloud endpoints services deploy openapi.yaml

部署完成后,你会得到一个Endpoints的服务域名,格式大概是:https://[PROJECT_ID].endpoints.[PROJECT_ID].cloud.goog,这个域名是网关的核心标识。

4. 部署ESP(可扩展服务代理)

Endpoints需要通过ESP来转发请求到Cloud Functions,最方便的部署方式是用Cloud Run:

gcloud run deploy esp-proxy --image="gcr.io/endpoints-release/endpoints-runtime-serverless:2" \
  --allow-unauthenticated \
  --platform managed \
  --region [REGION] \
  --set-env-vars ENDPOINTS_SERVICE_NAME=[PROJECT_ID].endpoints.[PROJECT_ID].cloud.goog

部署完成后,Cloud Run会给你一个可访问的URL,比如https://esp-proxy-abc123-[REGION].run.app——这个就是用户最终要访问的API入口。

5. 测试验证

现在用户访问https://esp-proxy-abc123-[REGION].run.app/greet?name=Burhan,请求就会先经过Cloud Endpoints的网关,再转发到你的Cloud Function,最终返回对应的问候语,完美实现你想要的路径!

三、额外优化建议
  • 认证管控:可以在OpenAPI配置里添加API密钥、OAuth2等认证规则,比如通过securityDefinitions字段要求用户携带API密钥才能访问,和AWS API Gateway的认证逻辑一致。
  • 限流与配额:用x-google-quota字段配置请求限流策略,防止API被恶意调用。
  • 日志与监控:通过Cloud Monitoring和Cloud Logging可以统一查看Endpoints和Cloud Functions的请求日志、性能指标,方便排查问题。

内容的提问来源于stack exchange,提问作者Burhan Yılmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:28:34