将Kinetic添加到ChicagoBoss App

时间:2014-12-06 02:32:34

标签: erlang chicagoboss amazon-kinesis

我希望将Kinetic添加到我的芝加哥老板应用程序中,我已将动力学库添加到我的芝加哥老板应用程序中的deps目录中。当我从kinetic目录中运行erlang shell时,我在kinetic目录的根目录中有一个development.config,如下所示:

[{kinetic,
    [{args, [
        % All of these values are optional
        % kinetic will get all of the context from the instance
        {region, "us-east-1"},
        {aws_access_key_id, "AKAAAAAABABABA"},
        {aws_secret_access_key, "3/Fx9987sxc352728181892838bhbjkd"},
        {iam_role, "kinetic"},

        {lhttpc_opts, [{max_connections, 5000}]}
    ]}]
}].

当我启动芝加哥boss应用程序并运行动力学命令时,我得到一个无效的凭证错误,所以似乎动态库正确加载但不是我的aws键的常量...任何想法如何在芝加哥老板这样做?

谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案

只需将您的元组{kinetic, [...]}development.config粘贴到boss.config,其中包含您的erlang应用程序的配置列表。

关于配置文件的更一般性

在每个依赖于配置的应用程序中,我们都可以看到application:get_env(App, Key)application:get_env(App, Key, SomeDefault)等代码。它实际上是调用application_controller,它简要地管理应用程序加载/卸载/启动/停止并保持有关它的信息。您可以使用io:format("~n~p~n",[ets:tab2list(ac_tab)]).检查它知道的内容这些主要来自.app目录中的ebin/个文件,这些文件主要由app.src src/期间的.app.src生成的钢筋生成汇编

我们在env中最有趣的关键是boss.config,它应该包含应用程序的默认配置,它将作为第一个加载,然后其中一些值将被系统配置覆盖,现在是系统配置kinetic

当你在它的开发环境中使用erl -pa ebin -pa deps/*/ebin -s inets -s crypto -s ssl -s lhttpc -config development -s kinetic时,你是通过-configboss.config启动它来传递系统配置并覆盖默认环境值,在这种情况下未指定在kinetic_config.erl中启动应用程序后解析默认值,但请查看lager.app.src并将其与{{1}}中的一个进行比较。现在你看看如何调整它。让我们从着色日志开始;)

来自官方文档:Configuring an Applicationconfig