Как запустить экземпляр EC2 и запустить задачу по требованию

Вот способ сделать это с помощью рекурсивной асинхронной функции, ожидающей завершения выборки дочерних элементов, прежде чем возвращать обещание.

Таким образом, мы можем вызвать doSomething, когда все будет сделано.

const tree = {
  url: 'http://www.json-generator.com/api/json/get/cevhxOsZnS',
  children: [{
    url: 'http://www.json-generator.com/api/json/get/cguaPsRxAi'
  }, {
    url: 'http://www.json-generator.com/api/json/get/cguaPsRxAi',
    children: [{
      url: 'http://www.json-generator.com/api/json/get/cfDZdmxnDm'
    }]
  }]
};

function doSomething() {
  console.log("doing something");
}

async function fetchIt(element) {
  if (element.children) {
    await Promise.all(element.children.map(fetchIt));
  }
  return new Promise((resolve) => {
    console.log("fetching " + element.url);
    fetch(element.url).then(res => {
      console.log("done");
      resolve();
    });
  });
}

fetchIt(tree).then(doSomething);

1
задан petezurich 18 January 2019 в 20:24
поделиться

3 ответа

Вы можете использовать Набор конфигурации в шаблоне формирования облака, чтобы определить шаги, на которых вы можете выполнять копии или запускать сценарии или команды при запуске ресурса EC2. Вы даже можете временно запустить его, чтобы он отключился после завершения всех операций.

Затем вы можете использовать скрипт или лямбда-функцию для выполнения стека облачной информации

0
ответ дан Will Evers 18 January 2019 в 20:24
поделиться

Рассматривали ли вы использовать Amazon SageMaker? Легко настроить повторяющиеся учебные задания. Я хотел бы услышать ваши отзывы и ответить на любые вопросы.

0
ответ дан Julien Simon 18 January 2019 в 20:24
поделиться

Я бы выбрал самое простое решение, так как это не такая сложная задача (с архитектурной точки зрения).

Сконфигурируйте событие S3 для сегмента, в котором вы храните новый большой трехмерный массив, для запуска лямбда-функции после помещения объекта в блок (вы можете быть более детализированным и запускать его на основе префикса, если вы хранение всех / разных данных в одной корзине).

Внутри этой лямбда-функции вы просто запускаете новый экземпляр EC2 и передаете ему скрипт user data, который загрузит необходимые файлы и запустит задачу (это можно сделать с помощью boto3 для Python).

Использование CloudFormation в этом случае было бы излишним (мое мнение).

0
ответ дан Matus Dubrava 18 January 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: