本节我们将使用SQS作为Lambda的事件源(Event Source)
来进行测试。原理如下:
创建新的Lambda,命名为lambda-poll-sqs
,Runtime选择Python 3.9
。点击创建:
创建新的SQS,命名为lambda-sqs
,点击创建:
由于Lambda需要从SQS中轮询消息,所以Lambda需要有访问SQS的权限。为Lambda添加对应权限:
选择AWSLambdaSQSQueueExecutionRole
并添加:
在Lambda页面,点击Add Trigger
:
Lambda可以选择很多AWS服务作为它的Trigger。这里我们搜索SQS:
SQS Queue选择刚才创建的lambda-sqs
, Batch window
设置为10s,这样Lambda每隔10s会从SQS中拉取一次消息:
添加完成后,在Lambda的页面,看到有SQS类型的Trigger:
编辑Lambda代码,将接收到的消息打印到控制台:
import json
def lambda_handler(event, context):
print(event)
return "success"
对代码重新部署。
往SQS里发送一条消息:
打开Lambda的CloudWatch Logs:
找到最新的日志流,Lambda接收到了SQS中的消息:
回到SQS页面,发现lambda-sqs
里消息数量为0,这是因为Lambda在接收到消息后,会删除SQS队列中的消息: