如何通过boto python代码创建EC2实例

How to create EC2 instance through boto python code

requests = [conn.request_spot_instances(price=0.0034, image_id='ami-6989a659', count=1,type='one-time', instance_type='m1.micro')]

我使用了以下代码。但它不起作用。

使用以下代码从 python 命令行创建实例。

import boto.ec2

conn = boto.ec2.connect_to_region(
    "us-west-2",
    aws_access_key_id="<aws access key>",
    aws_secret_access_key="<aws secret key>",
)
conn = boto.ec2.connect_to_region("us-west-2")
conn.run_instances(
    "<ami-image-id>",
    key_name="myKey",
    instance_type="t2.micro",
    security_groups=["your-security-group-here"],
)

要在 AWS 上使用 Python 创建 EC2 实例,您需要 "aws_access_key_id_value" 和 "aws_secret_access_key_value"。 您可以将此类变量存储在 config.properties 中并将您的代码写入 create-ec2-instance.py 文件

创建一个config.properties并在其中保存以下代码。

aws_access_key_id_value='YOUR-ACCESS-KEY-OF-THE-AWS-ACCOUNT'
aws_secret_access_key_value='YOUR-SECRETE-KEY-OF-THE-AWS-ACCOUNT'
region_name_value='region'
ImageId_value = 'ami-id'
MinCount_value = 1
MaxCount_value = 1
InstanceType_value = 't2.micro'
KeyName_value = 'name-of-ssh-key'

创建create-ec2-instance.py并在其中保存以下代码

import boto3

def getVarFromFile(filename):
    import imp
    f = open(filename)
    global data
    data = imp.load_source('data', '', f)
    f.close()


getVarFromFile('config.properties')

ec2 = boto3.resource(
'ec2',
    aws_access_key_id=data.aws_access_key_id_value,
    aws_secret_access_key=data.aws_secret_access_key_value,
    region_name=data.region_name_value
)

instance = ec2.create_instances(
    ImageId = data.ImageId_value,
    MinCount = data.MinCount_value,
    MaxCount = data.MaxCount_value,
    InstanceType = data.InstanceType_value,
    KeyName = data.KeyName_value)
print (instance[0].id)

使用以下命令执行python代码。

python create-ec2-instance.py