我试图调用运行情况,并通过所产生的实例ID作为输入如下创建标签作为一个班轮:有没有办法将一个AWS CLI命令的输出作为输入流向另一个?
aws ec2 run-instances \
--image-id ami-1234 \
--output text \
--query Instances[*].InstanceId | \
aws ec2 create-tags \
--tags 'Key="foo",Value="bar"'
当尝试,我得到如下:
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: argument --resources is required
是这样的可能或者不得不求助于使用变量(或其他方式我没有考虑)?
其他背景
的问这个问题的动机是,这样的事情是可能的AWS工具适用于Windows PowerShell;我希望能用AWS CLI完成同样的事情。
等效PowerShell的例子:
New-EC2Instance -ImageId ami-1234 |
ForEach-Object Instances |
ForEach-Object InstanceId |
New-EC2Tag -Tag @{key='foo';value='bar'}
您需要编写脚本来捕获第一个命令的输出并将其作为参数提供给第二个命令。你正在使用的管道没有办法工作,它怎么知道如何将文本输入到管道中? –
这就是我所怀疑的,我只是想确定。使用AWS PowerShell工具(命令声明“来自管道的值”属性),FWIW可以实现这种功能,但这更多的是PowerShell的功能,而不是AWS命令。 –
@MarkB'create-tags'需要一个'resources'参数,它是实例Id(可以是一个列表,但在这种情况下它将是单个值)来标记哪个是刚刚启动并从'run-instnace'命令的查询结果。我错过了什么吗? –