我使用以下方式在AWS中运行实例:
input := &ec2.RunInstancesInput{
// .... assign parameters
}
reservation, err := ec2session.RunInstancesWithContext(ctx, input)
我想提供存储卷的存储空间大小,就像可以在“添加存储空间”中的AWS控制台中指定一样。标签
但是,我无法为初始存储大小配置RunInstancesInput,因此它会以实例类型的默认大小启动。
稍后我可以附加另一个卷,但我想指定初始卷大小。
有可能,怎么做?
答案 0 :(得分:3)
正如评论中已经建议的那样,您应该将BlockDeviceMapping
添加到您的请求中。以下是如何在Java中执行此操作的示例。
private static BlockDeviceMapping blockDeviceMapping(int systemDiskSizeInGb)
{
EbsBlockDevice ebs = new EbsBlockDevice()
.withVolumeSize(systemDiskSizeInGb)
.withVolumeType(VolumeType.Gp2);
return new BlockDeviceMapping()
.withDeviceName("/dev/sda1")
.withEbs(ebs);
}
private static RunInstancesRequest buildInstanceRequest(String imageId, int systemDiskSizeInGb)
{
return new RunInstancesRequest()
.withImageId(imageId)
.withBlockDeviceMappings(ImmutableSet.of(blockDeviceMapping(systemDiskSizeInGb)));
}
RunInstancesResult result = this.ec2Client.runInstances(request);