使用 Learner Lab - 使用 Lambda 转换图片为 base64 格式

news2024/12/29 10:42:30

使用 Learner Lab - 使用 Lambda 转换图片为 base64 格式

AWS Academy Learner Lab 是提供一个帐号让学生可以自行使用 AWS 的服务,让学生可以在 100 USD的金额下,自行练习所要使用的 AWS 服务,以下使用 使用 Lambda 转换图片为 base64 格式。

步骤 1. 登录 AWS Academy 学习平台

所有 AWS Academy 的开课流程都差不多,详情可以参考 AWS Academy LMS 申请开课 - 教师,首先在 AWS Academy 学习平台 的入口首页 https://www.awsacademy.com/LMS_Login ,选择以教师 (Educator)或是学生(Student) 身分登录都可以,如下图所示。

https://ithelp.ithome.com.tw/upload/images/20220406/20129510zwqcB8S4Ai.png
图 1. AWS Academy 学习平台入口首页

步骤 2. 进入 Learner Lab 课程

如果以教师身分进入记得切换成学生视图 (Student View),如下图所示

https://ithelp.ithome.com.tw/upload/images/20220414/201295109I5URNJIYc.png
图 2. AWS Academy 学习平台入口首页

如果是以学生身分,则可以直接进入课程内容,单击『Modules』后再单击『Learner Lab - Foundational Services 』链结,如下图所示。

https://ithelp.ithome.com.tw/upload/images/20220414/20129510ewr6km3xsr.png
图 3. 进入 Learner Lab 模组

单击『Start Lab』就会开始实验帐号环境建置,当左手边的 AWS 按钮旁边的圆圈变成绿色时,这时候就可以单击按钮会谈出 AWS 网页控制台 新视窗,如下图所示。

https://ithelp.ithome.com.tw/upload/images/20220414/20129510j9hZIelIN9.png
图 4. Learner Lab 的使用画面

接着在 AWS 网页控制台 上方的搜寻图示中输入 Lambda ,单击 Lambda 服务,如下图所示。

在这里插入图片描述

图 5. AWS 网页控制台中找寻 Lambda 服务

步骤 3. 创建 Lambda 函数

在这里插入图片描述

图 6. 创建 Lambda 函数

设定 Lambda 函数如下

  • 从头开始创作
    基本信息
  • 函数名称: Image2Lambda
  • 运行时: Python 3.8
  • 架构: x86_64
    权限
  • 执行角色: 使用现有角色 LabRole (很重要、很重要、很重要)

在这里插入图片描述
图 7. 设定 Lambda 函数

步骤 4. Python 代码

以下是 Python 的相关代码,会将 test.jpg 图片转成 base64 格式,接著再将 base64 格式的字符串转存为 base642Image.jpg,lambda_handler() 方法是 AWS Lambda 预设会调用函数名称。

# convert base64 to image 
import json
import base64

def lambda_handler(event, context):
    image = open('test.jpg', 'rb')
    image_read = image.read()
# 将图片转换为 base64 格式
    image_64_encode = base64.encodebytes(image_read)
    print('base64 = ', image_64_encode)
    image_64_decode = base64.decodebytes(image_64_encode) 
# 将 base64 格式转成图片
    image_result = open('/tmp/base642Image.jpg', 'wb') 
    image_result.write(image_64_decode)
    return {
        'statusCode': 200,
        'body': image_64_encode
    }

下图为压缩档案 toLambda.zip 操作画面。

在这里插入图片描述
图 7. 将代码与图片压缩为 toLambda.zip

将 zip 档上传到 AWS Lambda 即可,进入 Image2base64 函数,选择 代码,单击上传自,选择 .zip文件,在跳出弹窗后,选择先前的压缩档即可,如下图所示。

在这里插入图片描述
图 8. 将代码与图片压缩为 toLambda.zip

下图为上传后的结果,因为是使用 MAC 操作系统,所以会出现 _MACOSX 文件夹,可以自行删除
在这里插入图片描述
图 9. AWS Lambda 代码上传结果

