首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有当消息计数达到SQS中的目标值时,我才能触发lambda吗?

只有当消息计数达到SQS中的目标值时,我才能触发lambda吗?
EN

Stack Overflow用户
提问于 2019-01-08 10:26:34
回答 1查看 998关注 0票数 4

我正在编写AWS来读取来自SQS的消息,然后在过滤后将一些消息保存到S3中。由于80%的消息将被过滤掉,所以我决定为100000条SQS消息编写一次S3。

只有在SQS中的消息达到10000时才有可能触发Lambda吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-08 10:31:15

AWS CloudWatch的帮助下这是可能的。

您可以配置一个AWS CloudWatch警报,一旦您的AlarmAction队列获得100000条可见消息,它就会触发一个"AlarmAction“。如果发生“警报”,您将通知SNS主题,然后触发AWS Lambda。

如果您使用的是AWS CloudFormation,它可能如下所示:

代码语言:javascript
复制
AWSTemplateFormatVersion: 2010-09-09
Resources:
  Queue:
    Type: AWS::SQS::Queue

  QueueVisibleMessagesTopic:
    Type: AWS::SNS::Topic

  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

  Lambda:
    Type: AWS::Lambda::Function
    Properties:
      Handler: handler.index
      Role: !GetAtt LambdaExecutionRole.Arn
      Runtime: nodejs8.10
      MemorySize: 128
      Timeout: 10

  LambdaSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      Endpoint: !GetAtt Lambda.Arn
      Protocol: lambda
      TopicArn: !Ref QueueVisibleMessagesTopic

  LambdaSubscriptionPermissions:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !GetAtt Lambda.Arn
      Action: lambda:InvokeFunction
      Principal: sns.amazonaws.com
      SourceArn: !Ref QueueVisibleMessagesTopic

  QueueVisibleMessagesAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      Namespace: AWS/SQS
      MetricName: ApproximateNumberOfMessagesVisible
      Dimensions:
        - Name: QueueName
          Value: !GetAtt Queue.QueueName
      Statistic: Sum
      Period: 300
      EvaluationPeriods: 1
      ComparisonOperator: GreaterThanOrEqualToThreshold
      Threshold: 100000
      AlarmActions:
        - !Ref QueueVisibleMessagesTopic
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54089801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档