AWS Lamda(二)---创建一个S3触发事件的lamda
1. 新建一个lamda函数
参考https://mp.csdn.net/postedit/103283484新建一个lamda function
(1)function code区域的代码写为:
import json
print("STARTING NEW INVOCATION!!!")
def lambda_handler(event, context):
# Setting variables to equal values from the event object passed in.
bucket = event['Records'][0]['s3']['bucket']['name']
region = event['Records'][0]['awsRegion']
object = event['Records'][0]['s3']['object']['key']
user = event['Records'][0]['userIdentity']['principalId']
print("Bucket: " + bucket)
print("Region: " + region)
print("User is " + user)
return(object)
(2)测试代码写为:
{
"Records": [
{
"eventVersion": "2.0",
"eventTime": "2018-04-01T12:34:56.789Z",
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "TESTEVENT.jpg",
"size": 2048
},
"bucket": {
"arn": "arn:aws:s3:::lulz-its-a-bucket",
"name": "lulz-its-a-bucket",
"ownerIdentity": {
"principalId": "TESTbucketOwner"
}
},
"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": "TEST_USER"
},
"eventSource": "aws:s3"
}
]
}
2. designer区域新建S3
前提是S3已经新建了一个bucket了。然后在lamda的designer区域,点击add trigger按钮,选择S3组件:
3. 然后去s3的页面,选择相应的bucket,上传随便一个什么文件,比如一个图片。
4. 回到lamda页面,点击刚才创建的function进入function页面,选择monitoring标签,看到因为s3上传了一个图片,而引发的各种监控变化。