我想在我的 Knative 环境中实现 FaaS。所以我开始玩 Quarkus Funqy。我已按照官方 quickStarts 成功接收/发送 CloudEvent
在大多数示例中,CloudEvent 是作为 CloudEvent 的响应从函数发出的:
@Funq
public CloudEvent<Output> withCloudEvent(CloudEvent<Input> in) {
// function body that receive a CloudEvent and return another one
}
这对开发人员来说非常简单,因为他不需要知道 CloudEvent 代理 URL 的任何细节。java方法返回的对象通过Quarkus内部机制发送给broker。
但就我而言,我想在函数调用之外发送一个 CloudEvent,例如一个 cron 作业:
public CloudEvent<Output> sendCloudEvent() {
// function body that build and return CloudEvent
}
是否有任何注释可以绑定到 Knative 消息代理。IE:
public CloudEvent sendCloudEvent() {
// Do some logic
// build CloudEvent
return cloudEvent;
}
如果没有,我可以使用 CloudEvent,因为它们被发送到 HTTP POST,所以我可以使用 Quarkus HTTP 客户端。但是我怎样才能检索 Knative 消息代理端点?有注释吗?
public void sendCloudEvent(@ApplicationContext appContext) {
String knativeBrokerUrl=appContext.getBrokerUrl();
CloudEvent cloudEvent=buildCloudEvent
httpClient.url(knativeBrokerUrl).post(cloudEvent);
}
谢谢,