Amazon web services Ruby:调用不存在

Amazon web services Ruby:调用不存在,amazon-web-services,aws-sdk-ruby,ruby-2.5,Amazon Web Services,Aws Sdk Ruby,Ruby 2.5,我正在使用aws sdk并希望使用。这是我根据文件所拥有的: resp = client.send_command( instance_ids: [instance_id], document_name: 'AWS-RunShellScript', max_concurrency: '1', max_errors: '1', timeout_seconds: 60, parameters: { commands:

我正在使用aws sdk并希望使用。这是我根据文件所拥有的:

resp = client.send_command(
    instance_ids: [instance_id],
    document_name: 'AWS-RunShellScript',
    max_concurrency: '1',
    max_errors: '1',
    timeout_seconds: 60,
    parameters:
        { commands:
              [command]
        }
)    

command_id = client.get_command_invocation(
        command_id: resp.command.command_id,
        instance_id: instance_id
    )
使用
put
我确信该方法正在接收命令id和实例id,当我尝试在aws控制台上查看它们时,两者都存在。然而,我不断遇到:

(Aws::SSM::Errors::InvocationDoesNotExist)
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-core-3.103.0/lib/seahorse/client/request.rb:72:in `send_request'
/Users/me/.rvm/gems/ruby-2.5.3/gems/aws-sdk-ssm-1.84.0/lib/aws-sdk-ssm/client.rb:4534:in `get_command_invocation'
我做错了什么?

根据评论

该问题是由于执行
send\u命令后,
调用
不是立即可用的


解决方案是在调用
get\u command\u调用
之前稍等片刻。这可以通过一个基本的
while type
循环来实现,在继续正常的程序流程之前,该循环将以周期性的方式持续拉动调用的可用性。

我认为调用不会立即出现。在执行
get\u command\u调用之前,您是否尝试过等待一段时间?@Marcin wow。是 啊从来没有想过…你介意把这个作为我可以接受的答案吗?谢谢。答复补充:——)