是否可以仅通过 API 调用将 AWS Marketplace 中的免费产品部署到 AWS 实例上?
我已经有一段 Node.js 代码允许我启动/停止 AWS 实例,但我想进一步自动化它以添加来自市场的产品。
是否可以仅通过 API 调用将 AWS Marketplace 中的免费产品部署到 AWS 实例上?
我已经有一段 Node.js 代码允许我启动/停止 AWS 实例,但我想进一步自动化它以添加来自市场的产品。
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
我希望这会有所帮助!