要配置Lambda与SQS队列以从队列中获取项目,你可以使用AWS CloudFormation模板。下面是一个示例模板,其中包含了Lambda函数以及SQS队列的配置。
AWSTemplateFormatVersion: '2010-09-09'
Resources:
MyLambdaFunction:
Type: "AWS::Lambda::Function"
Properties:
Code:
S3Bucket: my-lambda-bucket
S3Key: lambda-code.zip
Handler: index.handler
Role: !GetAtt LambdaExecutionRole.Arn
Runtime: nodejs12.x
DependsOn: LambdaExecutionRole
LambdaExecutionRole:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: "Allow"
Principal:
Service: "lambda.amazonaws.com"
Action: "sts:AssumeRole"
Path: "/"
Policies:
- PolicyName: "LambdaExecutionPolicy"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: "Allow"
Action:
- "sqs:ReceiveMessage"
- "sqs:DeleteMessage"
Resource: !GetAtt MyQueue.Arn
MyQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: my-queue
在上面的示例中,Lambda函数和SQS队列都由CloudFormation资源定义。Lambda函数使用一个名为MyLambdaFunction
的资源,并指定了代码、处理程序、角色等属性。Lambda函数的角色由LambdaExecutionRole
资源定义,并具有允许接收和删除SQS消息的权限。SQS队列由MyQueue
资源定义。
要使用此模板创建堆栈,请在AWS管理控制台中导航到CloudFormation服务,然后选择“创建堆栈”。选择“上传模板文件”选项,并选择上面示例模板的文件。然后按照向导的步骤提供必要的信息并创建堆栈。
创建堆栈后,Lambda函数将被创建并与SQS队列关联。你可以使用AWS SDK或CLI发送消息到SQS队列,然后Lambda函数将从队列中获取并处理这些消息。
这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。