AWS EC2 Boto3中的“ start_instances()仅接受关键字参数”错误

Dam*_*men 2 python amazon-ec2 amazon-web-services boto3

我正在尝试开始EC2 instance使用boto3。当我执行以下代码时,它可以正常工作

import boto3


ec2client = boto3.client('ec2')

class StartInstances:

    def start_ec_instances(self):
        response = ec2client.start_instances(InstanceIds=['i-XXXXXXXXXX'])
        return

StartInstances().start_ec_instances()
Run Code Online (Sandbox Code Playgroud)

但是当我运行下面的代码时,我得到了

import boto3


ec2client = boto3.client('ec2')

class StartInstances:

    def start_ec_instances(self, instanceid):
        response = ec2client.start_instances(instanceid)
        return

StartInstances().start_ec_instances('InstanceIds=[\'i-XXXXXXXXXX\']')
Run Code Online (Sandbox Code Playgroud)

追溯(最近一次通话):文件“ /Users/xxx/PycharmProjects/ctm-scripting-utils/ec2/start_instances.py”,第25行,位于StartInstances()。start_ec_instances(“ InstanceIds = [\'i-XXXXXXXXXX \ ']“)文件” /Users/xxx/PycharmProjects/ctm-scripting-utils/ec2/start_instances.py“,第11行,位于start_ec_instances响应= ec2client.start_instances(instanceids)文件” / Users / xxx / Library / Python / _api_call中的3.6 / lib / python / site-packages / botocore / client.py“,第310行,”%s()仅接受关键字参数。“ %py_operation_name)TypeError:start_instances()仅接受关键字参数。

hel*_*loV 5

更多关于Python的问题。您正在尝试通过string'InstanceIds=[\'i-XXXXXXXXXX\']'而不是kwargsInstanceIds=[..]。一种可能的解决方法是:

class StartInstances:
    def start_ec_instances(self, instanceid):
        response = ec2client.start_instances(InstanceIds=[instanceid])
        return

StartInstances().start_ec_instances('i-XXXXXXXXXX')
Run Code Online (Sandbox Code Playgroud)