Amazon web services 从s3事件触发器获取Lambda中的输入
一旦我在s3存储桶中得到任何文件,我就试图触发Lambda。为此,我在s3存储桶中配置了事件。但是,我需要为将被触发的Lambda(事件)提供一个输入。如何做到这一点?向项目中添加一个新的Lambda函数处理程序。创建一个新的函数处理程序名称,比如“S3FunctionHandler”;使用已选择的默认输入类型S3事件;将输出类型保留为object: 这将使用Lambda函数处理程序创建一些样板代码,该函数处理程序将S3事件作为输入: 选择S3FunctionHandler并选择IAM角色: 切换到AWS管理控制台,用一个虚拟S3事件测试Lambda功能。我们需要对其进行测试,因此为了实现这一点,让我们配置一个测试事件。选择S3 Put事件,通过单击Actions选项卡可以找到该事件。这模拟某人将新对象上载到S3存储桶。Amazon web services 从s3事件触发器获取Lambda中的输入,amazon-web-services,events,amazon-s3,aws-lambda,Amazon Web Services,Events,Amazon S3,Aws Lambda,一旦我在s3存储桶中得到任何文件,我就试图触发Lambda。为此,我在s3存储桶中配置了事件。但是,我需要为将被触发的Lambda(事件)提供一个输入。如何做到这一点?向项目中添加一个新的Lambda函数处理程序。创建一个新的函数处理程序名称,比如“S3FunctionHandler”;使用已选择的默认输入类型S3事件;将输出类型保留为object: 这将使用Lambda函数处理程序创建一些样板代码,该函数处理程序将S3事件作为输入: 选择S3FunctionHandler并选择IAM角色:
如果将Amazon S3事件配置为触发AWS Lambda函数,则S3将向Lambda函数提供有关触发该函数的S3对象的信息 发件人:
这些信息包括Bucket名称、对象的键(文件名)、触发函数的事件以及各种其他信息。然后Lambda函数可以使用此信息适当地处理对象。您所说的“向将被触发的Lambda(事件)提供输入”是什么意思?@JohnRotenstein我希望Lambda接收来自s3的输入。
{
"Records": [
{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-east-2",
"eventTime": "2019-09-03T19:37:27.192Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:AIDAINPONIXQXHT3IKHL2"
},
"requestParameters": {
"sourceIPAddress": "205.255.255.255"
},
"responseElements": {
"x-amz-request-id": "D82B88E5F771F645",
"x-amz-id-2": "vlR7PnpV2Ce81l0PRw6jlUpck7Jo5ZsQjryTjKlc5aLWGVHPZLj5NeC6qMa0emYBDXOo6QBU0Wo="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "828aa6fc-f7b5-4305-8584-487c791949c1",
"bucket": {
"name": "my-bucket",
"ownerIdentity": {
"principalId": "A3I5XTEXAMAI3E"
},
"arn": "arn:aws:s3:::my-bucket"
},
"object": {
"key": "foo.jpg",
"size": 1305107,
"eTag": "b21b84d653bb07b05b1e6b33684dc11b",
"sequencer": "0C0F6F405D6ED209E1"
}
}
}
]
}