AWS 拉姆达简介
本实验将使您对AWS 拉姆达有基本的了解。它将演示开始在事件驱动的环境中创建和部署Lambda函数所需的基本步骤。

AWS 拉姆达简介
SPL-88版本2.3.5
©2020 Amazon Web 服务,Inc.及其分支机构。版权所有。未经Amazon Web 服务,Inc.事先书面许可,不得全部或部分复制或重新分发此作品。禁止商业复制,借出或出售。
错误或纠正?给我们发电子邮件 [电子邮件 protected].
还有其他问题吗?与我们联系 //aws.amazon.com/contact-us/aws-training/
总览
该实验室提供了有关AWS 拉姆达的基本说明。它将演示在事件驱动的环境中开始创建Lambda函数所需的步骤。
AWS 拉姆达 是一种计算服务,可响应事件运行代码并自动为您管理计算资源,从而使构建易于响应新信息的应用程序变得容易。 AWS 拉姆达会在事件发生(例如图像上传,应用程序内活动,网站单击或从连接的设备输出)后的几毫秒内开始运行您的代码。您还可以使用AWS 拉姆达创建新的后端服务,在这些服务中,将基于自定义请求自动触发计算资源。
涵盖的主题
在本实验结束时,您将能够:
- 创建一个AWS 拉姆达函数
- 将Amazon S3存储桶配置为Lambda事件源
- 通过将对象上传到Amazon S3来触发Lambda函数
- 通过Amazon 云Watch Log监视AWS 拉姆达 S3功能
先决条件
熟悉Amazon S3将是有益的。
开始实验
- 在屏幕顶部,通过点击启动实验室 开始实验
这将开始配置实验室资源的过程。将显示提供实验室资源的估计时间。您必须等待资源调配后才能继续。
如果系统提示您输入令牌,请使用分配给您的令牌(或您购买的积分)。
- 通过单击打开您的实验室 打开控制台
这将自动将您登录到AWS管理控制台。
除非有指示,否则请勿更改地区.
常见的登录错误
错误:联合登录凭证
如果看到此消息:
- 关闭浏览器选项卡以返回到您的初始实验室窗口
- 等待几秒钟
- 请点击 打开控制台 再次
现在,您应该能够访问AWS管理控制台。
错误:您必须先注销
如果您看到此消息, 您必须先注销,然后再登录其他AWS账户:
- 请点击 点击这里
- 关闭浏览器选项卡以返回到初始Qwiklabs窗口
- 请点击 打开控制台 再次
情境
本实验通过创建无服务器来演示AWS 拉姆达 图片缩略图应用.
下图说明了应用程序流程:
1 用户将对象上载到源存储区中 亚马逊S3 (对象创建的事件)。
2 亚马逊S3检测到对象创建的事件。
3 亚马逊S3通过调用Lambda函数并将事件数据作为函数参数传递,从而将对象创建的事件发布到AWS 拉姆达。
4 AWS 拉姆达执行Lambda函数。
5 拉姆达函数从接收到的事件数据中知道源存储桶名称和对象键名称。 拉姆达函数读取对象并使用图形库创建缩略图,然后将缩略图保存到目标存储桶。
完成本教程后,您的帐户中将拥有以下资源:
本实验中的步骤将向您展示如何创建Amazon S3存储桶和Lambda函数。然后,您将通过上传图像以调整大小来测试服务。
任务1:创建Amazon S3存储桶
在此任务中,您将创建两个Amazon S3存储桶-一个用于输入,另一个用于输出。
亚马逊S3存储桶需要唯一的名称,因此您将在存储桶名称中添加一个随机数。
-
在里面 AWS管理控制台,在 服务 菜单,点击 S3.
-
请点击 创建桶 然后配置:
- 值区名称:
- 更换 数 有一个随机数
- 将存储桶的名称复制到文本编辑器
- 请点击 创建桶
亚马逊S3中的每个存储桶都需要一个唯一的名称,例如 图片-34523452345.
如果收到错误说明 请求的存储桶名称不可用,然后点击第一个 编辑 链接,更改存储桶名称,然后重试直至生效。
现在,您将创建另一个存储桶以进行输出。
- 请点击 创建桶 然后配置:
- 值区名称: 粘贴你的名字 图片 桶
- 在存储桶名称的末尾附加
- 请点击 创建桶
不要更改区域。
现在,您应该具有类似于以下内容的存储桶:
- 图片123
- 图像123调整大小
现在,您将上传图片以进行测试。
-
右键单击此 链接 并将图片下载到您的计算机: HappyFace.jpg
-
命名文件 HappyFace.jpg.
Firefox用户:确保保存的文件名是 HappyFace.jpg (不 .jpeg).
- 在计算机上打开图像。
这是一张大图片,尺寸为1280 x 853。
-
在里面 S3管理控制台, 点击 图片- 桶。 (不是 -调整大小 桶)
-
请点击 Upload
-
在里面 上载 窗口,单击 新增档案
-
浏览并选择 HappyFace.jpg 您下载的图片。
-
请点击 上载
在本实验的后面,您将通过将样本事件数据传递给Lambda函数来手动调用该函数。样本数据将参考此 HappyFace.jpg 图片。
任务2:创建AWS 拉姆达函数
在此任务中,您将创建一个AWS 拉姆达函数,该函数从Amazon S3读取图像,调整图像大小,然后将新图像存储在Amazon S3中。
- 在 服务 菜单,点击 拉姆达.
不要更改区域。您必须使用 美国西部(俄勒冈州) 这个实验室
- 请点击 创建功能
蓝图 是用于编写Lambda函数的代码模板。为标准Lambda触发器提供了蓝图,例如创建Alexa技能和处理Amazon Kinesis Firehose流。本实验为您提供了预先编写的Lambda函数,因此您将 从头开始.
- 在里面 创建功能 窗口,配置:
- 函数名称:
- 运行: Python 3.7
确保在下面选择Python 3.7 其他支援 运行。如果您从中选择Python 3.8 最新支持 列表,代码将失败。
- 扩大 选择或创建执行角色
- 执行角色: 使用现有角色
- 现有角色: lambda执行角色
这个 角色 向Lambda函数授予访问Amazon S3的权限以读取和写入图像。
- 请点击 创建功能
将显示一个页面,其中包含您的功能配置。
AWS 拉姆达函数可以是 已触发 通过活动自动执行,例如Amazon Kinesis接收数据或在Amazon DynamoDB数据库中更新数据。对于本练习,每当在Amazon S3存储桶中创建新对象时,您都将触发Lambda函数。
- 请点击 Add trigger 然后配置:
- 选择一个触发器: S3
- 桶: 选择你的 图片- 桶(例如 图片123 )
- 事件类型: 所有对象创建事件
-
滚动到屏幕底部,然后单击 加
-
请点击 创建缩略图 在图的顶部:
现在,您将配置Lambda函数。
- 向下滚动到 功能码 部分并配置以下设置(并忽略未列出的所有设置):
- 代码输入类型: 从Amazon S3上传文件
- 运行: Python 3.7
- 处理程序:
确保您设置了 处理程序 字段设置为上述值,否则将找不到Lambda函数。
- 亚马逊S3链接URL: 将此URL复制并粘贴到字段中:
//s3-us-west-2.amazonaws.com/us-west-2-aws-training/awsu-spl/spl-88/2.3.5.prod/scripts/CreateThumbnail.zip
的 创建Thumbnail.zip 文件包含以下Lambda函数:
不要复制此代码-它只是向您显示Zip文件中的内容。
import boto3
import os
import sys
import uuid
from PIL import Image
import PIL.Image
s3_client = boto3.client('s3')
def resize_image(image_path, resized_path):
with Image.open(image_path) as image:
图片。thumbnail((128, 128))
图片。save(resized_path)
def handler(event, context):
for record in event['Records']:
桶 = record['s3']['bucket']['name']
键 = record['s3']['object']['key']
download_path = '/tmp/{}{}'.format(uuid.uuid4(), 键)
upload_path = '/tmp/resized-{}'.format(key)
s3_client.download_file(bucket, 键, download_path)
resize_image(download_path, upload_path)
s3_client.upload_file(upload_path, '{}-resized'.format(bucket), 键)
- 检查上面的代码。它正在执行以下步骤:
- 接收一个事件,其中包含传入对象的名称(Bucket,Key)
- 将图像下载到本地存储
- 使用调整图像大小 枕头 图书馆
- 将调整大小后的图像上传到 -调整大小 桶
- 在里面 基本设置 页面底部的部分,单击 编辑
- 描述 输入:
- 请点击 救
您将其他设置保留为默认设置,但这是对这些设置的简要说明:
- 记忆 定义将分配给您的功能的资源。增加内存也会增加分配给该功能的CPU。
- 超时 设置函数执行的最大持续时间。
- VPC (下 网络)提供Lambda函数访问虚拟私有云(VPC)网络中的资源。
忽略警告消息“您无权配置VPC。”。该实验室不需要VPC。
- 死信队列(DLQ)资源 (下 调试和错误处理)定义了如何处理失败的函数执行。
- 启用主动跟踪 允许通过AWS X-Ray跟踪和监视分布式代码。
- 请点击 救 在窗口顶部。
现在已配置Lambda函数。
任务3:测试您的功能
在此任务中,您将测试Lambda函数。通过使用上载新对象时通常与Amazon S3发送的信息相同的信息来模拟事件来完成此操作。
- 在屏幕顶部,单击 测试 然后配置:
- 活动模板: 亚马逊S3放
- 活动名称:
将显示一个示例模板,该模板显示由上传到Amazon S3触发的事件数据发送到Lambda函数。您将需要编辑存储桶名称,以便它使用您之前创建的存储桶。
- 更换 示例桶 加上图像存储桶的名称(例如 图片123 )复制到文本编辑器。
请务必更换 示例桶 在两个地方。
- 更换 测试/密钥 以及您上传的图片的名称。这应该是
-
请点击 创建
-
请点击 测试
AWS 拉姆达现在将使用以下命令触发您的功能 HappyFace.jpg 作为输入图像。
在页面顶部,您应该看到以下消息: 执行结果:成功
如果您的测试未成功,则错误消息将说明失败的原因。例如,一个 禁止的 消息表示找不到图像,可能是因为存储桶名称不正确。查看前面的步骤,以确认您已正确配置该功能。
- 请点击 细节 将其展开(朝屏幕顶部)。
将显示以下信息:
- 执行时间
- 资源配置
- 使用的最大内存
- 日志输出
现在,您可以查看存储在Amazon S3中的调整大小后的图像。
-
在 服务 菜单,点击 S3.
-
点击您的名字 -调整大小 存储桶(这是您创建的第二个存储桶),然后:
- 请点击 HappyFace.jpg
- 请点击 打开 (如果图像未打开,请禁用弹出窗口阻止程序。)
现在,该图像应该是原始图像的较小缩略图。
欢迎您将自己的图片上传到 图片- 桶,然后在 -调整大小 桶。
任务4:监视和记录
您可以监视AWS 拉姆达函数以识别问题并查看日志文件以帮助调试。
-
在 服务 菜单,点击 拉姆达.
-
点击您的 创建缩略图 功能。
-
点击 监控方式 标签。
控制台显示图形,这些图形显示:
- 调用: 该函数被调用的次数。
- 持续时间: 函数执行所需的时间(以毫秒为单位)。
- 错误: 函数失败了多少次。
- 节气门: 当同时调用太多函数时,它们将受到限制。默认值为1000个并发执行。
- 迭代器年龄: 测量通过流触发器(Amazon Kinesis和Amazon DynamoDB流)处理的最后一条记录的期限。
- 死信错误: 向死信队列发送消息时失败。
来自Lambda函数的日志消息保留在 Amazon 云Watch日志.
-
请点击 在CloudWatch中查看日志
-
点击 日志流 出现。
-
扩大 每条消息可查看日志消息的详细信息。
事件数据包括请求ID,持续时间(以毫秒为单位),记帐的持续时间(四舍五入至最接近的100毫秒,该功能的内存大小和该功能使用的最大内存),此外,所有日志消息或打印内容这些函数的语句将显示在日志中,这有助于调试Lambda函数。
结论
恭喜你!您已成功:
- 创建了一个AWS 拉姆达函数
- 将Amazon S3存储桶配置为Lambda事件源
- 通过将对象上载到Amazon S3来触发Lambda函数
- 通过Amazon 云Watch Log监控AWS 拉姆达 S3功能
结束实验室
请按照以下步骤关闭控制台,结束实验并评估体验。
-
返回AWS管理控制台。
-
在导航栏上,单击 [电子邮件 protected]<AccountNumber>,然后单击 登出.
-
请点击 结束实验室
-
请点击 好
-
(可选的):
- 选择适用的星数
- 输入评论
-
请点击 提交
- 1星=非常不满意
- 2星=不满意
- 3星=中立
- 4星=满意
- 5星=非常满意
如果您不想提供反馈,则可以关闭对话框。
其他资源
-
有关AWS培训和认证的更多信息,请参阅 http://aws.amazon.com/training/ .
-
有关更多AWS自定进度实验室,请参阅 http://amazon.qwiklabs.com .
有关反馈,建议或更正,请给我们发送电子邮件至 [电子邮件 protected].
准备更多吗?
这是我们认为您会喜欢的另一个实验室。
Amazon Virtual 私人的 云(VPC)简介