将 AWS 凭证 CSV 转换为对象

Turning an AWS credentials CSV into an object

我在Ruby

中使用了以下代码
require 'csv'
CSV.foreach('credentials/sns.csv', :headers => true, :col_sep => ',') do | row |
  SNS.create(:IAM => row['IAM User Name'], :KEY => row['Smtp Username'], :SECRET => row['Smtp Password'])
end

并且我希望此时在 Vagrant 中我可以使用

config.vm.provision :shell, :path => "scripts/bootstrap.sh", :args => [SNS.KEY, SNS.SECRET]

但最终得到 Message: uninitialized constant SNS

这显然不是执行此操作的方法,那么我做错了什么以及如何解决它?

我的学习方式来自 This blog post

您提供的示例假设有一辆汽车 class 具有创建方法 + 属性获取器。

如果两个片段都在同一个文件中(流浪者配置),一种解决方法是:

SNS = {}
require 'csv'
CSV.foreach('credentials/sns.csv', :headers => true, :col_sep => ',') do | row |
  SNS[:IAM]=row['IAM User Name']
  SNS[:KEY]=row['Smtp Username']
  SNS[:SECRET]=row['Smtp Password']
end

config.vm.provision :shell, :path => "scripts/bootstrap.sh", :args => [SNS[:KEY], SNS[:SECRET]]