Как исправить проблему с циклом node.js - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу подключить / отключить профили IAM экземпляров EC2 на лету.Код, который я написал, не выполняет цикл.

Он только связывает профиль IAM с первым экземпляром ec2 и выходит.

// import entire SDK
var AWS = require('aws-sdk');
// import AWS object without services
var AWS = require('aws-sdk/global');

var ec2 = new AWS.EC2({region: 'us-east-1'});

var instancesProfile = '';

ec2.describeIamInstanceProfileAssociations(function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    for (var p in data.IamInstanceProfileAssociations){
        var association = data.IamInstanceProfileAssociations[p].AssociationId
        var instance = data.IamInstanceProfileAssociations[p].InstanceId
        instancesProfile +='InstanceId:' + instance +  ' AssociationId: ' + association + '\n';
        //console.log(association);
            if (association === '')
            {
                var params = {
                IamInstanceProfile: {
                    Name: "S3FullAccess"
                    }, 
                    InstanceId: instance
                };
                ec2.associateIamInstanceProfile(params,function(err, data) {
                    if (err) console.log(err, err.stack);
                    else     console.log(data);          
                });
            } else
            {
                var params = {
                IamInstanceProfile: {
                    Name: "S3FullAccess"
                    }, 
                    AssociationId: association
                };
                ec2.replaceIamInstanceProfileAssociation(params,function(err, data) {
                    if (err) console.log(err, err.stack);
                    else     console.log(data);          
                });
            };
             console.log(instancesProfile);
      }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...