我試圖調用運行情況,並通過所產生的實例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'命令的查詢結果。我錯過了什麼嗎? –