键InstanceId的目标值无效。使用InstanceID的Python boto3 ssm脚本错误?

键InstanceId的目标值无效。使用InstanceID的Python boto3 ssm脚本错误?,python,amazon-web-services,amazon-ec2,boto3,Python,Amazon Web Services,Amazon Ec2,Boto3,我要自动修补的python脚本有一个错误,其中参数instanceId无效。在脚本中,我应该在哪里声明InstanceId的值 import boto3 ssm = boto3.client('ssm', region_name='us-east-1') response = ssm.start_automation_execution( Parameters={ 'AutomationAssumeRole': [ 'parameters

我要自动修补的python脚本有一个错误,其中参数instanceId无效。在脚本中,我应该在哪里声明InstanceId的值

import boto3

ssm = boto3.client('ssm', region_name='us-east-1')
response = ssm.start_automation_execution(
    Parameters={
        'AutomationAssumeRole': [
                'parameters'
        ]
},
    DocumentName='document-name',
    Mode='Auto',
    TargetParameterName='test',
    Targets=[
        {
            'Key': 'InstanceIds',
            'Values': [ 'i-1234567890abcd' ]
 }
    ],

    MaxErrors='10'
)
这给了我错误信息

Invalid target value for key InstanceIds
我做错了什么;dr:确保“InstanceId”列为自动化文档中的输入参数,然后尝试更新用于
'ParameterValues'
的目标键值

这可能在某种程度上取决于您的实现,但我遇到了与您相同的错误,并且我的参数与您的参数匹配,只是我使用了
TargetParameterName='InstanceId'
而不是
TargetParameterName='test'
。我为Target.Key尝试了几种不同的值,但都不起作用,直到我尝试了这一点,它才起作用:

Targets=[
            {
                'Key': "ParameterValues",
                'Values': [
                    "i-012345abcdeff",
                    "i-012345abcdefg"
                ]
            }
        ],

另一方面,我认为他们可能会在某种程度上改进这种情况下此API的错误消息。

从我在文档中看到的语法看起来正确,实例id有效吗?你能在控制台中重现这个场景吗?@ChrisWilliams是的,错误消息是我从控制台得到的,即使这样,它也不会工作。实例当前是否打开有关系吗?我正在从另一个实例运行此命令以测试另一个补丁。我建议打开它以注册自动化目标,因为它可能正在检查SSM代理是否正确active@ChrisWilliams不过,该实例已经在进行测试。是否需要添加权限?我认为将
AmazonSmManagedInstanceCore
策略附加到实例角色应该足够了