gpt4 book ai didi

node.js - 如何使用 Lambda 启动和停止 EC2 实例

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:57 25 4
gpt4 key购买 nike

我正在尝试使用 lambda 启动和停止 EC2 Windows 实例,我正在使用 Node.js 8.10 编写启动和停止脚本。当我测试脚本时,脚本已成功执行,但 EC2 实例不受影响.我在下面给出实例详细信息和脚本

const AWS = require('aws-sdk');

exports.handler = async (event) => {

const ec2 = new AWS.EC2({ region: event.instanceRegion });
ec2.stopInstances({ InstanceIds: [event.instanceId] }).promise()
.then(() => callback(null, `Successfully stopped ${event.instanceId}`))
.catch(err => callback(err));
};

脚本执行成功

enter image description here

以下是实例详细信息 enter image description here

这是停止脚本,但无法停止实例,请帮助我,我是 aws 新手。提前致谢

最佳答案

使用 Lambda 时,您的处理函数接收三个参数:事件、上下文和回调。使用同步函数时,您可以使用回调。使用异步时,您应该返回一个 promise 。

const AWS = require('aws-sdk');

exports.handler = async (event, context, callback) => {

const ec2 = new AWS.EC2({ region: event.instanceRegion });
return ec2.stopInstances({ InstanceIds: [event.instanceId] }).promise()
.then(() => `Successfully stopped ${event.instanceId}`)
.catch(err => console.log(err));
};

事实上,当您使用 async 关键字时,您实际上返回了一个 promise ,但是通过不返回任何内容,您将使用 null 作为响应来解析它,因此您的代码将只要终止,您的 stopInstances 将无法完成其工作。

关于node.js - 如何使用 Lambda 启动和停止 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57282759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com