步骤 5. 测试 AWS Lambda

单击图9中的 Test 按钮,会出现配置测试事件弹窗,配置如下:

  • 测试事件操作: 创建新事件
  • 事件名称: hello
  • 事件共享设置: 私有

设定好后存档即可。

在这里插入图片描述
图 10. 配置测试事件

接著只要单击 Test 按钮即可运行,运行结果会出现在 Execution result 视窗,可以看到 test.jpg 的图片转换成的 base64 字符串显示在 body 这个键之后,而运行时间在最下方显示:
Duration: 36.76 ms Billed Duration: 37 ms Memory Size: 128 MB Max Memory Used: 38 MB

在这里插入图片描述
图 11. 进行测试事件,检验代码执行结果

参考资料

  • AWS Lambda - 免费 Serverless 计算服务, https://aws.amazon.com/cn/campaigns/lambda/
  • When should I use Lambda?, https://docs.aws.amazon.com/lambda/latest/dg/welcome.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/43227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UNIAPP实战项目笔记46 订单确认页面的布局

UNIAPP实战项目笔记46 订单确认页面的布局 实际案例图片 订单页面 具体内容图片自己替换哈&#xff0c;随便找了个图片的做示例 具体位置见目录结构 完善布局页面和样式 代码 confirm-order.vue部分 confirm-order.vue 确认订单页面布局和渲染 flex 样式布局 <template>…

Uncaught TypeError: i.createPopper is not a function

“createPopper”不是我们使用引导程序时发生的函数错误 需要popper.js脚本但不在页面上加载它的组件或 在引导脚本之后加载它。要解决此错误&#xff0c;请包括引导程序 在运行 JavaScript 代码之前捆绑脚本。 这是一个工作示例&#xff0c;它加载引导捆绑包脚本来解决 错误。…

黑盒测试用例设计 - 边界值分析法

边界值的选择原则 如果输入条件规定了值的范围&#xff0c;则应取刚达到这个范围边界的值&#xff0c;以刚刚超越这个范围边界的值作为测试输入数据如果输入条件规定了值的个数&#xff0c;则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据如果程序的规…

[附源码]计算机毕业设计springboot电商小程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]计算机毕业设计Springboot大学生志愿者服务管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

《web课程设计》期末网页制作 基于HTML+CSS+JavaScript制作公司官网页面精美

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

数据被删除怎么办?4个硬盘数据恢复工具分享

日常电脑工作中&#xff0c;都会用到硬盘。但是也很容易出现各种问题&#xff0c;比如数据误删&#xff0c;或者格式化等问题。我们怎么应对这种情况&#xff1f;有没有什么硬盘数据恢复工具&#xff1f;下面给大家分享一下关于硬盘数据恢复的工具&#xff01; ​ 工具一&#…

基于PHP+MySQL图书管理系统的设计与实现

开发本图书管理系统目的是为了实现对图书馆的图书,借阅等进行科学化的管理,便于图书信息以及借阅信息的查询和安全控制,提高设备使用效率,减少维护成本。 图书管理系统实现对图书的管理和借阅管理,利用PHP及技术来实现对图书信息的控制和管理。 图书管理系统功能结构图 通过对各…

Java并发-多线程售票案例

1. 前言 本节内容主要是使用 Java 的使用 Condition 和 Lock 机制对多线程售票案例进行实现。售票案例多数情况下主要关注多线程如何安全的减少库存&#xff0c;也就是剩余的票数&#xff0c;当票数为 0 时&#xff0c;停止减少库存。 2. 售票机制模型 如下图所示&#xff0…

简单聊聊什么是react-redux,它能解决哪些问题

或许 在大多数人眼中 redux是一个相对复查很多的知识点 但确实如果你熟悉了流程 其实也比较简单的 redux是一个数据管理方案 我们先来举个例子 目前我们知道 react中有两种组件数据通信的方式 分别是 props 父传子 定义事件 子传父 通过事件将自己的数据传给父级 那如果是兄弟…

