如何在 AWS 配置文件中包含山魈凭证?

Posted

技术标签:

【中文标题】如何在 AWS 配置文件中包含山魈凭证?【英文标题】:how can I include mandrill credentials in the AWS config file? 【发布时间】:2015-03-17 15:16:17 【问题描述】:

我正在使用 sinatra 在 AWS 上部署一个 ruby​​ 应用程序。我想使用 Mandrill 发送电子邮件。

我创建了一个 .ebextensions/app.config 文件,内容是:

option_settings:
  - option_name: MANDRILL_APIKEY
    value: api_key_password
  - option_name: MANDRILL_USERNAME
    value: api_key_username

结构是否正确:.ebextensions/app.config

文件是否正确?

无论哪种方式,它都不起作用,错误是“参数数量错误 0(对于 1..2)”所以大概什么都没有传递。

邮箱代码sn-p是:

require 'mandrill'

m = Mandrill::API.new
message =   
 :subject=> "Hello from the Mandrill API",  
 :from_name=> "Cloudflow",  
 :text=>"Hi message, how are you?",  
 :to=>[  
     
     :email=> "user@gmail.com",  
     :name=> "User"  
     
 ],  
 :html=>"<html><h1>Hi <strong>message</strong>, how are you?</h1></html>",  
 :from_email=>"notification@cloudflow.sh"  
  
sending = m.messages.send message  
puts sending

所有帮助感谢小伙子们,谢谢。

【问题讨论】:

请提供错误的堆栈跟踪。 elasticbeanstalk-us-east-1-354654731898.s3.amazonaws.com/… 此处完整跟踪 我的权限被拒绝了。 是的,抱歉,日志会自动“自毁”。无论如何,现在一切都很好,请参见下文。另外,感谢您的链接-非常有用。我很感激。 【参考方案1】:

您需要将您的 api 密钥传递给 Mandrill::API 上的“新”方法。

我想你需要先阅读 aws 配置文件。

m = Mandrill::API.new api_key_here

更多信息: https://mandrillapp.com/api/docs/index.ruby.html

【讨论】:

谢谢,这里不需要写api_key。 Mandrill 希望在未写入代码的 ENV 中找到它们。关键是我相信错误发生在 app.config 文件或文件夹的结构中,而不是在正常工作的山魈代码 sn-p 中,就像在 Heroku 上使用存储在 ENV 中的凭据一样。跨度> === puma 启动:2015-01-19 17:08:30 +0000 === === puma 启动:2015-01-19 17:08:30 +0000 === [18010] + 上下文中的 Gemfile:/var/app/current/Gemfile [18007] - Worker 0 (pid: 18010) 已启动,阶段:0 ArgumentError - 参数数量错误(0 表示 1..2):/opt/ rubies/ruby-2.1.4/lib/ruby/gems/2.1.0/gems/mandrill-0.0.4/lib/mandrill/api.rb:35:in initialize' /var/app/current/app.rb:25:in new' /var/app/current/app .rb:25:in `block in ' 我认为它只是没有从 app.config 文件中读取。感谢您的宝贵时间。 ***.com/questions/11211007/… 这可能会有所帮助。阅读 mandrill API 文档,我仍然说您需要将密钥传递给 new 方法。 谢谢,感谢您的 cmets。我已阅读 Mandrill 文档,我可以向您保证 Mandrill 代码没有任何问题。现在,它实际上可以正常工作,如上所述(没有按照您的建议添加 api_key,这样做是错误的)。正如我所认为的那样,错误在于将 app.config 文件放置在正确的目录中。否则其他一切都是正确的。很抱歉浪费您的时间。

以上是关于如何在 AWS 配置文件中包含山魈凭证?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WAR 存档中包含应用程序配置文件?

如何在 Visual Studio 的发布配置文件中包含动态生成的文件

如何在 Digital Ocean 的源代码控制中包含 nginx 和 gunicorn 配置文件?

如何在用于部署的服务结构应用程序包中包含发布配置文件和应用程序参数?

如何在我的 Android 库 (AAR) 中包含 proguard 配置

如何在 WAR 文件中包含 Hsql 数据库?