我有一个lambda函数,我想修改一个spotFeel请求的容量。每当我在aws中运行这个函数时,它似乎没有做任何事情,没有错误发生。
import dotenv from 'dotenv';
import AWS from 'aws-sdk';
dotenv.config();
AWS.config.update({ region: process.env.AWS_WORK_REGION });
AWS.config.apiVersions = { ec2: '2016-11-15' };
exports.handler = async (event, context) => {
const ec2 = new AWS.EC2();
try {
const terminationParams = {
SpotFleetRequestId: '<SpotFleetRequestId>',
TargetCapacity: 1,
};
console.log(terminationParams);
ec2.modifySpotFleetRequest(terminationParams, function (err, data) {
console.log('here');
if (err) {
console.log(err);
} else {
console.log(data);
}
});
} catch (err) {
throw new Error('Error', JSON.stringify(err));
}
};
modifySpotFleetRequest里面的console.logs似乎也不起作用。
如果我把代码移到一个我可以在本地运行的文件中,一切似乎都能按照预期工作。
我的lambda角色有正确的权限。
有什么好办法吗?
Ersoy建议的工作。
import dotenv from 'dotenv';
import AWS from 'aws-sdk';
dotenv.config();
AWS.config.update({ region: process.env.AWS_WORK_REGION });
AWS.config.apiVersions = { ec2: '2016-11-15' };
exports.handler = async (event, context) => {
const ec2 = new AWS.EC2();
try {
const terminationParams = {
SpotFleetRequestId: '<SpotFleetRequestId>',
TargetCapacity: 1,
};
console.log(terminationParams);
await ec2.modifySpotFleetRequest(terminationParams, function (err, data) {
console.log('here');
if (err) {
console.log(err);
} else {
console.log(data);
}
}).promise();
} catch (err) {
throw new Error('Error', JSON.stringify(err));
}
};