Quarkus: CDI не работает при использовании облачных функций Google

#google-cloud-functions #cdi #quarkus

# #google-cloud-функции #cdi #quarkus

Вопрос:

Я следовал руководству QUARKUS — GOOGLE CLOUD FUNCTIONS, но внедрение зависимостей, похоже, не работает в этом контексте, поскольку любой @Inject объект ‘ed находится null во время выполнения:

Загрузка и запуск обучающего решения дает тот же результат для меня.

Я что-то упустил?

Ответ №1:

Обычно эта ошибка возникает из-за использования неправильной точки входа внутри gcloud команды.

Вы должны использовать предоставленную Quarkus функцию, а не свою функцию, в качестве класса точки входа из вашей gcloud команды.

Это описано в этой части руководства https://quarkus.io/guides/gcp-functions#build-and-deploy-to-google-cloud , может быть, нам нужно сделать это более ясным.

Для фоновой функции используйте gcloud functions deploy my-function --entry-point --entry-point=io.quarkus.gcp.functions.QuarkusBackgroundFunction ...

Для HTTP-функции используйте gcloud functions deploy my-function --entry-point --entry-point=io.quarkus.gcp.functions.QuarkusHttpFunction ...

Функция Quarkus загрузит фреймворк (включая CDI), выполнит поиск вашей функции и внедрит в нее зависимости.