Merge pull request #6033 from erik-krogh/serverlessLib

Approved by asgerf
This commit is contained in:
CodeQL CI
2021-06-08 01:44:40 -07:00
committed by GitHub
7 changed files with 70 additions and 2 deletions

View File

@@ -1,13 +1,13 @@
/**
* Provides classes and predicates for working with serverless handlers.
* E.g. AWS: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html
* E.g. [AWS](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html) or [serverless](https://npmjs.com/package/serverless)
*/
import javascript
/**
* Provides classes and predicates for working with serverless handlers.
* In particular a `RemoteFlowSource` is added for AWS and Alibaba serverless.
* In particular a `RemoteFlowSource` is added for AWS, Alibaba, and serverless.
*/
private module ServerLess {
/**
@@ -24,6 +24,14 @@ private module ServerLess {
then codeURI = properties.lookup("CodeUri").(YAMLScalar).getValue()
else codeURI = ""
)
or
// The `serverless` library, which specifies a top-level `functions` property
exists(YAMLMapping functions |
functions = resource.lookup("functions") and
not exists(resource.getParentNode()) and
handler = functions.getValue(_).(YAMLMapping).lookup("handler").(YAMLScalar).getValue() and
codeURI = ""
)
)
}

View File

@@ -3,3 +3,5 @@
| tst3/function/index.js:1:36:1:40 | event |
| tst4/app.js:1:36:1:40 | event |
| tst5/app.js:1:36:1:40 | event |
| tst6/handler.js:6:23:6:36 | req.query.name |
| tst7/handler.js:1:34:1:38 | event |

View File

@@ -0,0 +1,9 @@
const serverless = require("serverless-http");
const express = require("express");
const app = express();
app.get("/", (req, res, next) => {
res.send("Hello " + req.query.name);
});
module.exports.handler = serverless(app);

View File

@@ -0,0 +1,16 @@
service: aws-node-express-api
frameworkVersion: '2'
provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: '20201221'
functions:
api:
handler: handler.handler
events:
- http:
path: /
method: ANY

View File

@@ -0,0 +1,4 @@
export async function myFunction(event, context, callback) {
const body = JSON.parse(event.body);
// do something
}

View File

@@ -0,0 +1,25 @@
service: serverless-myChecker
plugins:
- serverless-webpack
- serverless-offline
custom:
webpack:
webpackConfig: ./webpack.config.js
includeModules: true
provider:
name: aws
runtime: nodejs12.x
profile: personal
region: eu-west-1
functions:
myChecker:
handler: handler.myFunction
events:
- http:
path: webhook
method: post