【问题标题】:writing a python script to create an EC2 instance and need suggestions编写 python 脚本来创建 EC2 实例并需要建议
【发布时间】:2020-07-23 08:27:24
【问题描述】:

我认为这段代码有问题,因为它没有启动新的 EC2 实例。我正在使用describe instances 作为命令:

import boto3

def main():
    client = boto3.client("ec2")

    response = ec2.describe_images(
        Filters = [{"Name": "ami-test"}]
    )
    images = response["Images"]
    image = images[0]
    image_id = image["ami-0148c8f3i662259a"]
    response = ec2.run_instances(
        ImageId = image_id,
        InstanceType = "t2.micro",
        MaxCount = 1,
        MinCount = 1
    )
    print(response)

我希望它以 ami-test 的名称启动 EC2,并让 AMI ID 实现其所有设置。这是不正确的吗?

【问题讨论】:

  • 在寻求帮助诊断编码问题时,始终提供症状、错误消息以及实际与预期结果。

标签: amazon-web-services amazon-ec2 boto3


【解决方案1】:

使用下面的代码describe_imagesFor correct Syntax

import boto3

session = boto3.Session(profile_name='default', region_name='eu-central-1')

ec2 = session.client('ec2')

response = ec2.describe_images(
    Filters=[
        {
            'Name': 'name',
            'Values': ['ami-test']
    }
    ]
)

for each in response['Images']:
    image_id = each['ImageId']

ec2_response = ec2.run_instances(
    ImageId=image_id,
    InstanceType="t2.micro",
    MaxCount=1,
    MinCount=1,
    TagSpecifications=[
        {
            'ResourceType': 'instance',
            'Tags': [
                {
                    'Key': 'Name',
                    'Value': 'ami-test'
                },
            ]
        },
        {
            'ResourceType': 'volume',
            'Tags': [
                {
                    'Key': 'Name',
                    'Value': 'ami-test'
                },
            ]
        },
    ]
)

print(ec2_response)

【讨论】:

  • OP 没有在实例上设置名称标签。
  • 所以最初文档说 client.describe_imagesclient.run_instances 但我将其更改为 ec2.run_instancesec2.describe_images 这是正确的吗?
  • 首先您要正确获取图像ID。所以你必须先打电话给describe_image,然后再打电话给run_instances
  • 对我来说工作正常。让我也用标签为你更新完整的代码。给我5分钟
  • 我已经更新了代码。您可以使用TagSpecifications 添加尽可能多的标签。链接我已经给你了。如果您遇到任何问题,请告诉我。
猜你喜欢
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 2019-12-05
  • 2011-10-20
相关资源
最近更新 更多