0

在我的 sls 项目中,我使用本文设置 sqs 离线使用,如下所示。

  1. npm 安装 serverless-offline-sqs 作为开发依赖
  2. 在 serverless.ts 插件部分的 serverless-offline 之后包含 serverless-offline-sqs
  3. 为队列添加了自定义配置,
"serverless-offline-sqs": {
      autoCreate: true,
      apiVersion: "2012-11-05",
      endpoint: "http://localhost:9324",
      region: "us-east-1",
      accessKeyId: "root",
      secretAccessKey: "root",
      skipCacheInvalidation: false,
    },
  1. serverless.ts 资源部分中包含的队列资源:
FooQueue: {
      Type: "AWS::SQS::Queue",
      Properties: {
        QueueName: "foo.fifo",
        FifoQueue: true,
        VisibilityTimeout: 60,
        MessageRetentionPeriod: 345600,
      },
    },
  1. 运行 ElasticMQ 泊坞窗
docker run -p 9324:9324 -p 9325:9325 softwaremill/elasticmq-native
  1. 启动 serverless 离线sls 离线启动

尝试列出队列,不显示 fifo.queue。想知道为什么 autoCreate 没有创建队列。列出队列动作 curl 响应:

curl "http://localhost:9324?Action=ListQueues"
<ListQueuesResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
                <ListQueuesResult>
                  
                </ListQueuesResult>
                <ResponseMetadata>
                  <RequestId>00000000-0000-0000-0000-000000000000</RequestId>
                </ResponseMetadata>
              </ListQueuesResponse>%   

想知道为离线模式自动创建队列我缺少什么?离线启动显示“离线:启动离线 SQS:dev/us-east-1”。信息。

版本:

"serverless-offline-sqs": "^6.0.0",
"serverless-offline": "^8.1.0",
4

1 回答 1

0

弄清楚了。插件没什么问题。虽然我为 SQS 事件添加了 lambda 函数处理程序,但我忘记在“函数”资源下的 serverless.ts 中包含该函数。将其包括在函数中按预期自动创建队列。

于 2021-12-15T18:03:31.710 回答