'Hello World' Google 클라우드 기능 확보

'Hello World' Google 클라우드 기능 확보

매우 안전한 클라우드 기능이 필요하므로 이를 API 게이트웨이 뒤에 배치하려고 합니다. 헤더에 Bearer 토큰을 직접 전달하여 함수를 호출하면 함수가 제대로 작동합니다.

https://us-central1-<my-project>.cloudfunctions.net/<my-hello-function>

그러나 API 게이트웨이를 통해 API 토큰과 함께 사용할 수 있도록 허용하고 싶습니다(그런 다음 "안녕하세요"라고 말하는 것보다 더 유용한 작업을 수행합니다).

https://my-gateway-xxxxxxxx.uc.gateway.dev/v1/stats&key=<my-API-token>

내가 전화하려고하면 다음과 같은 결과가 나타납니다.

{ "code": 404, "message": "경로가 요구사항 URI 템플릿과 일치하지 않습니다." }

내 API 게이트웨이 구성 파일:

swagger: "2.0"
info:
  title: my-gateway
  version: "1.0.0"
basePath: "/v1"
schemes:
 - "https"
produces:
 - application/json
paths:
  /stats:
    get:
      tags:
      - "stats"
      summary: "get service stats"
      description: "Returns statistics"
      operationId: "hello_world"
      #produces:
      #- "application/json"
      parameters:
      - name: "since"
        in: "header"
        description: "Date to retrieve information"
        required: false
        type: "string"
        format: "date"
      x-google-backend:
          address: https://us-central1-<my-project>.cloudfunctions.net/<my-hello-function>
          path_translation: CONSTANT_ADDRESS
          protocol: h2
      responses:
        "200":
          description: "successful operation"
          schema:
            $ref: "#"
        "400":
          description: "Invalid datetime supplied"
        "404":
          description: "Unknown path"
      security:
      - api_key: []
securityDefinitions:
  api_key:
    type: "apiKey"
    name: "api_key"
    in: "query"
definitions:
  ApiResponse:
    type: "object"
    properties:
      code:
        type: "integer"
        format: "int32"
      type:
        type: "string"
      message:
        type: "string"

무엇이 빠졌나요? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변1

당신이 잘 지내기를 바랍니다.

저는 전문가는 아니지만 문서를 읽고 스니펫을 다시 확인한 후에 URL에서 사용하는 것이 in이 아닌 namein 이 securityDefinitions되어야 하지 않나요?keyapi_key

내-게이트웨이-xxxxxxxx.uc.gateway.dev/v1/stats&열쇠=<내-API-토큰>

답변2

API 키를 URL을 통해 전달하여 사용하려면 쿼리 매개변수로 보내야 하는데, 보내는 방식은 stats&key=통계 대신 이름이 지정된 경로에 들어가려는 것과 같습니다.

귀하의 URL은 다음과 같아야 합니다.

https://my-gateway-xxxxxxxx.uc.gateway.dev/v1/stats?key=<my-API-token>

교체&키 매개변수에?

관련 정보