【问题标题】:What is the recommended way of storing db connection strings in an IronWorker在 IronWorker 中存储数据库连接字符串的推荐方法是什么
【发布时间】:2013-10-09 03:16:21
【问题描述】:

Heroku 的常见做法是让环境变量保存敏感凭据,这样就不需要将密码文件签入 git。

IronWorkers 有类似的东西吗?应该如何将数据库连接字符串传递给必须连接到数据库的 IronWorker?理想情况下,我希望避免在 database.yml 中包含用户名和密码。

例如:

$ heroku 配置

HEROKU_POSTGRESQL_CYAN_URL: postgres://mmuxxxxxxxnhzp:X0JdWLxxxcJQ4ffO0xTjO6scJr@ec2-23-23-214-251.compute-1.amazonaws.com:5432/de11tlh7iq999x

$ heroku config:set SOMEVAR=somevalue

SOMEVAR=somevalue

任何帮助将不胜感激!

谢谢, 迪米特里

【问题讨论】:

    标签: ruby-on-rails iron.io ironworker


    【解决方案1】:

    1) 将配置文件合并到包中

    2) 使用 --worker-config 标志上传 worker。例如 iron_worker upload hello.worker --worker-config cfg.json 并在 worker 中使用 config 助手。

    3) 通过有效负载传递连接数据

    【讨论】:

    • 看起来我们将选择 3) 但通过 REST API 从我们的生产服务器传递此有效负载。 (dev.iron.io/worker/reference/api/#queue_a_task) 是否有更多关于 2) 的文档,特别是工作人员内部的 config 助手?
    • 配置助手用于您在上传工作人员时可以为所有任务设置的配置(@thousandsofthem 回复中的#2)。
    【解决方案2】:

    有趣的是,您应该问的是 IronCast 昨天刚刚在我们的博客上发布了关于从 IronWorker 连接到数据库的内容:

    http://blog.iron.io/2013/10/ironcast-4-how-to-connect-to-your.html

    在有效载荷中传递它:

    @client.tasks.create("pygments",
                         "database" => Rails.configuration.database_configuration[Rails.env],
                         "request" => {"lang" => @snippet.language,
                         "code" => @snippet.plain_code},
                         "snippet_id" => @snippet.id)
    

    然后在你的工人中使用它:

    ActiveRecord::Base.establish_connection(params['database'])
    

    【讨论】:

    • 感谢视频教程!正如问题中所述,我想避免将凭据放在我可能会签入的文本文件中,这就是 example_connection.rb 的视频中所做的。通过客户端库/API 创建任务时,我很高兴在有效负载中发送它。
    • 啊,没想到视频不一样。帖子文本部分中的代码示例通过有效负载传递它(更新了我的答案以显示它)。
    • 嗨@dimroc,example_connection.rb 实际上是ActiveRecord::Base.establish_connection({params}) 工作原理的演示。我们建议将您的凭据作为来自控制器的有效负载传递。我们绝对不建议将您的凭据检查到 git 中!
    • @SidneySidaZhang 安全后果是什么?参数是否会存储在例如日志文件?哪种方法更安全(payload 或 --worker-config)?
    • @DaxFohl 通过有效负载发送凭据以不访问日志文件和 UI,因为它们已被过滤,最终输出为连接字符串:[FILTERED]。与签入的工作人员配置相比,有效负载绝对是首选。你可以在这里看到更多:dev.iron.io/worker/reference/payload/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2015-02-13
    相关资源
    最近更新 更多