如何开始编写模块注册表和自定义脚本定位器?

How to get started on writing a module registry and custom script locator?

我正在做一些 XD 部署(分布式)并且处理很多自定义模块并不像我希望的那样顺利。

我一直在考虑添加支持以将自定义模块放在 AWS S3 上。实施这个需要什么?我需要注意的任何指示或事情。

这本质上是 [1] 中描述的 ModulRegistry 接口的实现吗?

类似的:我正在处理越来越多的客户脚本(用于转换器和脚本处理器)。是否也有在 S3 上提供存储的挂钩?

[1] http://docs.spring.io/spring-xd/docs/current/api/org/springframework/xd/dirt/module/ModuleRegistry.html

可能最简单的方法是将 S3 存储桶装载到您的本地文件系统。然后修改servers.yml中的xd.customModule.home属性指向你挂载的bucket中的位置。完成后,只需将您的模块存储在那里(使用典型的 spring XD 模块目录的目录结构;即模块应该进入 <modules>/job<modules>/source<modules>/processor,和 <modules>/sink 目录,具体取决于它们服务的目的)和 spring XD 会选择它们。

在获取脚本方面,我用于类似问题的解决方案是在 servers.yml 中定义自定义 属性(为了举例,我将其称为 script.directory).然后,每当您想引用该目录中的脚本时,使用 SPEL 即可:${script.directory}/script.sh.