AWS SDK:请求具有 public IP 和安全组的 spot 实例

AWS SDK: Request spot instance with public IP and security groups

我正在编写一个脚本来自动执行 spot 实例请求。我正在尝试实现通常通过控制台获得的相同效果。更准确地说,实例通常具有以下特征:

我正在使用ruby + the AWS SDK EC2 Client来达到目的。目前,我使用的选项是:

options = {
          :spot_price => "0.6", 
          :instance_count => 1,
          :type => "one-time", 
          :launch_specification => {
              :key_name => "wathever",
              :image_id => "ami-wathever",
              :instance_type => "cx.xwathever",
              :network_interfaces => [
                  {
                      :device_index => 0,
                      :delete_on_termination => true,
                      :subnet_id => "subnet-wathever",
                      :associate_public_ip_address => true
                  }
              ],
              :security_group_ids => ["sg-wathever"],
          }
      } 

这种方法的唯一问题是我在发出请求后收到此错误

Network interfaces and an instance-level security groups may not be specified on the same request

我现在有点迷茫,因为从控制台看它的工作方式不同。在 1 个请求中,我可以为实例指定安全组和 public IP。通过 AWS SDK 虽然这似乎是不可能的。

这是 AWS 工具对齐的问题还是我只是做错了什么?

Network interfaces and an instance-level security groups may not be specified on the same request

"instance-level" 位在这里暗示的是,如果您显式配置网络接口,则需要配置将应用的安全组每个网络接口(使用个别网络接口规范上的 groups 设置)。顶级 security_group_ids 设置仅在您接受默认网络接口配置时才有效。