通过 API 的 AWS Marketplace

AWS Marketplace via an API

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

我已经有一段 Node.js 代码允许我 start/stop 一个 AWS 实例,但我想进一步自动化它以从市场添加产品。

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

我不是 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 创建的参数对象。我想两者都可能是必需的元素。使用此代码,您显然需要对 AMI ID 进行硬编码,但随后您将能够自动启动新实例。

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

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

希望对您有所帮助!