2016-03-02 54 views
2

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

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

+0

我假设您指的是AMI Marketplace?是的,您可以在启动新实例时提供AMI ID#。 – Brooks

+0

对于迟到的回复感到抱歉 - 但是我在找什么方法? – Tamas

+0

是您对AMI市场的原始问题吗? – Brooks

回答

1

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

我不是Node开发人员,但看起来像Node。 js,您可以通过将参数中的AMI ID#提供给runInstances方法来指定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"); 
    }); 
}); 

注意的参数对象与两个图像标识和InstanceType创建。我想可能都是必需的元素。使用此代码,您显然需要对AMI ID进行硬编码,但是您可以自动启动新实例。

可以JavaScript API中找到更多的信息,在这里:

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

我希望帮助!

+0

完美,谢谢! – Tamas