将aws-cli的输出作为另一个aws-cli命令的输入进行管道传输



嗨,我想通过管道将实例输出发送到启动/停止ec2实例。这是代码的开头:

aws ec2 describe-instances 
--query "Reservations[*].Instances[*].{Instance:InstanceId,Subnet:SubnetId}" 
--filters "Name=tag-value,Values=<INSTANCE NAME TAG>" 
--output text | 

如何将此输出管道传输到Windows中的AWS ec2启动实例命令?

输出格式可以是JSON、YAML、TEXT或Table。这取决于您的需求。

JSON输出的示例命令:

$ aws iam list-users --output json

样本输出:

{
"Users": [
{
"Path": "/",
"UserName": "Admin",
"UserId": "AIDA1111111111EXAMPLE",
"Arn": "arn:aws:iam::123456789012:user/Admin",
"CreateDate": "2014-10-16T16:03:09+00:00",
"PasswordLastUsed": "2016-06-03T18:37:29+00:00"
},
{
"Path": "/backup/",
"UserName": "backup-user",
"UserId": "AIDA2222222222EXAMPLE",
"Arn": "arn:aws:iam::123456789012:user/backup/backup-user",
"CreateDate": "2019-09-17T19:30:40+00:00"
},
{
"Path": "/",
"UserName": "cli-user",
"UserId": "AIDA3333333333EXAMPLE",
"Arn": "arn:aws:iam::123456789012:user/cli-user",
"CreateDate": "2019-09-17T19:11:39+00:00"
} 
]
}

现在,如果您想将此输出用于另一个命令的输入,一种简单的方法是读取json文件,提取值并将其用作其他命令的输入。

请阅读https://www.business.com/articles/using-powershell-with-json-data/了解一些细节。

我找到了一个更适合我需求的PowerShell解决方案:

$InstanceId = aws ec2 describe-instances --query "Reservations[*].Instances[*].{Instance:InstanceId}" --filters "Name=tag-value,Values=<INSTANCE NAME TAG>" --output text aws ec2 start-instances --instance-ids $InstanceId

最新更新