使用 localstack SQS 作为无服务器离线 lambda 的事件源

问题描述 投票:0回答:1

在无服务器离线状态下有一个 node.js lambda,我想使用 localstack SQS 作为事件源来调用它。

我从这里获取了 localstack 版本:
https://github.com/localstack/localstack

并将其部署到我的码头工人

docker 组成-d

容器运行完美,我可以使用 AWS CLI 与 SQS 服务交互。

在我的 serverless.yaml 中,我包含了

serverless-localstack
插件并按如下方式配置它:

app: my-app
service: my-service

frameworkVersion: "3"

provider:
  name: aws
  runtime: nodejs18.x
  stage: api
  region: us-east-1

functions:
  update:
    handler: src/handler.update
    events:
      - sqs:
          arn:
            Fn::GetAtt:
              - myQueue:
              - Arn

plugins:
  - serverless-localstack
  - serverless-dotenv-plugin
  - serverless-offline
  - serverless-webpack

custom:
  localstack:
    host: http://localhost
    edgePort: 4566
    stages:
      - api
  serverless-offline:
    lambdaPort: 3001
    httpPort: 3000
  dotenv:
    path: .env.development

resources:
  Resources:
    myQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: my-queue

我让处理程序在调用时打印日志,但即使此队列中有消息,处理程序也不会被调用。
我正在使用

sls offline
运行我的函数。

我做错了什么?

node.js aws-lambda amazon-sqs serverless localstack
1个回答
0
投票

嗨 - LocalStack Serverless Plugin 目前不支持此类设置。该插件启动 LocalStack 容器并将 LocalStack 设置为无服务器框架使用的 SDK 客户端的端点。它不考虑用户是否使用Serverless Offline插件。除此之外,无服务器插件创建了另一个额外的层来模拟 Lambas 和 API 网关,它们不与 LocalStack 通信。

© www.soinside.com 2019 - 2024. All rights reserved.