【问题标题】:how to add user-data for the second time in an ec2 instance through java sdk如何通过java sdk在ec2实例中第二次添加用户数据
【发布时间】:2019-03-05 15:05:00
【问题描述】:

我正在尝试在停止实例后第二次添加用户数据,并且在重新启动时我想再次传递一些用户数据,因为我正在使用

public InstanceStatusResponse startEc2Instance(AmazonEC2 ec2Client, String instanceId) {

    BlockDeviceMapping blockDeviceMappings = new BlockDeviceMapping();

    blockDeviceMappings.setDeviceName(storageProperties.getDeviceName());
    System.out.println("vatsal");
    ModifyInstanceAttributeRequest modifyInstanceAttributeRequest = new ModifyInstanceAttributeRequest()
            .withUserData(userdata())


    ModifyInstanceAttributeRequest request = new ModifyInstanceAttributeRequest();
    request.setUserData(userdata());

    System.out.println(modifyInstanceAttributeRequest.withUserData(userdata()));
    System.out.println(modifyInstanceAttributeRequest.getUserData());

    StartInstancesRequest startInstancesRequest = new StartInstancesRequest().withInstanceIds(instanceId);
    ec2Client.startInstances(startInstancesRequest);
    //System.out.println();
    System.out.println("Starting the ec2 instance");


    return instanceStatusResponse(ec2Client, instanceId);

}

我正在传递一些用户数据,我也根据需要使用 base64 编码,但我无法将值发送到该 ec2 机器。

【问题讨论】:

    标签: java amazon-ec2 aws-sdk aws-java-sdk


    【解决方案1】:

    您发布的代码不是很清楚。 你已经创建了modifyInstanceAttributeRequestrequest,但是你似乎没有使用它们。

    尽管如此,典型的 ec2 实例在重新启动时不会运行用户数据脚本。用户数据脚本仅在实例首次启动时运行。

    See this 关于用户数据,仅在首次启动时运行。

    重要

    默认情况下,用户数据脚本和 cloud-init 指令仅运行 在启动实例的第一个引导周期内。然而,你 可以配置您的用户数据脚本和 cloud-init 指令以运行 每次实例从停止状态重新启动时。更多 信息,请参阅初始启动后如何执行用户数据 我的 EC2 实例?在 AWS 知识中心

    要能够在启动 ec2 实例时重新运行用户数据脚本,请参阅来自 AWS 的 this kb article

    【讨论】:

    • 嘿,所以在文章中重新运行用户数据脚本,他们还建议使用修改实例属性,这只是我正在使用的一个,我正在设置用户数据,所以它应该可以工作对吗?
    • 就像我上面提到的你没有使用你刚刚创建的请求对象。你在哪里使用它们?
    【解决方案2】:

    虽然我一直在寻找修改属性请求的方法,但我找到了一种在每次停止和重新启动实例上使用用户数据脚本的好方法,方法是创建一个 ec2 实例的 ami,该实例在其 rc 中包含所有脚本.local 文件。您不能直接对 rc.local 进行更改,您需要先成为 root 用户,然后才能访问它,并且该文件在所有用户数据脚本和 cloud-init 脚本执行后运行。

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2016-03-16
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多