在以下代码中,“事件”和“上下文”自变量指的是什么?
module.exports.convertTime = (event, context, callback) => {
const response = {
statusCode: statusCode,
body: JSON.stringify({
message: `${convertedTime}`
})
}
callback(null, response);
}
答案 0 :(得分:2)
Event
代表引起lambda调用的事件或触发器。例如,如果您的lambda是由上传到S3触发的,则其中将包含有关正在上传的对象的信息,例如:
{
"Records": [
{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "HappyFace.jpg",
"size": 1024
},
"bucket": {
"arn": bucketarn,
"name": "sourcebucket",
"ownerIdentity": {
"principalId": "EXAMPLE"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "EXAMPLE123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"eventSource": "aws:s3"
}
]
}
有关事件的详细信息和更多示例,请参见HERE
Context
提供有关lambda的调用,函数和执行环境的信息。因此,您可以使用它来检查内存分配或检索执行超时之前剩余的毫秒数。可以找到详细的文档HERE
答案 1 :(得分:1)
Lambda运行函数时,它将上下文对象传递给处理程序。该对象提供的方法和属性提供有关调用,函数和执行环境的信息。
事件(和args)在here中进行了描述。
为了简单起见,请将事件视为常规函数的输入。上下文是AWS提供的额外输入,可为您提供各种元上下文等。
答案 2 :(得分:1)
事件参数带有该函数的输入参数,并且采用JSON语法。
例如,我们可以访问在 event 中通过以下方式传递的url的查询字符串中存储为key:value对的变量:
event.queryStringParameters.time
对于https://fakename.execute-api.us-east-1.amazonaws.com/dev/convertTime?time=2:55:55AM的POST请求:
curl -X POST -H "x-api-key: FAKEAPIKEY23423402394" https://fakename.execute-api.us-east-1.amazonaws.com/dev/convertTime?time=2:55:55AM
event.queryStringParameters.time等于“ 2:55:55 AM”,我们可以在lambda函数的其余部分中使用该信息来做我们希望做的事情。
上下文参数提供了方法和属性,这些方法和属性提供了有关调用,函数和执行环境的信息。
“ Lambda运行您的函数时,它将一个上下文对象传递给处理程序。此对象提供方法和属性,这些方法和属性提供有关调用,函数和执行环境的信息。
上下文方法
getRemainingTimeInMillis()–返回执行超时之前剩余的毫秒数。
上下文属性
functionName – Lambda函数的名称。 functionVersion –函数的版本。 invokedFunctionArn –用于调用功能的亚马逊资源名称(ARN)。指示调用者是否指定了版本号或别名。
memoryLimitInMB –在功能上配置的内存量。 ...”