GCP API 网关创建失败并出现内部服务器错误

时间:2021-02-05 08:05:01

标签: google-cloud-platform openapi gateway google-cloud-run

我正在尝试自动创建 api-config 和 api-gateway,以使用 terraform 公开云运行服务。直到昨天它运行良好,并且 api-gateway 正在为流量提供服务。 但是考虑到大量请求访问 API 网关,我决定将读取请求的配额增加到更高的数字,这就是我修改 openapi swagger 文件以添加我的 API 配额的时候。

它在一段时间内运行良好,但现在当我触发我的管道时,它因内部服务器错误而失败。我也尝试使用云命令来创建一个详细程度设置为 DEBUG 的 API 网关,但找不到任何有用的东西。 使用 openapi 文件创建了 api 和 API 配置,但 API 网关的创建已停止...出现内部服务器错误。

附上我的 openapi 文件以供参考。:

swagger: "2.0"
info:
  version: 1.0.0
  title: Offer api
  description: API to get personalized offrs
produces:
- application/json
schemes:
- https
x-google-management:
  metrics:
    # Define a metric for read requests.
    - name: "read-requests"
      displayName: "Read requests"
      valueType: INT64
      metricKind: DELTA
  quota:
    limits:
      # Define the limit or the read-requests metric.
      - name: "read-limit"
        metric: "read-requests"
        unit: "1/min/{project}"
        values:
          STANDARD: 20000
paths:
  /offers: #/{deviceID}/{restaurantID}:
    get:
      description: get personalized offers
      operationId: app.get_offers
      x-google-backend:
        address: ${backend_address}
      parameters:
      - name: deviceID
        in: header
        required: True
        type: string
      - name: storeID
        in: header
        required: True
        type: string
      x-google-quota:
        metricCosts:
          "read-requests": 1
      security:
      - APIKeyHeader: []
      responses:
        200:
          description: Successful Operation
          schema:
            $ref: '#/definitions/APIResponse'
          #headers:
          #   Content-Type:
          #     schema:
          #       type: string
          #   Content-Encoding?:
          #     schema:
          #       type: string
          #  mcd-apiversion:
          #    type: string
          #   mcd-uuid:
          #     schema:
          #       type: string
          #   Cache-Control?:
          #     schema:
          #       type: string
          #   ETag:
          #     schema:
          #       type: string
        400:
          description: Bad Request - Invalid ID Supplied
          schema:
            $ref: '#/definitions/APIErrorResponse'
          # headers:
          #   Content-Type:
          #     schema:
          #       type: string
          #   Content-Encoding?:
          #     schema:
          #       type: string
        # 401:
        #   description: "Not Authorized - API KEY is invalid"
        #   content:
        #     application/json:
        #       schema:
        #         $ref: "#/responses/UnauthorizedError"
        404:
          description: "Resource not available - ID not found"
          schema:
            $ref: '#/definitions/APIErrorResponse'
          # headers:
          #   Content-Type:
          #     type: "string"
          #   Content-Encoding?:
          #     type: "string"
        415:
          description: "Unsupported media Type. Please check the content type in request"
          schema:
            $ref: '#/definitions/APIErrorResponse'
          # headers:
          #   Content-Type:
          #     type: "string"
          #   Content-Encoding?:
          #     type: "string"
        500:
          description: "Internal Server Error. Please refer logs for further details."
          schema:
            $ref: '#/definitions/APIErrorResponse'
          # headers:
          #   Content-Type:
          #     type: "string"
          #   Content-Encoding?:
          #     type: "string"
        503:
          description: "Service is unavailable. Please try after some time"
          schema:
            $ref: '#/definitions/APIErrorResponse'
          # headers:
          #   Content-Type:
          #     type: "string"
          #   Content-Encoding?:
          #     type: "string"
definitions:
  APIResponse:
    type: object
    required:
    - customerID
    - coupon
    properties:
      customerID:
        type: string
        example: "0000"
      coupon:
        type: string
        example: "Christmas100"
  APIErrorResponse:
    type: object
    required:
    - code
    - message
    properties:
      code:
        type: integer
      type:
        type: string
      message:
        type: string
      path:
        type: string
      service:
        type: string
      property:
        type: string
securityDefinitions:
  # This section configures basic authentication with an API key.
  APIKeyHeader:
    type: apiKey
    name: x-api-key   
    in: header

编辑 问题已解决。但似乎还有更多内容,有人知道如何定义每天请求的配额吗?从 GCP 文档中,我可以发现我们可以定义每分钟的请求数。(读取和写入)但是有没有办法为我们的 API 定义每天的请求数限制?

1 个答案:

答案 0 :(得分:0)

不可能,因为 GCP 中唯一支持的 openapi 配额单位是 1/min/{project} as mentioned here