繁体   English   中英

来自 aws cli 的管道输出作为另一个 aws cli 命令的输入

[英]pipe output from aws cli as input to another aws cli command

嗨,我想通过管道将实例输出用于启动/停止 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 start-instances 命令?

输出格式可以是 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM