Swagger定义的API无法在无服务器框架上本地执行

时间:2019-03-05 05:54:39

标签: serverless-framework serverless

当用resources而不是functions用草率格式描述serverless.yml的api规范时,API不能在本地执行。

  1. serverless.yml的API规范在resources中以张扬的格式进行了描述

serverless.yml在下面。

functions:                                                                                                                                   
    test:                                                                                                                                      
      handler: test.test                                                                                                                      

resources:                                                                                                                                   
  Resources:                                                                                                                                 
    RestApi :                                                                                                                                
      Type : AWS::ApiGateway::RestApi                                                                                                        
      Properties :                                                                                                                           
        Body : ${file(./swagger.yaml)}

sls offline的结果没有用于测试API的路由。

Serverless: Starting Offline: dev/ap-northeast-1.

Serverless: Routes for test:
Serverless: (none)

Serverless: Offline listening on http://localhost:3000
  1. serverless.yml的API规范在functions中以醒目的格式描述 serverless.yml在下面。
functions:
  test:
    handler: test.test
    events:
      - http: GET test

#resources:
#  Resources:
#    RestApi :
#      Type : AWS::ApiGateway::RestApi
#      Properties :
#        Body : ${file(./swagger.yaml)}

sls offline的结果具有用于测试API的路由。

Serverless: Starting Offline: dev/ap-northeast-1.

Serverless: Routes for test:
Serverless: GET /test

Serverless: Offline listening on http://localhost:3000

我想通过在资源中以醒目的格式描述规范来在本地运行API。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

serverless-offline插件了解无服务器格局,但不了解自定义AWS资源。由于无服务器是抽象层,因此将来也不太可能。

也许aws-sam-cli会更适合您的应用程序。似乎支持swagger文档和本地环境。