diff --git a/docs-builder.slnx b/docs-builder.slnx index acbab48b36..5704389aeb 100644 --- a/docs-builder.slnx +++ b/docs-builder.slnx @@ -65,7 +65,8 @@ - + + diff --git a/src/infra/docs-lambda-changelog-scrubber/Program.cs b/src/infra/docs-lambda-changelog-scrubber/Program.cs index 5da56e5125..58370a8bc3 100644 --- a/src/infra/docs-lambda-changelog-scrubber/Program.cs +++ b/src/infra/docs-lambda-changelog-scrubber/Program.cs @@ -43,7 +43,17 @@ IReadOnlyList BuildAllowlist() async Task Handler(SQSEvent ev, ILambdaContext context) { - using var s3Client = new AmazonS3Client(); + var region = Amazon.RegionEndpoint.GetBySystemName( + Environment.GetEnvironmentVariable("AWS_REGION") ?? "us-east-1"); + var credentials = new Amazon.Runtime.EnvironmentVariablesAWSCredentials(); + + using var s3Client = new AmazonS3Client(credentials, new AmazonS3Config + { + RegionEndpoint = region, + Timeout = TimeSpan.FromSeconds(10), + MaxErrorRetry = 2 + }); + var batchItemFailures = new List(); foreach (var message in ev.Records) @@ -91,6 +101,7 @@ async Task Handler(SQSEvent ev, ILambdaContext context) async Task DeleteFromPublicBucket(IAmazonS3 s3Client, string key, ILambdaContext context) { + context.Logger.LogDebug($"Removing {key} from the public bucket", key); try { _ = await s3Client.DeleteObjectAsync(new DeleteObjectRequest @@ -108,6 +119,8 @@ async Task DeleteFromPublicBucket(IAmazonS3 s3Client, string key, ILambdaContext async Task ScrubAndCopyToPublicBucket(IAmazonS3 s3Client, string sourceBucket, string key, ILambdaContext context) { + context.Logger.LogDebug("Scrubbing {Key} to public bucket", key); + var fileName = Path.GetFileName(key); if (string.Equals(fileName, "registry-index.json", StringComparison.OrdinalIgnoreCase)) { @@ -128,6 +141,7 @@ async Task ScrubAndCopyToPublicBucket(IAmazonS3 s3Client, string sourceBucket, s return; } + context.Logger.LogInformation("Getting {Key} from private bucket", key); var getResponse = await s3Client.GetObjectAsync(new GetObjectRequest { BucketName = sourceBucket, @@ -138,8 +152,10 @@ async Task ScrubAndCopyToPublicBucket(IAmazonS3 s3Client, string sourceBucket, s using (var reader = new StreamReader(getResponse.ResponseStream)) content = await reader.ReadToEndAsync(); + context.Logger.LogInformation("Performing scrub pass for {Key}", key); var scrubbed = await ScrubContent(key, content, context); + context.Logger.LogInformation("Putting scrubbed {Key} on public bucket", key); _ = await s3Client.PutObjectAsync(new PutObjectRequest { BucketName = publicBucketName,