@@ -5,6 +5,7 @@ import processSnapshot, {prepareSnapshot} from "./processSnapshot.js"
55import { v4 as uuidv4 } from 'uuid' ;
66import { startPolling , stopTunnelHelper , calculateVariantCountFromSnapshot } from "./utils.js" ;
77
8+ const uploadDomToS3ViaEnv = process . env . USE_LAMBDA_INTERNAL || false ;
89export default class Queue {
910 private snapshots : Array < Snapshot > = [ ] ;
1011 private processedSnapshots : Array < Record < string , any > > = [ ] ;
@@ -347,10 +348,16 @@ export default class Queue {
347348 this . ctx . log . info ( `Using cached buildId: ${ capsBuildId } ` ) ;
348349 if ( useKafkaFlowCaps ) {
349350 const snapshotUuid = uuidv4 ( ) ;
350- const presignedResponse = await this . ctx . client . getS3PresignedURLForSnapshotUploadCaps ( this . ctx , processedSnapshot . name , snapshotUuid , capsBuildId , capsProjectToken ) ;
351- const uploadUrl = presignedResponse . data . url ;
352-
353- await this . ctx . client . uploadSnapshotToS3Caps ( this . ctx , uploadUrl , processedSnapshot , capsProjectToken )
351+ let uploadDomToS3 = this . ctx . config . useLambdaInternal || uploadDomToS3ViaEnv ;
352+ if ( ! uploadDomToS3 ) {
353+ this . ctx . log . debug ( `Uploading dom to S3 for snapshot using presigned URL for CAPS` ) ;
354+ const presignedResponse = await this . ctx . client . getS3PresignedURLForSnapshotUploadCaps ( this . ctx , processedSnapshot . name , snapshotUuid , capsBuildId , capsProjectToken ) ;
355+ const uploadUrl = presignedResponse . data . url ;
356+ await this . ctx . client . uploadSnapshotToS3Caps ( this . ctx , uploadUrl , processedSnapshot , capsProjectToken )
357+ } else {
358+ this . ctx . log . debug ( `Uploading dom to S3 for snapshot using LSRS` ) ;
359+ await this . ctx . client . sendDomToLSRSForCaps ( this . ctx , processedSnapshot , snapshotUuid , capsBuildId , capsProjectToken ) ;
360+ }
354361 await this . ctx . client . processSnapshotCaps ( this . ctx , processedSnapshot , snapshotUuid , capsBuildId , capsProjectToken , discoveryErrors ) ;
355362 } else {
356363 await this . ctx . client . uploadSnapshotForCaps ( this . ctx , processedSnapshot , capsBuildId , capsProjectToken , discoveryErrors ) ;
@@ -386,15 +393,22 @@ export default class Queue {
386393 }
387394 if ( this . ctx . build && this . ctx . build . useKafkaFlow ) {
388395 let snapshotUuid = uuidv4 ( ) ;
389-
396+ let snapshotUploadResponse
390397 if ( snapshot ?. options ?. contextId && this . ctx . contextToSnapshotMap ?. has ( snapshot . options . contextId ) ) {
391- snapshotUuid = snapshot . options . contextId ;
392- }
393-
394- const presignedResponse = await this . ctx . client . getS3PresignedURLForSnapshotUpload ( this . ctx , processedSnapshot . name , snapshotUuid ) ;
395- const uploadUrl = presignedResponse . data . url ;
398+ snapshotUuid = snapshot . options . contextId ;
399+ }
400+ let uploadDomToS3 = this . ctx . config . useLambdaInternal || uploadDomToS3ViaEnv ;
401+ if ( ! uploadDomToS3 ) {
402+ this . ctx . log . debug ( `Uploading dom to S3 for snapshot using presigned URL` ) ;
403+ const presignedResponse = await this . ctx . client . getS3PresignedURLForSnapshotUpload ( this . ctx , processedSnapshot . name , snapshotUuid ) ;
404+ const uploadUrl = presignedResponse . data . url ;
405+ snapshotUploadResponse = await this . ctx . client . uploadSnapshotToS3 ( this . ctx , uploadUrl , processedSnapshot ) ;
406+ } else {
407+ this . ctx . log . debug ( `Uploading dom to S3 for snapshot using LSRS` ) ;
408+ snapshotUploadResponse = await this . ctx . client . sendDomToLSRS ( this . ctx , processedSnapshot , snapshotUuid ) ;
409+ }
410+
396411
397- let snapshotUploadResponse = await this . ctx . client . uploadSnapshotToS3 ( this . ctx , uploadUrl , processedSnapshot ) ;
398412 if ( ! snapshotUploadResponse || Object . keys ( snapshotUploadResponse ) . length === 0 ) {
399413 this . ctx . log . debug ( `snapshot failed; Unable to upload dom to S3` ) ;
400414 this . processedSnapshots . push ( { name : snapshot ?. name , error : `snapshot failed; Unable to upload dom to S3` } ) ;
0 commit comments