2016-09-30 148 views
0

我想从ec3实例下载s3的文件并获取低于错误。我创建了提供密钥的数据库项目access.json。请帮助厨师食谱NoMethodError厨师::资源:: S3File未定义的方法`访问'

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

在下面一行:

aws_access_key_id access.json['aws_access_key_id'] 

有一个名为access某处变量?

您正在检索数据包项目,但将其存储在名为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 Resource Not Found – Dave

+0

's3_file'食谱不支持' region'属性,所以这可能是S3上的权限错误或凭证不正确。我建议阅读[s3_file食谱](https://supermarket.chef.io/cookbooks/s3_file)上的文档。 – vase