Есть ли у GCP / Cloud Functions концепция библиотеки, такая как AWS Lambda Layers? - PullRequest
1 голос
/ 05 августа 2020

Есть ли у GCP / Cloud Functions концепция библиотеки вроде AWS Lambda Layers? То есть, если бы мы хотели уменьшить дублирование кода и развернуть общий уровень библиотеки для наших облачных функций Google, как бы мы это сделали?

1 Ответ

1 голос
/ 05 августа 2020

Нет, у вас нет такой функции в Cloud Function. У меня есть 3 немедленных альтернативы

  • Используйте Cloud Run и создайте свой собственный базовый образ с необходимыми зависимостями / общим фрагментом кода
  • Упакуйте общий код в библиотеку, которую вы импортируете в каждой вашей функции. Но для этого требуется опубликовать sh вашу библиотеку где-нибудь publi c или закрытую с дополнительной работой в упаковке и развертывании функций.
  • Используйте такую ​​структуру проекта (я обычно использую это)

Дерево проекта

root
  |
  - Common
  |
  - Functions
    |
    - function A
    |
    - function B

В функциях A и B вы используете общий файл в каталоге Common. Когда вы развертываете свою функцию, сделайте это в каталоге root и используйте исходный каталог, чтобы указать, в каком каталоге искать функцию для развертывания

gcloud functions deploy --source=function/functionA ...

Trade Off

  • Копируются все файлы / каталоги по пути root. Все файлы функций развернуты, даже если эффективно запущен только один
  • Вы должны объявить все зависимости на уровне functionX. Даже зависимости для общего каталога. Это может быть проблемой c в случае новых зависимостей в общем каталоге и если у вас много функций
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...