amazon-web-services - 从同一 AWS 账户中的其他 EC2 实例启动/停止特定 EC2 实例
问题描述
从同一 AWS 账户中的另一个 EC2 实例(运行节点)启动/停止特定(例如,使用硬编码标识符)EC2 实例的简单方法是什么?
我熟悉Node,但不熟悉AWS SDK,我想我必须学习。同时我想知道是否可能存在另一个 AWS 服务,在该服务中我可以更轻松地将 HTTP 资源(例如可通过凭据 PUT/DELETE 修改)与特定 EC2 实例的状态(运行/停止)相关联。
解决方案
您可以使用 aws cli 或 SDK 来完成。
AWS CLI
一个非常简单的方法就是在第二个实例上安装 aws cli 并运行
aws ec2 start-instances --instance-ids i-1234567890abcdef0
或者
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
SDK
如果您想坚持使用节点,那么您可以使用 SDK 以这种方式启动/停止实例:
var params = {
InstanceIds: [
"i-1234567890abcdef0"
]
};
/* Start */
ec2.startInstances(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
/* Stop */
ec2.stopInstances(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
重要的提示
请注意,实例的 IAM 角色需要包含以下策略(或等效策略)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "*"
}
]
}
希望能帮助到你!
推荐阅读
- php - Silverstripe 4 单元测试出现“找不到对象”错误,如何解决?
- android - Unity android wifi socket communication through Android DLL
- javascript - 查看 ac# session 是否包含特定值
- vue.js - 让WebStorm了解全局注册了哪些vue组件
- c# - 无法从实体框架 6 中的一对一关系表中检索数据
- android - 如何在计算器android中使用计数器和标志
- javascript - Mongodb(Mongoose)返回与数据库中现有集合对应的字符串数组时遇到问题
- three.js - Three.js - 更新godrays光源位置
- memory - Z80 的 RAM 和 EEPROM 最大使用量是多少
- r - 为 R 中的每个组找到 75 个百分位数并用中位数替换