Кажется, существует несоответствие между последним развернутым API и фактически используемым API - PullRequest
0 голосов
/ 07 июля 2019

Согласно Google Cloud Console> Конечные точки> Сервисы> История развертывания, это текущая развернутая спецификация API:

swagger: "2.0"
info:
  title: "JSON Ingester"
  description: "Receive JSON files, transform and load them."
  version: "1.0.0"

host: "project-id-123.appspot.com"
schemes:
  - "https"

paths:
  "/upload":
    post:
      summary: "ETL JSON file."
      security:
        - api_key: []
      operationId: "upload"
      consumes:
        - multipart/form-data
      parameters:
        - in: formData
          name: file
          type: string
      responses:
        200:
          description: "File uploaded."
          schema:
            type: string
        400:
          description: "Error during file upload."

securityDefinitions:
  api_key:
    type: "apiKey"
    name: "apikey"
    in: "query"

Но ключ «apikey» не принят - вместо него требуется «ключ», который былуказано в openapi.yaml, который я развернул несколько часов назад.

Это работает, пока не должно:

$ curl -X POST -F "file=@data/file_6.json" https://project-id-123.appspot.com/upload\?key\=AIzaS...Eaoog

И это не работает, хотя должно:

$ curl -X POST -F "file=@data/file_6.json" https://project-id-123.appspot.com/upload\?apikey\=AIzaS...Eaoog
{
 "code": 16,
 "message": "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.",
 "details": [
  {
   "@type": "type.googleapis.com/google.rpc.DebugInfo",
   "stackEntries": [],
   "detail": "service_control"
  }
 ]
}

Нужно ли очищать кеш или что-то?

Для развертывания API я использую:

gcloud endpoints services deploy "./openapi.yaml"

Есть идеи?

1 Ответ

0 голосов
/ 10 июля 2019

Что rollout_strategy вы использовали при развертывании ESP?Если не указано, по умолчанию «исправлено».Вы должны использовать «управляемый»

. Пожалуйста, также проверьте сгенерированный конфигурационный файл службы с помощью CLI «Описание конфигураций конечных точек gcloud».Проверьте его системные_параметры, чтобы увидеть, правильно ли создан ваш новый "apikey".

...