我正在使用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
我也有~/.aws/credentials
文件中定義my_profile
。
我的node.js代碼可能有什麼問題?
或者這是一個缺陷aws-sdk
?
*是否返回從CLI返回的6的一部分? (也就是說,它們是*相同*實例嗎?)如果刪除過濾器,那麼結果是否包含(至少)您期望的6個實例? –