2

是否可以仅通过 API 调用将 AWS Marketplace 中的免费产品部署到 AWS 实例上?

我已经有一段 Node.js 代码允许我启动/停止 AWS 实例,但我想进一步自动化它以添加来自市场的产品。

4

1 回答 1

1

AWS EC2 API 允许您启动一个实例并指定您希望使用的 AMI(Amazon 系统映像)。事实上,我相信它需要它,因为操作系统本身来自 AMI,如果不指定 AMI,它就不会知道你想要什么操作系统。此外,还有一些 AMI(正如您在 Marketplace 中看到的那样),不仅包括操作系统应用程序、各种环境等。

我不是 Node 开发人员,但看起来,在 Node.js 中,您可以通过在 runInstances 方法的参数中提供 AMI ID# 来指定 AMI。

请参阅以下示例:
http ://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html

var ec2 = new AWS.EC2();

var params = {
  ImageId: 'ami-1624987f', // Amazon Linux AMI x86_64 EBS
  InstanceType: 't1.micro',
  MinCount: 1, MaxCount: 1
};

// Create the instance
ec2.runInstances(params, function(err, data) {
  if (err) { console.log("Could not create instance", err); return; }

  var instanceId = data.Instances[0].InstanceId;
  console.log("Created instance", instanceId);

  // Add tags to the instance
  params = {Resources: [instanceId], Tags: [
    {Key: 'Name', Value: 'instanceName'}
  ]};
  ec2.createTags(params, function(err) {
    console.log("Tagging instance", err ? "failure" : "success");
  });
});

注意使用 ImageId 和 InstanceType 创建的参数 Object。我想两者都可能是必需的元素。使用此代码,您显然需要对 AMI ID 进行硬编码,但随后您将能够自动启动新实例。

您可以在此处的 Javascript API 中找到更多信息:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html

我希望这会有所帮助!

于 2016-03-11T18:14:11.670 回答