从 Knative 经纪人电话中获取响应

问题描述 投票:0回答:1

我正在使用 Quarkus 框架和名为 Funq 的库以及 knative 事件绑定...这意味着,我正在我的 Quarkus 应用程序中监听 Kubernetes 云事件,并且它工作正常。

为了说明,有一段代码:

@Funq
@CloudEventMapping(trigger = "fakeEvent")
fun fakeEventListener(payload: String) {
    log.info("$payload")

    return "received"
}
curl -v "http://broker-ingress.knative-eventing.svc.cluster.local/brokerName/default" -X POST -H "Ce-Id: 1234" -H "Ce-Specversion: 1.0" -H "Ce-Type: fakeEvent" -H "Ce-Source: curl" -H "Content-Type: application/json" -d '"{}"'

有没有办法向代理发送curl,而不是接收202状态代码,而是得到该函数的响应?

enter image description here

我知道我可以使用 **fakeEventListener** 的返回来触发另一个云事件,但我需要在调用者中获得此信息的响应(在本例的curl请求中,或任何http客户端库)。

如果不可能,如何提供能够同步获取 funq POST 调用的响应?

kubernetes quarkus broker knative funq
1个回答
0
投票

卷曲 Broker 时不可能得到这个。 Broker 允许解耦组件并异步发送事件。 Broker 后面也可能有多个触发器。

当你需要Knative Function同步响应时,你需要直接curl该函数。

如果您不想失去 Broker 并且只需要在某个地方函数的响应,您可以使用 Broker-Trigger 的回复事件:您的触发器订阅者(您的情况下的函数)的响应是作为新事件发送回代理。因此,您可以添加另一个触发器(它会过滤响应事件类型)并将此事件发送到处理响应的某个地方。

© www.soinside.com 2019 - 2024. All rights reserved.