

适用于 JavaScript 的 Amazon SDK v2 已终止支持。建议您迁移到 [适用于 JavaScript 的 Amazon SDK v3](https://docs.amazonaws.cn/sdk-for-javascript/v3/developer-guide/)。有关更多详情和如何迁移的信息，请参阅本[公告](https://www.amazonaws.cn/blogs/developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)。

# 创建 Amazon EC2 实例
<a name="ec2-example-creating-an-instance"></a>

![JavaScript code example that applies to Node.js execution](https://docs.amazonaws.cn/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**此 Node.js 代码示例演示：**
+ 如何从公有亚马逊机器映像（AMI）创建 Amazon EC2 实例。
+ 如何创建标签并将其分配到新 Amazon EC2 实例。

## 关于示例
<a name="ec2-example-creating-an-instance-scenario"></a>

在本示例中，您使用 Node.js 模块来创建 Amazon EC2 实例，并将密钥对和标签分配到其上。代码使用 SDK for JavaScript，通过 Amazon EC2 客户端类的以下方法来创建和标记实例：
+ [`runInstances`](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/EC2.html#runInstances-property)
+ [`createTags`](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/EC2.html#createTags-property)

## 先决条件任务
<a name="ec2-example-creating-an-instance-prerequisites"></a>

要设置和运行此示例，请先完成以下任务。
+ 安装 Node.js。有关更多信息，请参阅 [Node.js](https://nodejs.org) 网站。
+ 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息，请参阅[从共享凭证文件加载 Node.js 中的凭证](loading-node-credentials-shared.md)。
+ 创建密钥对。有关更多信息，请参阅 [使用 &EC2; 密钥对](ec2-example-key-pairs.md)。您可在此示例中使用密钥对的名称。

## 创建和标记实例
<a name="ec2-example-creating-an-instance-and-tags"></a>

创建文件名为 `ec2_createinstances.js` 的 Node.js 模块。请确保按前面所示配置开发工具包。

创建对象来传递 AWS.EC2 客户端类的 `runInstances` 方法的参数，包括要分配的密钥对的名称以及要运行的 AMI 的 ID。要调用 `runInstances` 方法，请创建一个 promise 来调用 Amazon EC2 服务对象并传递参数。然后处理 promise 回调中的 response。

接下来，代码将 `Name` 标签添加到新实例，Amazon EC2 控制台可识别标签并将其显示在实例列表的**名称**字段中。您可以添加最多 50 个标签添加到某个实例，所有标签可以通过调用一次 `createTags` 方法来添加。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Load credentials and set region from JSON file
AWS.config.update({ region: "REGION" });

// Create EC2 service object
var ec2 = new AWS.EC2({ apiVersion: "2016-11-15" });

// AMI is amzn-ami-2011.09.1.x86_64-ebs
var instanceParams = {
  ImageId: "AMI_ID",
  InstanceType: "t2.micro",
  KeyName: "KEY_PAIR_NAME",
  MinCount: 1,
  MaxCount: 1,
};

// Create a promise on an EC2 service object
var instancePromise = new AWS.EC2({ apiVersion: "2016-11-15" })
  .runInstances(instanceParams)
  .promise();

// Handle promise's fulfilled/rejected states
instancePromise
  .then(function (data) {
    console.log(data);
    var instanceId = data.Instances[0].InstanceId;
    console.log("Created instance", instanceId);
    // Add tags to the instance
    tagParams = {
      Resources: [instanceId],
      Tags: [
        {
          Key: "Name",
          Value: "SDK Sample",
        },
      ],
    };
    // Create a promise on an EC2 service object
    var tagPromise = new AWS.EC2({ apiVersion: "2016-11-15" })
      .createTags(tagParams)
      .promise();
    // Handle promise's fulfilled/rejected states
    tagPromise
      .then(function (data) {
        console.log("Instance tagged");
      })
      .catch(function (err) {
        console.error(err, err.stack);
      });
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

要运行示例，请在命令行中键入以下内容。

```
node ec2_createinstances.js
```

此示例代码可在 [GitHub 上的此处](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ec2/ec2_createinstances.js)找到。