我正在AWS Elastic Beanstalk上運行需要特定文件可供其運行的Django Web應用程序(實際上是一個nltk
停用詞語集)。由於實例來來去去,我將需要的文件夾複製到由我的彈性beanstalk創建的S3存儲桶中,並計劃將使用awscli
的複製命令添加到我的彈性beanstalk配置文件中。但我無法讓它工作。如何在創建實例時將文件夾從S3複製到彈性beanstalk實例
我的beanstalk啓動的實例應該具有對S3存儲桶的讀取權限,因爲這是由beanstalk自動創建的存儲桶。所以,豆杆還創建了一個IAM角色aws-elasticbeanstalk-ec2-role
,它是一個實例配置文件,附加到它啓動的每個實例。此角色包括AWSElasticBeanstalkWebTier
政策,這似乎授予讀寫訪問S3鬥:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BucketAccess",
"Action": [
"s3:Get*",
"s3:List*",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::elasticbeanstalk-*",
"arn:aws:s3:::elasticbeanstalk-*/*"
]
}
]
}
我嘗試添加下面的命令來.ebextensions/my_app.config
:
commands:
01_copy_nltk_data:
command: aws s3 cp s3://<my_bucket>/nltk_data /usr/local/share/
,但我得到以下錯誤,當儘管我可以看到S3控制檯中的文件夾,但我仍嘗試部署
Command failed on instance. Return code: 1 Output: An error occurred (404) when calling the HeadObject operation: Key "nltk_data" does not exist
任何想法?
謝謝!