AWS Lambda(二)---创建一个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上传了一个图片,而引发的各种监控变化。

发布了140 篇原创文章 · 获赞 80 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/daiqinge/article/details/103300293