首页 > 解决方案 > Apama Docker 容器,将容器外部的值传递给 config.evt 文件

问题描述

我有一个使用自定义插件连接到 Kafka Broker 的 Apama 项目。当我们启动 Apama 项目时,我使用 .evt(事件)传入配置值,例如代理 url。我使用 engine_deploy 创建项目的可部署结构,当启动相关器时,我使用 –config 标志来运行已部署的代码版本。

我想创建 Apama 项目的 Docker 映像,以便我可以将 Kafka Broker URL 之类的值作为参数传递到我的 Docker 映像中,并希望在 Docker 映像开始使用相同的部署时被 .evt(事件)文件拾取结构体。请让我知道实现 Apama Docker 映像参数化的最佳方法是什么。

亲切的问候,

阿德南

标签: dockerdockerfileapama

解决方案


我有一种感觉,你可能会混淆概念,但有办法让两者都发挥作用。

对于您所描述的现代自定义 Apama 应用程序,使用 OS 环境变量(并使用管理插件从 EPL 读取它们)[1] 或使用相关器属性 YAML 文件和命令行替换可能会更正常 -Dkey=值(并使用管理插件的不同方法从 EPL 读取它们)[2]。这些是过去几年中最近的(ish)添加。当然,您可以选择保留现有的 evt 配置代码,然后简单地添加一个额外的监视器来读取其他机制之一,并在内部发送事件以及现有侦听器获取的信息。

我们过去也写过一篇博文[3],展示了如何将“秘密”传递给 Docker 和 Kubernetes,同样的技术也适用于配置(秘密是一种特殊的配置)。

链接:

  1. 阅读环境变量:管理插件的 ApamaDoc 以读取“/info”类别: https ://documentation.softwareag.com/onlinehelp/Rohan/Apama/v10-3-1/apama10-3-1/ApamaDoc/com/ apama/correlator/Component.html#getInfo()

REST API 显示感兴趣的路径是“envp”: https ://documentation.softwareag.com/onlinehelp/Rohan/Apama/v10-3-1/apama10-3-1/rest/correlator.html#infoEnvpGet

  1. 读取相关器属性(命令行替换、文件和 ApamaDoc ref):

https://documentation.softwareag.com/onlinehelp/Rohan/Apama/v10-3-1/apama10-3-1/apama-webhelp/#page/apama-webhelp%2Fre-DepAndManApaApp_starting_the_correlator.html%23

https://documentation.softwareag.com/onlinehelp/Rohan/Apama/v10-3-1/apama10-3-1/apama-webhelp/#page/apama-webhelp%2Fco-DepAndManApaApp_using_properties_files.html%23wwconnect_header

https://documentation.softwareag.com/onlinehelp/Rohan/Apama/v10-3-1/apama10-3-1/ApamaDoc/com/apama/correlator/Component.html#getConfigProperties()

  1. Docker/K8S 机密和配置博客文章: http ://www.apamacommunity.com/passing-secrets-to-the-correlator-with-docker-and-kubernetes/ 在产品样本中也有一个示例/docker/applications(秘密样本)

凯夫


推荐阅读