我们在AWS中具有以下组件,
1。 B1 -S3桶,带有向L1 Lambda的S3事件通知
2。 L1-具有并发的主Lambda-5
3。 DLQ-SQS用于处理L1处的错误
4。 L2-DLQ Lambda到来自DLQ(SQS)的消费者消息。
当我们将文件放入 B1(S3存储桶)时,S3事件触发 L1(主Lambda)并完成工作。如果出现错误并重试,则将S3事件移至 DLQ(SQS),随后由 L2(DLQ Lambda)消耗并在那里处理。
但是目前,当我们将4K文件放入 B1(S3存储桶)时,我们看不到 L1(主Lambda)中的任何内容,但仍然看到由 L2(DLQ Lambda)消耗的DLQ(SQS)邮件,其“超出费率” ,状态码为 429 。>
在我们发现这些错误时,没有来自CloudWatch日志中的 L1(主Lambda)的跟踪信息(此处看不到S3 Event生成的 requestID 的任何内容)。由于我们为 L1(主Lambda)配置了并发5 ,因此我们并不期望“超出费率”。
感谢您为解决此问题提供的任何帮助。
[2019-05-29 20:56:02.746] fd65e055-731d-58fa-adcf-b53d8702bb69 DEBUG c.o.p.f.c.d.h.DLQCommonHandler -
{
"Records": [
{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-east-1",
"eventTime": "2019-05-29T14:56:00.333Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:<principalId>"
},
"requestParameters": {
"sourceIPAddress": "<sourceIPAddress>"
},
"responseElements": {
"x-amz-request-id": "<amz-request-id>",
"x-amz-id-2": "k5frqVgROM738Pxq1FF85GMuvQpNofU0d+bWVc45lcLWVb80h0rNpNAkBSyAff0w="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "<configurationId>",
"bucket": {
"name": "<bucket_name>",
"ownerIdentity": {
"principalId": "<principalId>"
},
"arn": "arn:aws:s3:::<bucket_name>"
},
"object": {
"key": "<file_path.csv>",
"size": 29595,
"eTag": "<eTag>",
"versionId": "3sCWDByjIL9DSKtO9zeKtL_l.7_OgH0X",
"sequencer": "005CEE9D803C09A82E"
}
}
}
]
}
[2019-05-29 20:56:02.746] fd65e055-731d-58fa-adcf-b53d8702bb69 INFO c.o.p.f.c.d.h.DLQCommonHandler-messageAttributeMap: {RequestID = {stringValue: 287b5de3-f1f9-468b-92bc-c6333a0c41eb,stringList值: [],binaryListValues:[],数据类型:String},ErrorCode = {stringValue: 429 ,stringListValues:[],binaryListValues:[],dataType: Number},ErrorMessage = {stringValue:费率 超过。,stringListValues:[],binaryListValues:[],dataType: 字符串}}