java - AWS EC2 用户数据不从 Java 的 S3 复制文件

标签 java amazon-s3 amazon-ec2

在请求 Spot 实例时,我将以下命令作为 userData 的一部分给出。该命令是将文件从S3复制到获取的Spot实例。我也有必要访问 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 命令。这也有效

最佳答案

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

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

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

aws ec2 描述实例状态

关于java - AWS EC2 用户数据不从 Java 的 S3 复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586339/

相关文章:

amazon-s3 - 有哪些客户端工具可用于管理 Amazon S3 和 CloudFront?

Android:无法执行 HTTP 请求:没有对等证书

mysql - 如何从 EC2 ubuntu 系统连接到本地的 Mysql?

amazon-ec2 - 使用 Terraform 创建可达性分析器路径

java - 从rest api下载文件而不需要window.open

java - 如何在使用 Flying Saucer 创建的 PDF 中设置元数据

hadoop - 停止 hadoop/EMR/AWS 创建带有 _$folder$ 扩展名的 S3 路径

amazon-web-services - 亚马逊 EC2 实例 : Server refused our key

java - 使用 getText 获取整数

java - 静态代码分析注释