AWS EC2用户数据未从Java从S3复制文件

时间:2019-04-09 06:25:18

标签: java amazon-s3 amazon-ec2

我在请求竞价型实例时将以下命令作为userData的一部分提供。此命令是将文件从S3复制到获取的竞价型实例。我也有必要访问s3存储桶。

String startupUserData = "aws s3 cp s3://ugamplatform-spot/python-script/script.py /opt/scripts/";
startupUserData = org.apache.commons.codec.binary.Base64.encodeBase64String(startupUserData.getBytes());

LaunchSpecification launchSpecification = new LaunchSpecification();
    launchSpecification.withKeyName("dev_spot")
    .withImageId("ami-0483f13a861249490")
    .withInstanceType(InstanceType.C4Large)
    .withSubnetId("subnet-3dee5t67")
    .withUserData(startupUserData)
    .withAllSecurityGroups(securityGroups);
requestRequest.setLaunchSpecification(launchSpecification);
RequestSpotInstancesResult requestResult = ec2.requestSpotInstances(requestRequest);

我能够成功获得竞价型实例。但是不会复制S3中的文件。请求实例时,我的应用程序日志中没有看到任何错误

我什至通过userData尝试了一个简单的mkdir命令。这种努力也可以

2 个答案:

答案 0 :(得分:2)

您可以查看使用AWS CLI在用户数据通过控制台输出运行时发生的情况的日志:

aws ec2 get-console-output --instance-id i-yourinstanceid

您可以使用以下方法获取实例ID:

aws ec2 describe-instance-status

答案 1 :(得分:0)

您还需要提及region ...从s3存储桶下载到任何EC2实例的命令是从美国东部来的

aws s3 cp s3:// distribution-bucket / / path / to / copyOrDownload --region us-east-2