AWS CloudFormation模板 - 如何使用SQS队列配置Lambda从队列中挑选项目



我在AWS CloudFormaton模板创建中是非常新的。无法找到可以创建将与SQS队列连接的lambda函数的方法。

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

您需要:

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"
},

最新更新