如何通过在 windows 中配置 boto3 库来使用 python 启动所有 ec2 实例?

How to start all the ec2 instances using python by configuring boto3 libraries in windows?

我已经在我的 windows 8.1 64 位机器上安装了 python 3.6.4 版本。 安装和配置 boto3 和 boto 库所需的所有步骤。 我试图获取特定区域的所有 A​​WS EC2 实例 并停止它们,但无法执行任务。

有没有人有解决方案来完成要求。

将凭据添加到环境变量: Doc to configure credentials

为您的 boto3 客户端设置区域: Tutorial to Set region

import boto3

client = boto3.client('ec2',region_name='us-west-2') #Add your region

print('Loading function')

def lambda_handler(event, context):
    responses = client.start_instances(
    InstanceIds=[
        'YOUR INSTANCE IDs'
    ],

    DryRun=True # Make it False to test
)
#Basic import boto3 libraries
import boto3
import sys

#provided Access Credentialsaccess_key
access_key = ""
secret_key = ""

count=0
#Establish a connection to EC2 resource using credentials and region_name
conn = boto3.resource('ec2', aws_access_key_id=access_key, aws_secret_access_key=secret_key,region_name='us-west-1')
print("Argument length: ",len(sys.argv))

if len(sys.argv)>2:
    Keyname = sys.argv[1]
    value = sys.argv[2]
    instances = conn.instances.filter(Filters=[{'Name': 'instance-state-name', 'Values': ['stopped'],'Name': 'tag:'+Keyname,'Values': [value]}])
    print("Arguments passed\nKey: "+Keyname+"\nValue: "+value)
else:
    instances = conn.instances.filter(Filters=[{'Name': 'instance-state-name', 'Values': ['stopped']}])

for instance in instances:
    #instance.start(instance.id)
    count+=1
    print(instance.id,",",instance.state["Name"])

print("Total number of EC2 instances are stopped on cloud: ",count)

以上代码可以使用2个参数执行,第一个是所有实例的Tag Key,第二个是Tag Value。 它将获取所有标记有给定值的 运行 个实例,并一个一个地启动它们。