0

我想在我的 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);
    } 

谢谢,

4

0 回答 0