2

在彻底阅读了ruby​​ aws-sdk 文档之后,我没有看到在 VPC 中创建时将公共 IP 地址与实例相关联的方法。我不想管理弹性 IP 地址,只要有好的旧随机公共 IP。

instance = ec2.instances.create(
  count: 1,
  image_id: IMAGE_ID,
  instance_type: INSTANCE_TYPE,
  key_name: KEYNAME,
  subnet_id: SUBNET_ID,
  security_groups: security_group,
  user_data: USER_DATA
)

有人知道在创建 ec2 实例时关联公共地址的最简单方法吗?

提前致谢。

4

2 回答 2

3

http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2/Client/V20131015.html#run_instances-instance_method,在run_instances方法下,在:network_interfaces选项下,您可以使用:associate_public_ip_address输入参数来指定公共 IP 地址的分配.

仅供参考,您使用的是旧版本的 Ruby SDK。使用AWS SDK CORE,因为 AWS 现在更加关注 Core SDK。可以在此处找到在 AWS SDK CORE 中分配公共 IP 地址的上述选项。

于 2014-02-20T08:10:49.760 回答
1

以下是使用 Ruby AWS 开发工具包 2.2 版在具有公共 IP 地址的 VPC 中启动实例的一些示例代码。据我所知,这是启动实际具有公共 IP 地址的实例所需的最少代码量。当然,所有命名的变量my-something都需要首先设置。

require 'aws-sdk'
@ec2 = Aws::EC2::Resource.new
@ec2.create_instances(dry_run: false,
                      min_count: 1,
                      max_count: 1,
                      image_id: my-image-id,
                      key_name: my-key-name,
                      network_interfaces: [{device_index: 0,
                                            subnet_id: my-subnet-id,
                                            groups: [my-security-group-id],
                                            delete_on_termination: true,
                                            associate_public_ip_address: true}]
于 2016-03-23T00:56:52.440 回答