Если у меня есть две службы «Пользователи» и «Продукты», каждая из которых имеет несколько функций с конечными точками, определенными для каждого (как и любой традиционный API), возможно ли, чтобы они быть организованы отдельно в базе кода (для ясности), но после развертывания используется один и тот же базовый URL-адрес API? Например, рассмотрим я иметь следующую структуру:Serverless Framework - две службы в одной конечной точке APIGW
/src
-- /users
---- event.json
---- handler.js
---- serverless.yml
-- /products
---- event.json
---- handler.js
---- serverless.yml
и мой src/users/serverless.yml
имеет следующие определены:
functions:
create:
handler: handler.create
events:
- http: POST user
read:
handler: handler.read
events:
- http: GET user
и мой src/products/serverless.yml
имеет в основном то же самое, только своп «пользователя» для «продуктов» ,
В настоящее время обе эти услуги будут развернуты совершенно разные API конечных точек, один с URL https://fghijklmnop.execute-api...
, а другой с URL https://abcdevwxyz.execute-api....
Мой вопрос, возможно ли было бы, чтобы эти услуги будут развернуты, но остаются под одним API с одним URL (так что оба будут обслуживаться по адресу https://abcdevwxyz.execute-api....
)?
Я предполагаю, что ответ должен быть «Нет, потому что облачная формация ...», но я подумал, что поставил бы здесь вопрос просто ради обсуждения и помог бы себе понять создание безсерверных приложений.
Я знаю использование пользовательских доменов, согласно the answer here, но для более быстрого цикла разработки это не идеальное решение.
Моим единственным решением до сих пор было бы просто создать службу под названием «api», которая будет содержать все конечные точки, которые потребует мой API, который просто вызовет функции Lambda других моих служб, а не через предварительно сконфигурированные конечные точки. На самом деле это был бы слой абстракции, но добавьте потенциально ненужные слои в мое приложение. Опять же, любопытно посмотреть, что чувствует сообщество на этом.
Это правда, но эти службы тесно связаны и всегда должны быть развернуты и управляться вместе. Если вы хотите, чтобы службы явно отличались друг от друга (но связаны через слой API), это не работает. Имя службы должно быть таким же, например. –