【问题标题】:How to create and access environment variable in WSO2 siddi file?如何在 WSO2 siddi 文件中创建和访问环境变量?
【发布时间】:2019-09-20 06:06:06
【问题描述】:

我尝试在 WSO2 容器中导出变量。但是当我试图在 siddhi 文件中检索它时,它返回 null。我能够获取预定义环境变量 HOME、PATH 等的数据

@sink(type='log')
define stream KeyStream (key string);

@sink(type='log', prefix='Sweet Totals:')
define stream OutputStream(FunctionOutput string);


@info(name='SweetTotalQuery')
from KeyStream select env:getSystemProperty(key) as FunctionOutput 
insert into OutputStream;

【问题讨论】:

  • 您使用的是 siddhi-runner 还是 wso2 sp?是什么版本的
  • 我正在使用 wso2 流处理器 4.4.0 和 siddhi-execution-env 1.1.0 jar,我在 wso2sp 编辑器中运行了上面的代码。

标签: wso2 siddhi stream-processing wso2sp


【解决方案1】:

您是如何导出 WSO2 容器中的变量的。它们是系统变量还是环境变量。 您可以尝试在容器内回显上述变量以检查变量是否正确填充。 假设您正在尝试使用裸机 docker,您可以使用 docker-exec 并回显变量。

【讨论】:

  • 我可以回应它们,但我如何在 siddhi 脚本中使用它们。例如,我想将 url 声明为环境变量并在脚本中使用它我该怎么做
  • 我试过像这样使用 receiver.url='${customer}' 但没有成功。我应该使用不同的方式吗?
  • Siddhi Tooling 5.1.0-m2[1] 版本引入了用作“${customer}”。因此,它在 WSO2 流处理器 4.4.0 中不可用。您可以使用 [2] 中所示的 env:getEnvironmentProperty() 用于 WSO2 流处理器 4.4.0 [1]siddhi.io/en/v5.1/download [2] wso2-extensions.github.io/siddhi-execution-env/api/2.0.0/… 的用例
  • 我可以使用 env:getSystemProperty() 记录值。但我怎样才能将此值分配给receiver.url。如果我的 RECEIVED_URL 是环境变量 '@source(type='http', receiver.url='RECEIVED_URL', @map())' 是这样的。我怎样才能在 wso2sp4.4.0 中实现这一点?
  • 您可以使用 refs 在 deployment.yml 中配置源,然后在 Siddhi 应用程序中使用 ref 名称。请参阅docs.wso2.com/display/SP440/Collecting+Events 以了解您的情况,部署配置看起来像 siddhi: refs: - ref: name: 'http-test-source' type: 'http' properties: receiver.url: ${customer} 并且 Siddhi 源看起来like @Source(ref='http-test-source', basic.auth.enabled='false', @map(type='json')) 定义流 SweetProductionStream (name string, amount double);
猜你喜欢
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 2019-08-02
  • 1970-01-01
  • 2022-01-15
  • 2015-05-31
相关资源
最近更新 更多