2017-02-22 18 views
1

CLIコマンドを使用して、特定のタグを持つインスタンスをフィルタし、Jenkinsジョブを実行するたびにローカルのファイルに格納します。EC2インスタンスの記述AWS cliを使用したインスタンス名のフィルタリング

aws ec2 describe-instances --filters "Name=tag:Hello,Values=exclude" --output table --query Reservations[*].Instances[*].{Id.InstanceId, State:State.name,Contact:tag:OwnerContact, InstanceProfileName:InstanceProfileName} > Book.txt 

しかし私は、私のパラメータInstanceProfileNameとOwnerContactの2のために、私はなしとして出力を取得し、成功したテキストファイルに出力を取得します。

私はさまざまな組み合わせを試みましたが、まだインスタンス名を出力できませんでした。

aws ec2 describe-instances --query "Reservations[*].Instances[*].{Id:InstanceId,State:State.Name,Profile:IamInstanceProfile.Arn,Name:Tags[?Key=='Name'].Value}" 

構文の権利を取得するには、ただ一度に一つの要素を試してみてください。ここで

答えて

1

は、タグ値を含む出力の各種パラメータは、できる例です。で開始:

aws ec2 describe-instances --query "Reservations[*].Instances[*]" 

その後、パラメータ、例えばを追加します。

aws ec2 describe-instances --query "Reservations[*].Instances[*].Tags" 

次に、あなたがしたいそれぞれの値を試してみてください。最後に、それをすべて大きなコマンドでまとめます。 --queryオプションを理解するには

は、を見てみましょう:JMESPath Tutorial

+0

乾杯、細かいジョン作品!!ちょうどもう1つの質問です。上記のシナリオでは、テーブル形式でファイルに出力すると、インスタンスID、状態名、およびすべての値が1つのテーブルにあります。ただし、同じテーブルの別の列ではなく、別の表のタグを取得します。何か別のことをする必要がありますか? – Sriram

+0

タグは1対多の出力ですので、JSON(サブオブジェクトをサポートします)以外の形式で出力するのは容易ではありません。タグと残りの2つのクエリを実行することができます。 –

+0

こんにちは@Sriram、これまたは任意の答えがあなたの質問を解決した場合は、[それを受け入れる](http://meta.stackexchange.com/q/5234/179419)をチェックしてください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 –

関連する問題