Python 如何制作';在启动时分配公共ip;子网中的选项True-Boto3

Python 如何制作';在启动时分配公共ip;子网中的选项True-Boto3,python,amazon-web-services,boto3,Python,Amazon Web Services,Boto3,我在专有网络中创建了一个子网。在子网内启动的实例没有获得自动ip,因为如果为False,则子网的在启动时分配\u public\u ip\u属性 我确实尝试将属性更改为True,并完成了我的工作,但它似乎是写保护的,无法更改 使用网络接口或任何其他方式是否有其他方法来实现这一点 以下是我尝试更改属性时遇到的错误: Traceback (most recent call last): File "launch.py", line 20, in <module> subnet

我在专有网络中创建了一个子网。在子网内启动的实例没有获得自动ip,因为如果
为False
,则子网的
在启动时分配\u public\u ip\u
属性

我确实尝试将属性更改为
True
,并完成了我的工作,但它似乎是写保护的,无法更改

使用网络接口或任何其他方式是否有其他方法来实现这一点

以下是我尝试更改属性时遇到的错误:

Traceback (most recent call last):
  File "launch.py", line 20, in <module>
    subnet.map_public_ip_on_launch = True
AttributeError: can't set attribute
回溯(最近一次呼叫最后一次):
文件“launch.py”,第20行,在
subnet.map\u public\u ip\u on\u launch=True
AttributeError:无法设置属性

子网。启动时映射公共ip
为您提供启动时映射公共ip属性的当前值,您无法通过该属性动态修改其值

您应该改为使用
EC2.client.modify\u subnet\u属性(**kwargs)

尝试以下操作:

subnet.meta.client.modify_subnet_attribute(SubnetId=subnet.id, MapPublicIpOnLaunch={"Value": True})
Boto3中存在一个悬而未决的问题,使此子网
subnet.map\u public\u ip\u on\u launch=True

请参见

即使在今天(使用boto3),Ipv4和Ipv6的自动分配IP也不能在一个命令中设置

我一步一步地设置值:

# auto assign IPs (Ipv4, Ipv6)
ec2_client.modify_subnet_attribute(
    SubnetId=subnet.id,
    MapPublicIpOnLaunch={'Value': True},
)
ec2_client.modify_subnet_attribute(
    SubnetId=subnet.id,
    AssignIpv6AddressOnCreation={'Value': True},
)