AWS Marketplace через API
Можно ли развернуть бесплатный продукт из AWS Marketplace на экземпляре AWS исключительно через вызовы API?
У меня уже есть фрагмент кода Node.js, который позволяет мне запускать / останавливать экземпляр AWS, но я бы хотел еще больше автоматизировать это, чтобы добавить продукт с рынка.
1 ответ
API AWS EC2 позволяет запускать экземпляр и указывать AMI (образ машины Amazon), который вы хотите использовать. На самом деле, я считаю, что это требуется, потому что сама ОС происходит от AMI, и без указания AMI она не будет знать, какую ОС вы хотите. Кроме того, есть AMI (как вы видели на Marketplace), которые включают в себя больше, чем просто ОС-приложения, различные среды и т. Д.
Я не разработчик Node, но, похоже, в Node.js вы можете указать AMI, указав идентификатор AMI ID# в параметрах метода runInstances.
Смотрите пример ниже:
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");
});
});
Обратите внимание на параметры Object, созданные с использованием ImageId и InstanceType. Я предполагаю, что оба, вероятно, обязательные элементы. С этим кодом вам, очевидно, потребуется жестко закодировать AMI ID, однако тогда вы сможете автоматизировать запуск новых экземпляров.
Вы можете найти больше информации в API Javascript, здесь:
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html
Надеюсь, это поможет!