我希望将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键的常量...任何想法如何在芝加哥老板这样做?
谢谢!
答案 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
时,你是通过-config
以boss.config
启动它来传递系统配置并覆盖默认环境值,在这种情况下未指定在kinetic_config.erl
中启动应用程序后解析默认值,但请查看lager.app.src
并将其与{{1}}中的一个进行比较。现在你看看如何调整它。让我们从着色日志开始;)
来自官方文档:Configuring an Application和config