免费
AWS SNS&SQS&Lambda 暂无演示

已测
AWS SNS&SQS&Lambda

售价:
¥ 免费
  • 普通用户购买价格 : 0钻石
  • 免费售后咨询

升级尊贵会员
享受全站VIP待遇

106+
会员已经加入
  • 文章介绍
  • 评价建议
  • 目 录

    目的

    SNS发送消息给SQS,SQS触发Lambda将图片变为黑白

    实现:

    SQS订阅SNS,当SNS发送带有bucket、file 字段的消息给SQS时,触发Lambda,Lambda获取该消息字段,然后从S3找到他后变为黑白色,代码如下,PIL包已上传,自行获取下载

    import json
    import boto3
    from PIL import Image
    
    def lambda_handler(event, context):
        # TODO implement
        #sns的消息属性值传过来是在sqs的body中,所以取出body
        for rec in event['Records']:
            body = rec['body']
            #取出来后是字符串类型,利用loads将它转为字典类型
            bodys = json.loads(body)
            #获取消息值bucket_name和file_name
            bucket_name = bodys['MessageAttributes']['bucket']['Value']
            file_name = bodys['MessageAttributes']['file']['Value']
            print(bucket_name,file_name)
            #获取s3资源
            s3 = boto3.resource('s3')
            download_path = '/tmp/{}'.format(file_name)
            #下载图片
            s3.Object(bucket_name,file_name).download_file(download_path)
            #打开图片
            img = Image.open(download_path,'r')
            #转换图片
            img1 = img.convert('L')
            #保存
            img1.save(download_path)
            #将修改后的图片上传到原来位置
            s3.Object(bucket_name,file_name).upload_file(download_path)
    
    
        return {
            'statusCode': 200,
            'body': json.dumps('Hello from Lambda!')
        }
    
    

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    本站所有资源转载请申明来源!如有链接无法下载、失效或广告,请联系管理员处理!侵权请邮件联系站长!
    云计算分享 » AWS SNS&SQS&Lambda

    发表评论

    444+

    本站勉强运行

    106+

    用户总数

    18+

    资源总数

    0+

    今日更新

    2021-10-15

    最后更新时间