【问题标题】:Turning an AWS credentials CSV into an object将 AWS 凭证 CSV 转换为对象
【发布时间】:2015-05-22 20:01:20
【问题描述】:

我在 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那里了解到的

【问题讨论】:

  • 什么是 SNS 对象? (它在哪里定义?)它是通过需求拉进来的吗? (模块、类?)如果是真正的 sns 客户端,您可能需要 require 'aws-sdk'
  • 不,它只是我用来存储值的东西
  • 两者都在同一个脚本中吗? (即流浪脚本)?

标签: ruby csv vagrant


【解决方案1】:

您提供的示例假设有一个 Car 类,该类具有创建方法 + 属性的 getter。

如果两个 sn-ps 都在同一个文件中(vagrant 配置),解决此问题的一种方法是:

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]]

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 2012-08-01
    • 1970-01-01
    • 2021-12-19
    • 2015-04-17
    • 2020-07-23
    • 1970-01-01
    • 2015-11-12
    • 2019-06-09
    相关资源
    最近更新 更多