Python 如何使用boto3创建ec2实例

Python 如何使用boto3创建ec2实例,python,amazon-web-services,amazon-ec2,boto,boto3,Python,Amazon Web Services,Amazon Ec2,Boto,Boto3,可以在python中使用boto3创建ec2实例吗? Boto3文档在这里没有帮助,我在网上找不到任何帮助文档。请提供一些示例代码/链接。API已更改,但它就在文档中 # Boto 3 ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5) #Boto 3 ec2.create_实例(ImageId=”参考API文档有创建实例的所有可用选项 您在文档中真正要查找的链接是。如果您创建以下EC2资源,

可以在python中使用boto3创建ec2实例吗?
Boto3文档在这里没有帮助,我在网上找不到任何帮助文档。请提供一些示例代码/链接。

API已更改,但它就在文档中

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

ec2.create_实例(ImageId=”

参考API文档有创建实例的所有可用选项


您在文档中真正要查找的链接是。如果您创建以下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
这将打印出一个JSON文件,从中可以提取相关参数并将其传递给
create\u instances()
方法。(或者,您可以使用boto客户端并调用。)


(注意:如果您想知道客户机和资源之间的区别,那么它们为同一个终端提供不同的用途-客户机是较低级别的接口,而资源是较高级别的接口。)

您可以从运行我使用的代码。您可以根据需要添加或删除参数,但这是您通常需要的:

import boto3

client = boto3.client('ec2', region_name='us-west-2')

response = client.run_instances(
    BlockDeviceMappings=[
        {
            'DeviceName': '/dev/xvda',
            'Ebs': {

                'DeleteOnTermination': True,
                'VolumeSize': 8,
                'VolumeType': 'gp2'
            },
        },
    ],
    ImageId='ami-6cd6f714',
    InstanceType='t3.micro',
    MaxCount=1,
    MinCount=1,
    Monitoring={
        'Enabled': False
    },
    SecurityGroupIds=[
        'sg-1f39854x',
    ],
)

如果您在windows计算机上运行,则需要使用正确的EC2权限配置AWS Cli以启动实例

import boto3

ec2 = boto3.resource('ec2')

instance = ec2.create_instances(
    ImageId='ami-5eb63a32',
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro',
)
print(instance[0].id)
#
你知道是否有一个关键字参数来指定安全组吗?这样我就可以创建实例,并设置正确的安全组,让我通过ssh进入服务器。它应该接受一个
SecurityGroups=['secgroup',…]
关键字参数。这似乎表明
create_instances
正在后台运行经典的boto2
run_instances
,因此
run_instances
的原始参数应该是有效的。请参阅感谢助手,会给它一个快照。文档非常简短和模糊。如果我希望新实例c3.xlarge,如何设置参数?将此关键字参数添加到
create_instances
InstanceType=“c3.xlarge”
感谢您解释客户端和资源之间的区别!您是如何理解的?我在文档中看到了ec2.create_实例,但我不知道ec2是什么。我如何知道实例是否已创建并准备好登录?您必须使用从RunInstanc获得的实例ID运行DescribeInstances API调用es API调用。但是,没有API调用可以让您知道实例是否已准备好登录。对我来说非常有用