AWS CloudFormation模板-如何使用SQS队列配置Lambda以从队列中选择项目 [英] AWS CloudFormation Template - How to configure Lambda with a SQS queue to pick the item from queue

查看:192
本文介绍了AWS CloudFormation模板-如何使用SQS队列配置Lambda以从队列中选择项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在AWS CloudFormaton模板创建方面还很陌生。无法找到创建将与SQS队列连接的Lambda函数的方法。

I am pretty new in AWS CloudFormaton template creation. Could not able to find the way to create a Lambda function which will connect with the SQS queue.

任何示例或资源都会帮助我学习和实现。

Any example or resource would help me to learn and implement.

推荐答案

您需要:

AWS::SQS::Queue
AWS::Lambda::Function
AWS::Lambda::EventSourceMapping

"DequeueInstanceQueue": {
  "Type": "AWS::SQS::Queue",
  "Properties": {
    "VisibilityTimeout": 301
  },
  "DeletionPolicy": "Delete"
},
"DequeueInstanceMapping": {
  "Type": "AWS::Lambda::EventSourceMapping",
  "Properties": {
    "EventSourceArn": {
      "Fn::GetAtt": [
        "DequeueInstanceQueue",
        "Arn"
      ]
    },
    "FunctionName": {
      "Fn::GetAtt": [
        "DequeueInstance",
        "Arn"
      ]
    },
    "BatchSize": "1"
  },
  "DeletionPolicy": "Delete"
},
"DequeueInstance": {
  "Type": "AWS::Lambda::Function",
  "Properties": {
    "Runtime": "dotnetcore2.1",
    "Environment": {
      "Variables": {
        "ServerName": {
          "Fn::ImportValue": {
            "Fn::Sub": "${DatabaseStack}-RdsEndpointAddress"
          }
        },
        "DatabaseUserName": {
          "Fn::ImportValue": {
            "Fn::Sub": "${DatabaseStack}-MasterUsername"
          }
        },
        "Password": {
          "Fn::ImportValue": {
            "Fn::Sub": "${DatabaseStack}-MasterUserPassword"
          }
        },
        "BranchName": {
          "Ref": "DbBranch"
        },
        "DequeueInstanceVehicleQueue": {
          "Ref": "DequeueInstanceVehicleQueue"
        }
      }
    },
    "VpcConfig": {
      "SecurityGroupIds": [
        {
          "Fn::ImportValue": {
            "Fn::Sub": "${DatabaseStack}-DbGroup"
          }
        }
      ],
      "SubnetIds": [
        {
          "Fn::ImportValue": {
            "Fn::Sub": "${NetworkStack}-PrivateSubnet1"
          }
        },
        {
          "Fn::ImportValue": {
            "Fn::Sub": "${NetworkStack}-PrivateSubnet2"
          }
        }
      ]
    },
    "Timeout": 300,
    "Handler": "YadaYada.BubbleBoy.WebApi::YadaYada.BubbleBoy.WebApi.Functions.ProductMaker::DequeueInstance",
    "MemorySize": 3008,
    "Role": {
      "Fn::GetAtt": [
        "DequeueInstanceRole",
        "Arn"
      ]
    },
    "Code": {
      "S3Bucket": {
        "Ref": "YadaYadaBubbleBoyWebApiBucket"
      },
      "S3Key": {
        "Ref": "YadaYadaBubbleBoyWebApiKey"
      }
    }
  },
  "DeletionPolicy": "Delete"
},

这篇关于AWS CloudFormation模板-如何使用SQS队列配置Lambda以从队列中选择项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