如何在一个命令中从终端创建新的API Gateway http端点

时间:2018-10-22 04:39:17

标签: amazon-web-services npm aws-api-gateway

我希望能够从命令行为我的api部署新的端点,最好使用单个npm脚本。

麻烦之处在于,您首先必须使用create-resource提供一个父ID,然后put-method提供从create-resource返回的ID。

这将部署工作分解为一系列我无法串在一起的小步骤,因为我需要这些唯一的ID。

有什么办法解决吗?到目前为止,我仅使用npm脚本来获得lambda,这相当令人愉快。

1 个答案:

答案 0 :(得分:1)

在您的package.json中,脚本可以指向javascript文件。该文件可能包含更强大的脚本。

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

要在一个命令/脚本中完成所有操作,您可能需要查看如何处理此问题/答案https://stackoverflow.com/a/14404223/10555693所涉及的参数。此外,用于argv NodeJS: process.argv

的NodeJS文档

功能更强大的脚本可以利用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();