Skip to content

Commit d2d6755

Browse files
committed
fix
1 parent 78be291 commit d2d6755

File tree

1 file changed

+36
-12
lines changed

1 file changed

+36
-12
lines changed

src/infra/docs-lambda-index-publisher/Program.cs

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,37 @@
3030
// await CreateLinkIndex(new AmazonS3Client());
3131

3232
#pragma warning disable CS8321 // Local function is declared but never used
33-
static async Task<string> Handler(SQSEvent ev, ILambdaContext context)
33+
static async Task<SQSBatchResponse> Handler(SQSEvent evnt, ILambdaContext context)
3434
#pragma warning restore CS8321 // Local function is declared but never used
3535
{
36+
var batchItemFailures = new List<SQSBatchResponse.BatchItemFailure>();
37+
foreach(var message in evnt.Records)
38+
{
39+
try
40+
{
41+
//process your message
42+
await ProcessMessageAsync(message, context);
43+
}
44+
catch (Exception)
45+
{
46+
//Add failed message identifier to the batchItemFailures list
47+
batchItemFailures.Add(new SQSBatchResponse.BatchItemFailure{ItemIdentifier=message.MessageId});
48+
}
49+
}
50+
return new SQSBatchResponse(batchItemFailures);
3651
// const int maxRetries = 3;
3752
// var retryCount = 0;
3853

3954
// var sw = Stopwatch.StartNew();
40-
await Task.Delay(100);
41-
foreach (var record in ev.Records)
42-
{
43-
context.Logger.LogInformation($"Received message: {record.Body}");
44-
45-
// Delete the message from the queue
46-
var sqsClient = new AmazonSQSClient();
47-
var deleteMessageRequest = new DeleteMessageRequest(record.EventSourceArn, record.ReceiptHandle);
48-
_ = await sqsClient.DeleteMessageAsync(deleteMessageRequest);
49-
}
50-
return "Done";
55+
// await Task.Delay(100);
56+
// foreach (var record in ev.Records)
57+
// {
58+
// context.Logger.LogInformation($"Received message: {record.Body}");
59+
//
60+
// // Delete the message from the queue
61+
// var sqsClient = new AmazonSQSClient();
62+
//
63+
// }
5164

5265
// while (true)
5366
// {
@@ -102,6 +115,17 @@ static async Task<string> Handler(SQSEvent ev, ILambdaContext context)
102115
// }
103116
}
104117

118+
static async Task ProcessMessageAsync(SQSEvent.SQSMessage message, ILambdaContext context)
119+
{
120+
if (string.IsNullOrEmpty(message.Body))
121+
{
122+
throw new Exception("No Body in SQS Message.");
123+
}
124+
context.Logger.LogInformation($"Processed message {message.Body}");
125+
// TODO: Do interesting work based on the new message
126+
await Task.CompletedTask;
127+
}
128+
105129
// static async Task<LinkIndex?> CreateLinkIndex(IAmazonS3 s3Client)
106130
// {
107131
// var request = new ListObjectsV2Request

0 commit comments

Comments
 (0)