使用 GCP API 网关为 Graphql 后端打开API 配置?

OpenAPI config for a Graphql backend using GCP API Gateway?

我有一个 apollo/graphql 服务器位于 GCP API 网关后面。 Google 表示它需要 OpenAPI 规范来保护端点: https://cloud.google.com/api-gateway/docs/get-started-cloud-run#creating_an_api_config

但这对于保护单个 graphql 端点究竟会怎样?另外,作为附带问题,是否需要为每个云 Run/App 引擎服务创建一个新的 API 网关?

提前致谢。

Here's a repo 展示了您想要实现的目标。它是一个 GCP API 网关,面向云 运行 上的 GraphQL API,使用身份感知代理进行保护。这是 link 中的 API 配置:

api-spec.yaml

swagger: '2.0'
info:
  title: gcp-demo-api
  description: Sample GraphQL API on API Gateway with a Cloud Run backend
  version: 1.0.0
schemes:
  - https
produces:
  - application/json
paths:
  /:
    post:
      summary: GraphQL endpoint
      operationId: gql
      x-google-backend:
        address: https://PROJECT_AND_RANDOM_STRING.a.run.app/graphql  # App URL/endpoint
        jwt_audience: LONG_RANDOM_STRING.apps.googleusercontent.com # IAP client ID
      responses:
        '200':
          description: A successful response
          schema:
            type: object

要回答您的附带问题,了解 API 网关的作用很重要。 API 网关位于您的用户请求和您的后端服务集合之间,因此所有 API 请求都会通过它。

因此,您不需要为每个服务创建新的 API 网关。 API Gateway 可以通过在每个端点上指定后端地址来为 Cloud 运行、App Engine、Cloud Functions 等多种服务提供服务。这是进一步解释这个概念的link