私はaws-sdkを使用して、IAMロールがThe_Name_of_My_IAM_Role
である実行中のEC2インスタンスをすべて一覧表示しています。aws sdk ec2.describeInstancesすべてのEC2インスタンスがリストされていません
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}`)
}
})
私はコードが6つのEC2インスタンスを返すと予想しています。しかし、それは4つしか返しません。
端末に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"
コマンドを入力しても問題は発生しません。
つまり、aws ec2 describe-instances ...
は6つのEC2インスタンスすべてを返します。
aws ec2 describe-instances ...
コマンドを実行する前に、以下の環境変数を設定しました。
export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_DEFAULT_PROFILE=my_profile
は、私はまた、my_profile
が~/.aws/credentials
ファイルに定義されています。
私のnode.jsコードが間違っている可能性がありますか?
またはこれはaws-sdk
のバグですか?
6から返された6つのうち*がCLIから返されましたか? (つまり、同じ*インスタンスですか?)フィルタを削除した場合、結果には、少なくとも期待した6つのインスタンスが含まれていますか? –