由SQS触发的AWS Lambda-无并发执行

时间:2019-11-22 16:45:42

标签: amazon-web-services concurrency aws-lambda amazon-sqs

我有一个Lambda函数,该函数使用SQS队列作为事件源。

EventQueue:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: EventQueue
      VisibilityTimeout: 60
      RedrivePolicy:
        deadLetterTargetArn:
          Fn::GetAtt:
            - "ErrorQueue"
            - "Arn"
        maxReceiveCount: 3 

  MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: MyFunction
      CodeUri: MyFunction/
      Handler: app.my_function_handler
      Timeout: 60
      Role: !GetAtt QueueFullExecIamRole.Arn
      Runtime: python3.7
      Events:
        MessageInQueue:
          Type: SQS
          Properties:
            Queue: !GetAtt EventQueue.Arn
            BatchSize: 1

并发设置为Use unreserved account concurrency,当前将其设置为默认值1000

基于此documentation和此documentation,我希望,如果队列中充满了消息,那么Lambda运行时将开始扩展我函数的并发实例以处理来自队列的消息

不幸的是,基于我的Lambda应用程序监视仪表板中的图表,事实并非如此。不过,我仍然可以在SQS队列中看到3000多个消息。

enter image description here

这是我的AWS账户中运行的唯一应用程序,因此,我很确定自己没有使用并发限制。

我缺少什么,更重要的是如何获取lambda运行时来启动函数的并发实例?

0 个答案:

没有答案