amazon-web-services - 从 s3 事件触发获取 Lambda 中的输入
问题描述
一旦我在 s3 存储桶中获得任何文件,我就会尝试触发 Lambda。为此,我在 s3 存储桶中配置了事件。但是,我需要为将被触发的 Lambda(事件)提供输入。我怎么做?
解决方案
如果将 Amazon S3 事件配置为触发 AWS Lambda 函数,则 S3 将向 Lambda 函数提供有关触发该函数的 S3 对象的信息。
从将 AWS Lambda 与 Amazon S3 结合使用 - AWS Lambda:
{
"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"
}
}
}
]
}
这些信息包括 Bucket 名称、对象的 Key(文件名)、触发函数的事件以及其他各种信息。然后,Lambda 函数可以使用此信息来适当地处理对象。
推荐阅读
- php - 在形式发票 PDF 模板中提及付款条款
- r - 在字符串中点插入换行符,同时尊重单词边界
- dynamics-crm - 如何解决服务活动资源领域的null问题?
- java - 我无法使用 super() 在子类中创建超类的 2 个对象;
- neo4j - Cypher 分页列表查询优化
- java - 如何在我的本地服务器上使用 PDF Embed API 和 IP 地址示例
- python-3.x - 打开 cv caer 安装
- image - 如何在颤动中重命名图像选择器中的图像?
- android - 如何在颤动中调整svg文件的大小
- 3d - Monogame/XNA - 3D - 照明和自己的着色器不适用于命令 GraphicsDevice.DrawUserPrimitives<...>(...)