我正在尝试自动创建 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 定义每天的请求数限制?