Aws lambda Aws lambda代码解释

Aws lambda Aws lambda代码解释,aws-lambda,Aws Lambda,有人能解释一下下面代码的工作原理吗 "def lambda_handlerOut(event, context): if len(event) > 0: success=1 print("length of event outside for--"+str(len(event))) for record in event['Records']: print("len

有人能解释一下下面代码的工作原理吗

"def lambda_handlerOut(event, context):
        if len(event) > 0:  
            success=1
            print("length of event outside for--"+str(len(event)))
            for record in event['Records']: 
                print("length of event--"+str(len(event)))
                bucket=record['s3']['bucket']['name']
                key=record['s3']['object']['key']
                print("Bucket--"+bucket)
                print("File that triggered this event--"+key)
提前谢谢

问候,


Eleena Jose

这是一个接收S3事件的Lambda,例如创建新文件的请求

该方法是标准的Python函数-请查看以了解更多详细信息

事件的结构已经定义,但基本上有一些记录正在被迭代,对于每个记录,bucket和key正在被提取和打印

因此,更详细地说(他们引用的线上方的注释):

编辑

如上所述,
事件
对象中的数据如下所示:

{  
   "Records":[  
      {  
         "eventVersion":"2.0",
         "eventSource":"aws:s3",
         "awsRegion":"us-east-1",
         "eventTime":"1970-01-01T00:00:00.000Z",
         "eventName":"ObjectCreated:Put",
         "userIdentity":{  
            "principalId":"AIDAJDPLRKLG7UEXAMPLE"
         },
         "requestParameters":{  
            "sourceIPAddress":"127.0.0.1"
         },
         "responseElements":{  
            "x-amz-request-id":"C3D13FE58DE4C810",
            "x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"
         },
         "s3":{  
            "s3SchemaVersion":"1.0",
            "configurationId":"testConfigRule",
            "bucket":{  
               "name":"mybucket",
               "ownerIdentity":{  
                  "principalId":"A3NL1KOZZKExample"
               },
               "arn":"arn:aws:s3:::mybucket"
            },
            "object":{  
               "key":"HappyFace.jpg",
               "size":1024,
               "eTag":"d41d8cd98f00b204e9800998ecf8427e",
               "versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko",
               "sequencer":"0055AED6DCD90281E5"
            }
         }
      }
   ]
}
因此,作为一个例子,
bucket=record['s3']['bucket']['name']
首先从留下的数据中获取
s3
记录:

"s3":{  
    "s3SchemaVersion":"1.0",
    "configurationId":"testConfigRule",
    "bucket":{  
        "name":"mybucket",
        "ownerIdentity":{  
            "principalId":"A3NL1KOZZKExample"
         },
         "arn":"arn:aws:s3:::mybucket"
     },
     "object":{  
         "key":"HappyFace.jpg",
         "size":1024,
         "eTag":"d41d8cd98f00b204e9800998ecf8427e",
         "versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko",
         "sequencer":"0055AED6DCD90281E5"
     }
}
从那里,它得到
bucket
节:

"bucket":{  
    "name":"mybucket",
     "ownerIdentity":{  
         "principalId":"A3NL1KOZZKExample"
      },
      "arn":"arn:aws:s3:::mybucket"
}
最后是
名称

"name":"mybucket"
这被分配给变量bucket,稍后打印出来。
键(本例中为文件名)的工作方式相同,但获取
事件的不同部分


现在有意义了吗?

您能用一个s3值示例解释一下这段代码吗?
"name":"mybucket"