Ich verwende aws-sdk, um alle laufenden EC2-Instanzen aufzulisten, deren IAM-Rolle The_Name_of_My_IAM_Role
ist.aws sdk ec2.describeInstanzen, die nicht alle EC2-Instanzen auflisten
const AWS = require('aws-sdk')
let credentials = new AWS.SharedIniFileCredentials({
profile: 'my_profile'
})
AWS.config.credentials = credentials
AWS.config.update({
region: 'ap-northeast-1'
})
const ec2 = new AWS.EC2()
let params = {
Filters: [
{
Name: 'iam-instance-profile.arn',
Values: [`arn:aws:iam::123456789123:instance-profile/The_Name_of_My_IAM_Role`]
},
{
Name: 'instance-state-name',
Values: ['running']
}
]
}
ec2.describeInstances(params, (err, data) => {
if (err) {
console.log(`describeInstances error: ${err}`)
} else {
console.log(`data.Reservations.length: ${data.Reservations.length}`)
}
})
Ich erwarte, dass der Code 6 EC2-Instanzen zurückgibt. Aber es gibt nur 4 von ihnen zurück.
Das Problem tritt nicht auf, wenn ich aws ec2 describe-instances --filters "Name=iam-instance-profile.arn,Values=arn:aws:iam::123456789123:instance-profile/The_Name_of_IAM_Role" "Name=instance-state-name,Values=running"
Befehl in meinem Terminal eingeben.
Ich meine aws ec2 describe-instances ...
Befehl gibt alle 6 EC2-Instanzen zurück.
Ich habe die folgenden Umgebungsvariablen vor dem Ausführen von aws ec2 describe-instances ...
Befehl festgelegt.
export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_DEFAULT_PROFILE=my_profile
Ich habe auch my_profile
in ~/.aws/credentials
-Datei definiert.
Was könnte mein node.js Code falsch sein?
Oder ist das ein Fehler von aws-sdk
?
Werden die 4 * * Teile der 6 von der CLI zurückgegeben? (Sind das die gleichen Instanzen?) Wenn Sie die Filter entfernen, enthalten die Ergebnisse (mindestens) die 6 Instanzen, die Sie erwartet haben? –