Включение собственного кода проекта в функцию fnproject - PullRequest
0 голосов
/ 13 июля 2020

Я работаю с Fn Project как частью Oracle Cloud Functions, и я хочу добавить некоторые вспомогательные функции, которые я написал сам, которые в настоящее время используются в нескольких других программах. Я хотел бы включить эти функции без необходимости копировать и вставлять их в свой исходный код, и я чувствую, что есть способ сделать это, который мне не удалось найти.

Вот что мой каталог структура выглядит. Имена были изменены, чтобы облегчить понимание.

- helper
  - foo.py
- other
  - example.py
- functions
  - myfunc
    - func.py
    - func.yaml
    - requirements.txt

В настоящее время в example.py у меня есть следующее:

from helper import foo
...
foo.bar() 

Когда я пишу fun c .py I напишите то же самое, но когда я запускаю fn deploy -app test_app, а затем fn invoke test_app myfunc, он выдает ошибку в операторе импорта (я запускал функцию basi c hello world с from helper import foo вверху:

Error invoking function. status: 502 message: function failed

Моим первым побуждением было поместить helper в файл requirements.txt, но это работает только с пакетами pip. Как мне убедиться, что мой собственный код включен?

Любая помощь будет очень признательна!

Обновление

До сих пор моим единственным решением было буквально скопировать и вставить мой код в исходный файл, что не очень удобно в обслуживании.

1 Ответ

0 голосов
/ 13 июля 2020

После того, как вы сделаете from helper import foo внутри func.py, весь код, включая импорт библиотеки, будет выполнен в func.py. Используя команду pip freeze > requirements.txt в вашем основном каталоге, вы можете перечислить все зависимые библиотеки вашего проекта внутри requirements.txt. Следовательно, когда вы создаете образ docker, он будет устанавливать все, начиная с requirements.txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...