将端点添加到无服务器CLI生成的功能

时间:2016-03-16 18:29:58

标签: aws-lambda aws-api-gateway serverless-framework

我不熟悉无服务器(www.serverless.com)并学习CLI。

我在为函数创建POST,PUT或DELETE端点时遇到问题。在查看文档时,我使用以下内容创建了一个函数:

sls function create mycomponent/myfunction

这很好用,结果s-function.json有一个' GET'端点自动添加。我想要的是能够添加' PUT',' POST'或者'删除'关于某些功能的终点。

从文档看起来我可以使用端点部署,但我尝试了这个并且它不起作用:

sls endpoint deploy mycomponent/myfunction@myfunction/create~POST 

这个错误说不存在这样的端点名称(我假设因为它不在s-function.json文件中)。

我是否需要手动编写s-function.json文件以包含其他端点,或者有没有办法通过CLI执行此操作?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我刚刚更新s-function.json文件以设置" sls"的方法。功能/端点。

同样适用于设置特定statusCoderequestTemplates等。

这是一个POST函数/端点s-function.json配置文件的示例。

{
  "name": "create",
  "handler": "user/create/handler.handler",
  "timeout": 3,
  "memorySize": 128,
  "custom": {
    "excludePatterns": [],
    "envVars": []
  },
  "endpoints": [
    {
      "path": "user/create",
      "method": "POST",
      "type": "AWS",
      "authorizationType": "none",
      "apiKeyRequired": false,
      "requestParameters": {},
      "requestTemplates": "$${apiRequestTemplate}",
      "responses": {
        "400": {
          "statusCode": "400"
        },
        "default": {
          "statusCode": "201",
          "responseParameters": {},
          "responseModels": {},
          "responseTemplates": {
            "application/json": ""
          }
        }
      }
    }
  ]
}