2015-09-30 54 views
10

是否有可能在python中使用boto3创建一个ec2实例? Boto3文件在这里没有帮助,我找不到任何帮助文件在线。请提供一些示例代码/链接。如何使用boto3创建一个ec2实例

回答

20

的API已经改变了,但它就在那里的文档中

# Boto 3 
ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5) 

链接到文件: http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances

+0

您是否知道是否有关键字参数来指定安全组?这样我可以创建实例,并设置正确的安全组,让我ssh进入服务器。 – applecider

+2

它应该接受'SecurityGroups = ['secgroup',..]'关键字参数。这个[issue](https://github.com/boto/boto3/issues/136)似乎表明'create_instances'在后台运行经典的boto2'run_instances',所以'run_instances'的原始参数应该是有效的。看到[文档](http://botocore.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Client.run_instances) – gbs

+0

感谢队友,会给它一个镜头 – applecider

0

你真正想在文档中找到的链接是create_instances() method of the ServiceResource object。这是对象的,如果你创建一个EC2资源这样您所呼叫的类型:

s = boto3.Session(region_name="us-west-1") 
ec2 = s.resource('ec2') 
... 
instance = ec2.create_instances(**y_kwargs) 

这包含了更详细的例子和可用参数列表较长。

您也可以为正在使用AWS命令行界面已经运行AWS实例参数值:

$ aws ec2 describe-instances 

这会打印出从相关参数可以被提取,并传递到create_instances()方法的JSON文件。 (或者,您可以使用boto客户端并拨打describe_instances() method。)

(注意:如果您想知道客户端和资源之间有什么不同,它们为相同目的提供不同目的 - 客户端较低级别的接口,而资源是较高级别的接口。)