アドレス指定されたIPのリストを持っています。そのIPアドレスに関連付けられたインスタンスがまだ実行中または終了しているかどうかを確認したいと思います。私は毎日多くのインスタンスを起動して終了していますが、puppetmasterから証明書を削除したいだけです。
別の方法があれば、目標を達成できます。
aws ec2 describe-instances --filter Name=ip-address,Values=IP_1,..IP_N
必要なことを行う必要があります。
vPCでプライベートアドレスを使用することを選択するには、private-ip-address
のフィルター名を使用します。
のようなものを通してパイプ
jq -r '.Reservations[].Instances[] | .InstanceId, .PublicIpAddress'
対応するInstanceIDが必要な場合
別のアプローチは、終了するEC2インスタンスをリッスンするために CloudWatch Events を使用し、リスナー( Lambda関数 か、またはSQSをリッスンするカスタムサービス)を使用することです)対応する証明書をPuppetから削除します。
参照:
これをbashスクリプトで使用する場合は、-queryおよび--output形式を使用できます。
aws ec2 describe-instances --filter Name=private-ip-address,Values=x.x.x.x --query 'Reservations[].Instances[].InstanceId' --output text
これはjsonフォーマットなしであなたにテキスト応答を与えます
i-03c1ad0d6abe32323