2016-09-30 4 views
0

私はec2インスタンスのs3からファイルをダウンロードしようとしています。私はキーを与えるdatabag項目access.jsonを作成しました。シェフのレシピNoMethodError Chef :: Resource :: S3Fileのための未定義メソッド `access '

aws_access_key_id access.json['aws_access_key_id'] 

accessどこかという名前の変数がある:

================================================================================ 
Recipe Compile Error in /var/chef/cache/cookbooks/s3_file/recipes/default.rb 
================================================================================ 

NoMethodError 
------------- 
undefined method `access' for Chef::Resource::S3File 

Cookbook Trace: 
--------------- 
    /var/chef/cache/cookbooks/s3_file/recipes/default.rb:13:in `block in from_file' 
    /var/chef/cache/cookbooks/s3_file/recipes/default.rb:10:in `from_file' 

Relevant File Content: 
---------------------- 
/var/chef/cache/cookbooks/s3_file/recipes/default.rb: 

    6: # 
    7: # All rights reserved - Do Not Redistribute 
    8: # 
    9: ws = data_bag_item('cred1', 'access.json') 
10: s3_file 'xxxxxxxxxxx' do 
11: bucket 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
12: remote_path 'xxxxxxxxxxxxxxxxxxxx' 
13>> aws_access_key_id access.json['aws_access_key_id'] 
14: aws_secret_access_key access.json['aws_secret_access_key'] 
15: region 'us-west-1' 
16: owner "root" 
17: group "root" 
18: mode 0777 
19: end 
20: 
21: 

access.jsonがdatabag項目

実際のレシピは次の行に

ws = data_bag_item('cred1', 'access.json') 
s3_file 'xxxxxxxxx' do 
    bucket 'xxxxxxxxxxxxxxx' 
    remote_path 'xxxxxxxxxxxx' 
    aws_access_key_id access.json['aws_access_key_id'] 
    aws_secret_access_key access.json['aws_secret_access_key'] 
    region 'us-west-1' 
    owner "root" 
    group "root" 
    mode 0777 
end 

答えて

0

ですが、助けてください?

データバッグアイテムを取得していますが、変数wsに格納しています。それを考えれば、上記の行(およびそれに続く行)を次のように変更することができます。

aws_access_key_id ws['aws_access_key_id'] 
aws_secret_access_key ws['aws_secret_access_key'] 
+0

ありがとうございます。今、そのは、エラーの下に与える:私はそれを削除した場合 はNoMethodError -------------シェフのための 未定義のメソッド '地域」::リソース:: S3File それはエラーの下に与えている。 RestClient :: ResourceNotFound ---------------------------- 404リソースが見つかりません – Dave

+0

's3_file' cookbookは' region'属性を使用している可能性があります。これは、S3の権限や不正な資格情報でエラーが発生する可能性があります。 [s3_file cookbookの文書](https://supermarket.chef.io/cookbooks/s3_file)を読むことをお勧めします。 – vase

関連する問題