AWS CLI,将上一个命令的输出作为另一个命令的输入?

AWS CLI,将上一个命令的输出作为另一个命令的输入?

我想创建一个 Bash 脚本来启动和停止 AWS 中的特定资源。我遇到的问题是我想创建一个需要由上一个命令创建的特定资源 ID 的资源。目标是能够运行单个脚本来启动资源而不是编辑。

例如,创建 NAT 网关,然后将创建的 NAT 网关的 ID 附加到路由表命令中:

$ aws ec2 create-nat-gateway

示例输出:

"NatGatewayId": "nat-1111111"

$ aws ec2 replace-route --route-table-id rtb-000000000 \
  --destination-cidr-block 0.0.0.0/0 --nat-gateway-id "***nat-id-output***"

答案1

O=$(aws ec2 create-nat-gateway | perl -pe 's/.*: //g');
while true ; do
    C=$(aws ect describe-nat-gateways --nat-gateway-ids "$O" | grep -c available || true);
    if [ $C -gt 0 ] ; then
        break;
    fi
    sleep 3;
done
aws ec2 replace-route --route-table-id rtb-000000000 --destination-cidr-block 0.0.0.0/0 --nat-gateway-id "$O";

相关内容