如何使用 boto3 创建 ec2 实例
How to create an ec2 instance using boto3
是否可以在 python 中使用 boto3 创建 ec2 实例?
Boto3 文档在这里没有帮助,我在网上找不到任何帮助文档。请提供一些样本 codes/links.
API 已更改,但它就在文档中
# Boto 3
ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5)
Link 到文档:
http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances
参考 API 文档有创建实例的所有可用选项
http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Subnet.create_instances
您在文档中真正寻找的 link 是 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
这将打印出一个 JSON 文件,可以从中提取相关参数并将其传递给 create_instances()
方法。 (或者,您可以使用 boto 客户端并调用 describe_instances()
method。)
(注意:如果您想知道客户端和资源之间的区别是什么,它们为同一目的服务于不同的目的 - 客户端是一个 lower-level 接口,而资源是一个 higher-level 接口。)
您可以 运行 我使用的代码来自 boto3 docs。您可以根据需要添加或删除参数,但这是您通常需要的:
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)
是否可以在 python 中使用 boto3 创建 ec2 实例? Boto3 文档在这里没有帮助,我在网上找不到任何帮助文档。请提供一些样本 codes/links.
API 已更改,但它就在文档中
# Boto 3
ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5)
Link 到文档: http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances
参考 API 文档有创建实例的所有可用选项
http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Subnet.create_instances
您在文档中真正寻找的 link 是 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
这将打印出一个 JSON 文件,可以从中提取相关参数并将其传递给 create_instances()
方法。 (或者,您可以使用 boto 客户端并调用 describe_instances()
method。)
(注意:如果您想知道客户端和资源之间的区别是什么,它们为同一目的服务于不同的目的 - 客户端是一个 lower-level 接口,而资源是一个 higher-level 接口。)
您可以 运行 我使用的代码来自 boto3 docs。您可以根据需要添加或删除参数,但这是您通常需要的:
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)