Lambda和modifySpotFleetRequest。

问题描述 投票:0回答:1

我有一个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角色有正确的权限。

有什么好办法吗?

amazon-web-services lambda aws-lambda serverless-framework serverless
1个回答
0
投票

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));
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.