Quarkus:使用 Google Cloud Functions 时 CDI 不工作
Quarkus: CDI not working when using Google Cloud Functions
我遵循了 QUARKUS - GOOGLE CLOUD FUNCTIONS 教程,但是依赖注入似乎在该上下文中不起作用,因为任何 @Inject
'ed 对象在运行时都是 null
:
- 同时 testing locally、
- 和 运行 也在 GCP 上。
下载和 运行 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),搜索您的函数并在其中注入依赖项。
我遵循了 QUARKUS - GOOGLE CLOUD FUNCTIONS 教程,但是依赖注入似乎在该上下文中不起作用,因为任何 @Inject
'ed 对象在运行时都是 null
:
- 同时 testing locally、
- 和 运行 也在 GCP 上。
下载和 运行 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),搜索您的函数并在其中注入依赖项。