3

私は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 

アイデアはありますか?

ありがとうございます!

答えて

1

AWSサポートに回答がありました:nltk_dataフォルダにサブフォルダとファイルがあり、コマンドに--recursiveオプションが必要です。

関連する問題