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

Надеюсь, это поможет!

Другие вопросы по тегам