管理 Amazon EC2 实例 - AWS SDK for JavaScript

帮助我们改进AWS SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:AWS SDK for JavaScriptV3 API 参考指南详细描述了所有的 API 操作AWS SDK for JavaScript版本 3 (V3)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 Amazon EC2 实例

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何检索有关 Amazon EC2 实例的基本信息。

  • 如何启动和停止 Amazon EC2 实例的详细监控。

  • 如何启动和停止 Amazon EC2 实例。

  • 如何重启 Amazon EC2 实例。

场景

在本示例中,您使用一系列 Node.js 模块执行多个基本实例管理操作。Node.js 模块使用适用于 JavaScript 的开发工具包,通过以下 Amazon EC2 客户端类方法来管理实例:

有关 Amazon EC2 实例生命周期的更多信息,请参阅实例生命周期中的适用于 Linux 实例的 Amazon EC2 用户指南.

前提任务

要设置和运行此示例,请先完成以下任务:

重要

这些示例使用 ECMASCRIPT6 (ES6)。这需要 Node.js 版本 13.x 或更高版本。要下载并安装最新版本的 Node.js,请参阅Node.js 下载内容:。.

但是,如果你更喜欢使用 CommonJS 语法,请参阅JavaScript ES6/常用JS 语法

描述实例

创建libs创建文件名为的 Node.js 模块ec2Client.js. 将下面的代码复制并粘贴到其中,这将创建 Amazon EC2 客户端对象。Replace领域使用您的AWS区域。

const { EC2Client } = require( "@aws-sdk/client-ec2"); // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create anAmazon EC2 service client object. const ec2Client = new EC2Client({ region: REGION }); module.exports = { ec2Client };

可以找到以下示例代码:GitHub 上的.

创建文件名为 ec2_describeinstances.js 的 Node.js 模块。请确保按前面所示配置开发工具包。调用DescribeInstancesCommandAmazon EC2 服务对象的方法来检索实例的详细说明。

// Import required AWS SDK clients and commands for Node.js import { DescribeInstancesCommand } from "@aws-sdk/client-ec2"; import { ec2Client } from "./libs/ec2Client"; const run = async () => { try { const data = await ec2Client.send(new DescribeInstancesCommand({})); console.log("Success", JSON.stringify(data)); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符下输入以下内容。

node ec2_describeinstances.js

可以找到以下示例代码:GitHub 上的.

管理实例监控

创建libs创建文件名为的 Node.js 模块ec2Client.js. 将下面的代码复制并粘贴到其中,这将创建 Amazon EC2 客户端对象。Replace领域使用您的AWS区域。

const { EC2Client } = require( "@aws-sdk/client-ec2"); // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create anAmazon EC2 service client object. const ec2Client = new EC2Client({ region: REGION }); module.exports = { ec2Client };

可以找到以下示例代码:GitHub 上的.

创建文件名为 ec2_monitorinstances.js 的 Node.js 模块。请确保按前面所示配置开发工具包。添加您要控制监控的实例的实例 ID。

根据命令行参数的值 (ON要么OFF),调用MonitorInstancesCommand开始详细监控指定实例的方法,或者调用UnmonitorInstancesCommand方法。

注意

ReplaceINSTANCE_ID包含您要控制监控的实例的 ID,以及STATE使用ON要么OFF.

// Import required AWS SDK clients and commands for Node.js import { MonitorInstancesCommand, UnmonitorInstancesCommand, } from "@aws-sdk/client-ec2"; import { ec2Client } from "./libs/ec2Client"; // Set the parameters const params = { InstanceIds: ["INSTANCE_ID"] }; // Array of INSTANCE_IDs const state = "STATE"; // STATE; i.e., 'ON' or 'OFF' const run = async () => { if (process.argv[4].toUpperCase() === "ON") { try { const data = await ec2Client.send(new MonitorInstancesCommand(params)); console.log("Success", data.InstanceMonitorings); return data; } catch (err) { console.log("Error", err); } } else if (process.argv[4].toUpperCase() === "OFF") { try { const data = await ec2Client.send(new UnmonitorInstancesCommand(params)); console.log("Success", data.InstanceMonitorings); return data; } catch (err) { console.log("Error", err); } } }; run();

要运行示例,请在命令提示符处输入以下命令,并指定ON开始详细监控或OFF停止监控。

node ec2_monitorinstances.js ON

可以找到以下示例代码:GitHub 上的.

启动和停止实例

创建libs创建文件名为的 Node.js 模块ec2Client.js. 将下面的代码复制并粘贴到其中,这将创建 Amazon EC2 客户端对象。Replace领域使用您的AWS区域。

const { EC2Client } = require( "@aws-sdk/client-ec2"); // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create anAmazon EC2 service client object. const ec2Client = new EC2Client({ region: REGION }); module.exports = { ec2Client };

可以找到以下示例代码:GitHub 上的.

创建文件名为 ec2_startstopinstances.js 的 Node.js 模块。请确保按前面所示配置开发工具包。添加您要启动或停止的实例的实例 ID。

根据命令行参数的值 (START要么STOP),调用StartInstancesCommandAmazon EC2 服务对象的方法来启动指定实例,或者StopInstancesCommand阻止他们的方法。

注意

ReplaceINSTANCE_ID具有您要启动或停止的实例的实例 ID,以及STATESTART要么STOP.

// Import required AWS SDK clients and commands for Node.js. import { StartInstancesCommand, StopInstancesCommand, } from "@aws-sdk/client-ec2"; import { ec2Client } from "./libs/ec2Client"; // Set the parameters const params = { InstanceIds: ["INSTANCE_ID"] }; // Array of INSTANCE_IDs const command = "STATE"; // STATE i.e. "START" or "STOP" const run = async () => { if (command.toUpperCase() === "START") { try { const data = await ec2Client.send(new StartInstancesCommand(params)); console.log("Success", data.StartingInstances); return data; } catch (err) { console.log("Error2", err); } } else if (process.argv[2].toUpperCase() === "STOP") { try { const data = await ec2Client.send(new StopInstancesCommand(params)); console.log("Success", data.StoppingInstances); return data; } catch (err) { console.log("Error", err); } } }; run();

要运行示例,请在命令提示符处输入以下命令:START启动实例或STOP来阻止他们。

node ec2_startstopinstances.js

可以找到以下示例代码:GitHub 上的.

重启实例

创建libs创建文件名为的 Node.js 模块ec2Client.js. 将下面的代码复制并粘贴到其中,这将创建 Amazon EC2 客户端对象。Replace领域使用您的AWS区域。

const { EC2Client } = require( "@aws-sdk/client-ec2"); // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create anAmazon EC2 service client object. const ec2Client = new EC2Client({ region: REGION }); module.exports = { ec2Client };

可以找到以下示例代码:GitHub 上的.

创建文件名为 ec2_rebootinstances.js 的 Node.js 模块。请确保按前面所示配置开发工具包。添加您要重启的实例的实例 ID。调用RebootInstancesCommand的方法EC2用于重启指定的实例的客户端服务对象。

注意

ReplaceINSTANCE_ID使用您要重启的实例的 ID。

// Import required AWS SDK clients and commands for Node.js import { RebootInstancesCommand } from "@aws-sdk/client-ec2"; import { ec2Client } from "./libs/ec2Client.js"; // Set the parameters const params = { InstanceIds: ["INSTANCE_ID"] }; // Array of INSTANCE_IDs const run = async () => { try { const data = await ec2Client.send(new RebootInstancesCommand(params)); console.log("Success", data.InstanceMonitorings); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符下输入以下内容。

node ec2_rebootinstances.js

可以找到以下示例代码:GitHub 上的.