Skip to content

Commit 44f69bb

Browse files
committed
ok
1 parent 2f9cefe commit 44f69bb

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

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

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,33 @@ static async Task<SQSBatchResponse> Handler(SQSEvent ev, ILambdaContext context)
9595
if (string.IsNullOrEmpty(message.Body))
9696
throw new Exception("No Body in SQS Message.");
9797
context.Logger.LogInformation($"Received message {message.Body}");
98-
var s3Event = JsonSerializer.Deserialize<S3Event>(message.Body, LinkIndexUpdaterEventSerializerContext.Default.S3Event);
98+
99+
S3Event? s3Event;
100+
101+
try
102+
{
103+
s3Event = JsonSerializer.Deserialize<S3Event>(message.Body, LinkIndexUpdaterEventSerializerContext.Default.S3Event);
104+
}
105+
catch (JsonSerializerException ex)
106+
{
107+
context.Logger.LogError(ex, "Failed to deserialize S3 event");
108+
throw new Exception("Failed to deserialize S3 event", ex);
109+
}
110+
catch (Exception ex)
111+
{
112+
context.Logger.LogError(ex, "Failed to deserialize S3 event");
113+
throw new Exception("Failed to deserialize S3 event", ex);
114+
}
115+
116+
99117
if (s3Event?.Records == null || s3Event.Records.Count == 0)
100118
throw new Exception("Invalid S3 event message format");
101119
var linkReferences = new ConcurrentBag<(S3Event.S3EventNotificationRecord, LinkReference)>();
102120
await Parallel.ForEachAsync(s3Event.Records, async (record, ctx) =>
103121
{
104122
var s3Bucket = record.S3.Bucket;
105123
var s3Object = record.S3.Object;
124+
106125
context.Logger.LogInformation($"Get object {s3Object.Key} from bucket {s3Bucket.Name}");
107126
var getObjectResponse = await s3Client.GetObjectAsync(s3Bucket.Name, s3Object.Key, ctx);
108127
await using var stream = getObjectResponse.ResponseStream;

0 commit comments

Comments
 (0)