Quarkus:使用 Google Cloud Functions 时 CDI 不工作

Quarkus: CDI not working when using Google Cloud Functions

我遵循了 QUARKUS - GOOGLE CLOUD FUNCTIONS 教程,但是依赖注入似乎在该上下文中不起作用,因为任何 @Inject'ed 对象在运行时都是 null:

下载和 运行 the tutorial solution 为我提供了相同的结果。

我是不是漏掉了什么?

此错误通常是由于在 gcloud 命令中使用了错误的入口点造成的。

必须使用 Quarkus 提供的函数而不是您的函数作为 gcloud 命令的入口点 class。

指南的这一部分对此进行了描述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 函数将 bootstrap 框架(包括 CDI),搜索您的函数并在其中注入依赖项。