docker - Apama Docker 容器,将容器外部的值传递给 config.evt 文件
问题描述
我有一个使用自定义插件连接到 Kafka Broker 的 Apama 项目。当我们启动 Apama 项目时,我使用 .evt(事件)传入配置值,例如代理 url。我使用 engine_deploy 创建项目的可部署结构,当启动相关器时,我使用 –config 标志来运行已部署的代码版本。
我想创建 Apama 项目的 Docker 映像,以便我可以将 Kafka Broker URL 之类的值作为参数传递到我的 Docker 映像中,并希望在 Docker 映像开始使用相同的部署时被 .evt(事件)文件拾取结构体。请让我知道实现 Apama Docker 映像参数化的最佳方法是什么。
亲切的问候,
阿德南
解决方案
我有一种感觉,你可能会混淆概念,但有办法让两者都发挥作用。
对于您所描述的现代自定义 Apama 应用程序,使用 OS 环境变量(并使用管理插件从 EPL 读取它们)[1] 或使用相关器属性 YAML 文件和命令行替换可能会更正常 -Dkey=值(并使用管理插件的不同方法从 EPL 读取它们)[2]。这些是过去几年中最近的(ish)添加。当然,您可以选择保留现有的 evt 配置代码,然后简单地添加一个额外的监视器来读取其他机制之一,并在内部发送事件以及现有侦听器获取的信息。
我们过去也写过一篇博文[3],展示了如何将“秘密”传递给 Docker 和 Kubernetes,同样的技术也适用于配置(秘密是一种特殊的配置)。
链接:
- 阅读环境变量:管理插件的 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
- 读取相关器属性(命令行替换、文件和 ApamaDoc ref):
- Docker/K8S 机密和配置博客文章: http ://www.apamacommunity.com/passing-secrets-to-the-correlator-with-docker-and-kubernetes/ 在产品样本中也有一个示例/docker/applications(秘密样本)
凯夫
推荐阅读
- database - Laravel 5 获取数据库名称
- django - JQuery-File-Upload 使用 Signed_URL Google Storage,如何在 ajax 回调中调用超类函数 data.submit()?
- c# - 实体框架链接其类型的实体
- asp.net-core - 如何访问 System.Net.Http.HttpConnectionResponseContent 的响应正文?
- linux - collect2:错误:ld 返回 1 个退出状态(-lcudnn)
- javascript - NextJs 渲染错误
- python - 使用 plot_confusion_matrix 绘制多个混淆矩阵
- apache-spark - Pyspark:容器以非零退出代码 143 退出
- linux - lxd 初始化失败
- java - io.jsonwebtoken.UnsupportedJwtException:不支持签名声明 JWS