From c8cb3017a43e036462eef6b6784f5fce55ed557c Mon Sep 17 00:00:00 2001 From: "Michael W. Martin" Date: Mon, 29 Mar 2021 16:37:09 -0700 Subject: [PATCH] autocreating disabled sqs queues --- .../src/sqs-event-definition.js | 16 ++++++++++------ packages/serverless-offline-sqs/src/sqs.js | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/serverless-offline-sqs/src/sqs-event-definition.js b/packages/serverless-offline-sqs/src/sqs-event-definition.js index 2cebaaf8..7fcf11ea 100644 --- a/packages/serverless-offline-sqs/src/sqs-event-definition.js +++ b/packages/serverless-offline-sqs/src/sqs-event-definition.js @@ -12,13 +12,17 @@ class SQSEventDefinition { if (typeof rawSqsEventDefinition === 'string') { queueName = extractQueueNameFromARN(rawSqsEventDefinition); - } else if (typeof rawSqsEventDefinition.arn === 'string') { - queueName = extractQueueNameFromARN(rawSqsEventDefinition.arn); - } else if (typeof rawSqsEventDefinition.queueName === 'string') { - queueName = rawSqsEventDefinition.queueName; - } - this.enabled = isNil(enabled) ? true : enabled; + this.enabled = true; + } else { + if (typeof rawSqsEventDefinition.arn === 'string') { + queueName = extractQueueNameFromARN(rawSqsEventDefinition.arn); + } else if (typeof rawSqsEventDefinition.queueName === 'string') { + queueName = rawSqsEventDefinition.queueName; + } + + this.enabled = isNil(rawSqsEventDefinition.enabled) ? true : enabled; + } this.arn = `arn:aws:sqs:${region}:${accountId}:${queueName}`; this.queueName = queueName; diff --git a/packages/serverless-offline-sqs/src/sqs.js b/packages/serverless-offline-sqs/src/sqs.js index 6bd9b347..a02bbd6b 100644 --- a/packages/serverless-offline-sqs/src/sqs.js +++ b/packages/serverless-offline-sqs/src/sqs.js @@ -60,10 +60,10 @@ class SQS { async _sqsEvent(functionKey, sqsEvent) { const {enabled, arn, queueName, batchSize} = sqsEvent; - if (!enabled) return; - if (this.options.autoCreate) await this._createQueue(sqsEvent); + if (!enabled) return; + const {QueueUrl} = await this.client.getQueueUrl({QueueName: queueName}).promise(); const job = async () => {