论硬件开发过程中开发文档规范化的重要性

硬件开发的标准化是公司管理过程中的重要组成部分&#xff0c;它离不开硬件开发文档的规范化&#xff0c;很多公司并不了解开发文档的重要性&#xff0c;容易将其忽视。一个项目开发完成后&#xff0c;还有着漫长的生命周期、售后维护和更新迭代&#xff0c;总结出开发文档&…

APS排程软件与ERP、MES的集成方式

ERP通常是企业第一个引入的信息系统&#xff0c;主要处理财务、订单、物料、人力资源等企业运营的基本数据&#xff0c;但ERP不能解决生产现场的问题。而要实现制造过程的精益化&#xff0c;对生产中的每个环节全面优化和监管&#xff0c;还需要其它的信息系统帮助。 ERP&#…

内网渗透笔记

内网靶场搭建 国内的红日安全团队曾提供内网渗透实战靶场的下载&#xff08;大小共 13 G&#xff09;&#xff0c;你可以从百度网盘上下载&#xff0c;如果自己从头搭建测试环境的话&#xff0c;配置流程相当麻烦。 百度网盘&#xff1a;https://pan.baidu.com/s/1nC6V8e_EuK…

Win10 桌面图标出现空文件夹的删除及桌面图标排列问题

今天电脑开机后&#xff0c;桌面平白无故出现了两个空白的文件夹&#xff0c;也没有名字&#xff0c;如下图所示。 右键该文件夹后有以下下拉选项。 点击删除后&#xff0c;在回收站里面也没有这两个文件夹&#xff0c;在桌面鼠标右键&#xff0c;然后点击刷新后&#xff0c;…

【JavaScript高级】06-JavaScript对象知识增强

JavaScript对象的知识增强对属性操作的控制Object.defineProperty属性描述符属性描述符分类数据属性描述符&#xff08;理解&#xff09;存取属性描述符&#xff08;掌握&#xff09;对属性操作的控制 在前面我们的属性都是直接定义在对象内部&#xff0c;或者直接添加到对象内…

【MyBatis源码分析】一.JDBC回顾

MyBatis源码分析 文章目录 MyBatis源码分析一、JDBC开发回顾使用JDBC连接数据库SPI与JDBCDirverManagerDataSourceORM框架版本:mybatis 3.5.x 一、JDBC开发回顾 Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套…

mac-m1-docker安装nacos异常

目录 0. 官方文档 1. 修改docker的配置文件 2. 下载nacos代码 3. Dockerfile文件内容替换 4. 创建nacos的docker镜像 5. 启动nacos服务 6. 操作完后&#xff0c;打开docker mac docker安装nacos异常 0. 官方文档 Nacos Docker 快速开始 ERROR org.springframework.b…

无线遥控方案无线收发 soc 芯片 CI2451CI2454

无线遥控器、无线键鼠、无线玩具、无线灯控、无线音频等应用在生活中随处可遇&#xff0c;无线遥控最早起源于 18 世纪末&#xff0c;如今随着应用市场的扩大&#xff0c;家家户户也都用起了无线产品&#xff0c;这也意味着给人们带来极大便利的同时&#xff0c;成本也能得到大…

Flink的状态一致性

一致性的划分 通常来说&#xff0c;状态一致性分为三个级别 at-most-once&#xff1a;至多一次&#xff0c;发生故障恢复后数据可能丢失at-least-once&#xff1a;至少一次&#xff0c;发生故障恢复后数据可能多算&#xff0c;绝对不会少算exactly-once&#xff1a;精确一次&…

用二叉树或栈求表达式的值--代码实现+算法分析

解决表达式求值问题有两种方法&#xff0c;一种是利用栈和后缀表达式求解&#xff0c;另一种是二叉树中序存储表达式。所以本文分为栈和二叉树两大部分带领读者求解表达式。 1. 利用栈解决表达式求值问题 所谓表达式&#xff0c;就是由变量、常量以及运算符组合而成的式子。其…