AWS CLI、前のコマンドの出力を別のコマンドの入力として使用しますか?

AWS CLI、前のコマンドの出力を別のコマンドの入力として使用しますか?

AWSで特定のリソースを起動および停止するBashスクリプトを作成したいと思います。私が経験している問題は、前のコマンドで生成された特定のリソース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";

おすすめ記事