Python boto3使用实例id创建映像

Python boto3使用实例id创建映像,python,amazon-web-services,amazon-ec2,cloud,boto3,Python,Amazon Web Services,Amazon Ec2,Cloud,Boto3,我将boto3与python3一起用于aws,在aws控制台中有一个非常简单的选项,用于从运行/停止的ec2实例创建映像。我正在boto3 SDK中寻找类似的东西,我发现最接近的是如何从EBS卷创建映像,如下所示: session = boto3.Session(...) ec2 = session.client("ec2") ec2.create_image(...) 如前所述 我想省去查找实例的卷ID的需要,只使用实例ID,这可能吗 我试着跟着 使用此代码: ec2.create_ima

我将boto3与python3一起用于aws,在aws控制台中有一个非常简单的选项,用于从运行/停止的ec2实例创建映像。我正在boto3 SDK中寻找类似的东西,我发现最接近的是如何从EBS卷创建映像,如下所示:

session = boto3.Session(...)
ec2 = session.client("ec2") 
ec2.create_image(...)
如前所述

我想省去查找实例的卷ID的需要,只使用实例ID,这可能吗

我试着跟着 使用此代码:

ec2.create_image(instance_id) 
但我犯了这个错误

TypeError:create_image()只接受关键字参数


您应该能够使用以下方法简单地传递实例ID:

ec2.创建镜像(InstanceId=instance\u id,Name=“abc”)

请注意,这将尝试重新启动EC2实例。如果不希望实例重新启动,请使用:


ec2.创建映像(InstanceId=instance\u id,NoReboot=True,Name=“abc”)

尝试相同操作时,我遇到了一个错误->

“AttributeError:'ec2.ServiceResource'对象没有属性'create_image'”

所以我的建议是使用

"boto3.client('ec2').create_image" instead of "ec2.create_image"

谢谢,我试过了,得到了这个错误:在输入中缺少必需的参数:“Name”在添加Name时运行良好。另一个答案中的ec2假设ec2=boto3.client('ec2')。所以你们都是对的。