私はAWS Elastic Beanstalk上で実行可能な特定のファイル(実際にはストップワードのnltk
コーパス)を必要としています。インスタンスが出現してから、弾力のあるbeanstalkによって作成されたS3バケットに必要なフォルダをコピーし、awscli
を使用してコピーコマンドを弾力のあるbeanstalk設定ファイルに追加する予定です。しかし、私はそれを働かせることはできません。インスタンス作成時にS3からエラスティックビーンストーンインスタンスにフォルダをコピーする方法
私のbeanstalkによって起動されたインスタンスは、S3バケットへの読み取りアクセス権を持っている必要があります。これは、beanstalkによって自動的に作成されたバケットです。そのため、BeanstalkはIAMロールaws-elasticbeanstalk-ec2-role
を作成しました。このプロファイルは、起動するすべてのインスタンスに添付されています。私は.ebextensions/my_app.config
に次のコマンドを追加してみました
{
"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-*/*"
]
}
]
}
:この役割は読み、S3バケットへの書き込みアクセスを両方与えるように思わAWSElasticBeanstalkWebTier
ポリシーが含まれて
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
アイデアはありますか?
ありがとうございます!