AWS不会对由SQS触发的Lambda函数的轮询时间进行收费。Lambda函数的轮询时间是由AWS负责管理的,并不会计入您的费用。
以下是一个使用SQS触发Lambda函数的代码示例:
import json
import boto3
def lambda_handler(event, context):
# 获取SQS消息
sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName='my-queue')
messages = queue.receive_messages(MaxNumberOfMessages=10)
for message in messages:
# 处理消息
print('Received message: {}'.format(message.body))
# 删除已处理的消息
message.delete()
在上述示例中,Lambda函数通过调用receive_messages
方法从SQS队列中获取最多10条消息。Lambda函数会在每次触发时轮询SQS队列,并处理接收到的消息。处理完成后,使用delete
方法删除已处理的消息。
您可以根据自己的需求修改代码,例如设置MaxNumberOfMessages
参数来控制每次轮询获取的消息数量,或者根据消息内容执行其他操作。