Я пытаюсь отправить команду работающему экземпляру ubuntu ec2. Я настроил соответствующую роль, и у меня есть агент ssm, работающий на экземпляре ec2. Используя boto3 SDK, я смог использовать функцию client.send_command()
для успешной отправки команды оболочки и впоследствии смог получить идентификатор команды. Теперь задача - опросить результат. Я пытаюсь использовать функцию client.get_command_invocation()
, но получаю ошибку InvocationDoesNotExist
. Я уверен, что использую правильный идентификатор команды и идентификатор экземпляра, потому что я протестировал их с помощью интерфейса командной строки AWS, как в aws ssm list-command-invocations --command-id #### --instance-id i-#####
, и это сработало. Вот фрагмент моего кода:
`ssm_client = boto3.client('ssm')
target_id = "i-####"
response = ssm_client.send_command(
InstanceIds=[
target_id
],
DocumentName="AWS-RunShellScript",
Comment="Code to run" ,
Parameters={
"commands": ["ls -l"]
}
)
cmd_id= response['Command']['CommandId']
response = ssm_client.get_command_invocation(CommandId=cmd_id,
InstanceId=target_id)
print(response)`
Вот возвращенная ошибка:
botocore.errorfactory.InvocationDoesNotExist: An error occurred (InvocationDoesNotExist) when calling the GetCommandInvocation operation
Заранее спасибо.