AWS Lambdaで
for (index_id in instanceid) { var params = { InstanceId: instanceid[index_id], Name: instancename[index_id] + time, Description: instancename[index_id]+ time, }; ec2.createImage(params, function(err, data) { if (err) { console.log(err, err.stack); }else{ console.log(data); } }); }
のように書くと、
Don't make function within a loop
という警告が出ます。 問題なく動きますが、
for (index_id in instanceid) { var params = { InstanceId: instanceid[index_id], Name: instancename[index_id] + time, Description: instancename[index_id]+ time, }; ec2.createImage(params, resultCreateImage); } var resultCreateImage = function(err, data) { if (err) { console.log(err, err.stack); }else{ console.log(data); } };
のように、for文の外で関数を定義することで、警告が無くなります。