diff --git a/backend/app/AppComponents.scala b/backend/app/AppComponents.scala index 247f7c14..a0037d93 100644 --- a/backend/app/AppComponents.scala +++ b/backend/app/AppComponents.scala @@ -1,6 +1,7 @@ import org.apache.pekko.actor.{ActorSystem, CoordinatedShutdown} import org.apache.pekko.actor.CoordinatedShutdown.Reason import cats.syntax.either._ +import com.amazonaws.client.builder.AwsClientBuilder import com.amazonaws.services.sqs.{AmazonSQSClient, AmazonSQSClientBuilder} import com.gu.pandomainauth import com.gu.pandomainauth.PublicSettings @@ -75,7 +76,11 @@ class AppComponents(context: Context, config: Config) val ingestionExecutionContext = actorSystem.dispatchers.lookup("ingestion-context") val s3Client = new S3Client(config.s3)(s3ExecutionContext) - val sqsClient = AmazonSQSClientBuilder.standard().withRegion(config.sqs.region).build() + + val sqsClient = if (config.sqs.endpoint.isDefined) + AmazonSQSClientBuilder.standard().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(config.sqs.endpoint.get, config.sqs.region)).build() + else + AmazonSQSClientBuilder.standard().withRegion(config.sqs.region).build() val workerName = config.worker.name.getOrElse(InetAddress.getLocalHost.getHostName) diff --git a/backend/app/services/Config.scala b/backend/app/services/Config.scala index 392e757d..5f91445c 100644 --- a/backend/app/services/Config.scala +++ b/backend/app/services/Config.scala @@ -158,7 +158,8 @@ case class S3Config( ) case class SQSConfig( - region: String + region: String, + endpoint: Option[String] ) case class BucketConfig( diff --git a/backend/app/utils/AwsDiscovery.scala b/backend/app/utils/AwsDiscovery.scala index 41d8bed4..13ccffbd 100644 --- a/backend/app/utils/AwsDiscovery.scala +++ b/backend/app/utils/AwsDiscovery.scala @@ -78,6 +78,7 @@ object AwsDiscovery extends Logging { transcriptionOutputQueueUrl = readSSMParameter("transcribe/transcriptionOutputQueueUrl", stack, stage, ssmClient), transcriptionServiceQueueUrl = readSSMParameter("transcribe/transcriptionServiceQueueUrl", stack, stage, ssmClient) ), + sqs = config.sqs.copy(endpoint = None), underlying = config.underlying .withValue("play.http.secret.key", fromAnyRef(readSSMParameter("pfi/playSecret", stack, stage, ssmClient))) .withValue("pekko.actor.provider", fromAnyRef("local")) // disable Pekko clustering, we query EC2 directly diff --git a/backend/conf/application.conf b/backend/conf/application.conf index 75cfc308..8035760e 100644 --- a/backend/conf/application.conf +++ b/backend/conf/application.conf @@ -207,12 +207,13 @@ ocr { transcribe { whisperModelFilename = "ggml-base.bin" - transcriptionServiceQueueUrl = "http://sqs.eu-west-1.localhost.localstack.cloud:4566/000000000000/transcription-service-task-queue-DEV.fifo" - transcriptionOutputQueueUrl = "http://sqs.eu-west-1.localhost.localstack.cloud:4566/000000000000/giant-output-queue-DEV.fifo" + transcriptionServiceQueueUrl = "http://localhost:4566/000000000000/transcription-service-task-queue-DEV.fifo" + transcriptionOutputQueueUrl = "http://localhost:4566/000000000000/giant-output-queue-DEV.fifo" } sqs { - region = "eu-west-1" + region = "eu-west-1", + endpoint = "http://localhost:4566" } # This will overwrite some settings from above