Например, у нас есть несколько сервисов.
Каждая служба представляет собой отдельную функцию Google Cloud. У каждой службы есть собственный HTTP API. Например, в сервисе аккаунта есть:
У каждой службы есть собственная конечная точка документации swagger /docs
.
Как я могу сделать свои облачные функции частными (без публичного доступа) и разместить их за каким-либо шлюзом API?
Google предлагает конечные точки для облачных функций (см. https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions ). Но, насколько я понимаю, Endpoints позволяют определять только файл yaml OpenAPI.
В этом yaml-файле я могу определить что-то вроде этого:
swagger: '2.0'
info:
title: Cloud Endpoints + GCF
description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
version: 1.0.0
host: HOST
schemes:
- https
produces:
- application/json
paths:
/hello:
get:
summary: Greet a user
operationId: hello
x-google-backend:
address: https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net/helloGET
responses:
'200':
description: A successful response
schema:
type: string
Но в моем случае мне нужно иметь возможность проксировать свои облачные функции (например, обратный прокси).
Вы должны использовать Конечные точки Google Cloud.
Расширяемый сервисный прокси является одним из компонентов конечных точек и именно то, что нужно в вашем случае.
Extensible Service Proxy (ESP) - это высокопроизводительный масштабируемый прокси-сервер, который запускается перед серверной частью OpenAPI или gRPC API и предоставляет такие функции управления API, как аутентификация, мониторинг и ведение журнала.
Вы также можете найти эту ссылку полезной: Настройка и развертывание API