Как создать новую конечную точку http шлюза API из терминала одной командой - PullRequest
0 голосов
/ 22 октября 2018

Я бы хотел иметь возможность развертывать новые конечные точки для моего API из командной строки, в идеале с помощью одного сценария npm.

Зависание состоит в том, что сначала вам нужно использовать create-resource для предоставления родительского элементаid, а затем put-method с предоставлением идентификатора, возвращенного из create-resource.

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

Есть ли способ обойти это?До сих пор я использую сценарии npm исключительно для получения лямбд, что было довольно приятно.

1 Ответ

0 голосов
/ 25 октября 2018

В вашем package.json скрипт может указывать на файл JavaScript.Файл, в свою очередь, может содержать более надежный сценарий.

"scripts": {
  "createEndpoint": "node ./myscript.js"
}

Чтобы сделать все это в одной команде / сценарии, вам может понадобиться посмотреть, как обрабатывать аргументы, в которых этот вопрос / ответ говорит о том, как он работает https://stackoverflow.com/a/14404223/10555693. Кроме того, документы NodeJS для argv NodeJS: process.argv

Более надежный сценарий может использовать JS AWS SDK , принимать аргументы,и создайте ресурс, метод и развертывание.

Некоторые конкретные ссылки на методы, которые могут оказаться полезными:

Пример (только начало):

const AWS = require('aws-sdk');

async function createEndPoint() {
  const apiGateway = new AWS.APIGateway();

  const resourceParams = {
    parentId: '',
    pathPart: '',
    restApiId: '',
  };

  const newResource = await apiGateway.createResource(resourceParams).promise();

  const methodParams = {
    resourceId: newResource.id,
    . /* other params */
    .
    .
  };

  const newMethod = await apiGateway.putMethod(methodParams);
}

createEndPoint();
...