论坛

AWS简介...
 
通知事项
全部清除

AWS 拉姆达简介  


太极
帖子:83
主持人
(@太极)
会员
已加入:8个月前

AWS 拉姆达简介

//amazon.qwiklabs.com/focuses/10541?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A1%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=5497358

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

00:45:00
q2RifGJ.png(815×15351)

AWS 拉姆达简介

45分钟自由

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将是有益的。

开始实验

  1. 在屏幕顶部,通过点击启动实验室 开始实验

这将开始配置实验室资源的过程。将显示提供实验室资源的估计时间。您必须等待资源调配后才能继续。

 如果系统提示您输入令牌,请使用分配给您的令牌(或您购买的积分)。

  1. 通过单击打开您的实验室 打开控制台

这将自动将您登录到AWS管理控制台。

 除非有指示,否则请勿更改地区.

常见的登录错误

错误:联合登录凭证

如果看到此消息:

  • 关闭浏览器选项卡以返回到初始实验室窗口
  • 等待几秒钟
  • 请点击 打开控制台 再次

现在,您应该能够访问AWS管理控制台。

错误:您必须先注销

如果您看到该消息, 您必须先注销,然后再登录其他AWS账户:

  • 请点击 点击这里
  • 关闭浏览器选项卡以返回到初始Qwiklabs窗口
  • 请点击 打开控制台 再次

情境

本实验通过创建无服务器来演示AWS 拉姆达 图片缩略图应用.

下图说明了应用程序流程:

概述1

1 用户将一个对象上载到源存储区中 亚马逊S3 (对象创建的事件)。

2 亚马逊S3检测到对象创建的事件。

3 亚马逊S3通过调用Lambda函数并将事件数据作为函数参数传递,从而将对象创建的事件发布到AWS 拉姆达。

4 AWS 拉姆达执行Lambda函数。

5 拉姆达函数从接收到的事件数据中知道源存储桶名称和对象键名称。 拉姆达函数读取对象并使用图形库创建缩略图,然后将缩略图保存到目标存储桶。

完成本教程后,您的帐户中将拥有以下资源:

概述2

本实验中的步骤将向您展示如何创建Amazon S3存储桶和Lambda函数。然后,您将通过上传图像以调整大小来测试服务。

任务1:创建Amazon S3存储桶

在此任务中,您将创建两个Amazon S3存储桶-一个用于输入,另一个用于输出。

亚马逊S3存储桶需要唯一的名称,因此您将在存储桶名称中添加一个随机数。

  1. 在里面 AWS管理控制台,在 服务 菜单,点击  S3.

  2. 请点击 创建桶 然后配置:

  • 值区名称: 
  • 更换  有一个随机数
  • 将存储桶的名称复制到文本编辑器
  • 请点击 创建桶

亚马逊S3中的每个存储桶都需要一个唯一的名称,例如 图片-34523452345.

 如果收到错误说明 请求的存储桶名称不可用,然后点击第一个 编辑 链接,更改存储桶名称,然后重试直至生效。

现在,您将创建另一个存储桶以进行输出。

  1. 请点击 创建桶 然后配置:
  • 值区名称: 粘贴你的名字 图片 
  • 在存储桶名称的末尾附加 
  • 请点击 创建桶

 不要更改区域。

现在,您应该具有类似于以下内容的存储桶:

  • 图片123
  • 图像123调整大小

现在,您将上传图片以进行测试。

  1. 右键单击此 链接 并将图片下载到您的计算机: HappyFace.jpg

  2. 命名文件 HappyFace.jpg.

 Firefox用户:确保保存的文件名是 HappyFace.jpg (不 .jpeg).

  1. 在计算机上打开图像。

这是一张大图片,尺寸为1280 x 853。

  1. 在里面 S3管理控制台, 点击 图片- 桶。 (不是 -调整大小 桶)

  2. 请点击  Upload

  3. 在里面 上载 窗口,单击 新增档案

  4. 浏览并选择 HappyFace.jpg 您下载的图片。

  5. 请点击 上载

在本实验的后面,您将通过将样本事件数据传递给Lambda函数来手动调用该函数。样本数据将参考此 HappyFace.jpg 图片。

任务2:创建AWS 拉姆达函数

在此任务中,您将创建一个AWS 拉姆达函数,该函数从Amazon S3读取图像,调整图像大小,然后将新图像存储在Amazon S3中。

  1.  服务 菜单,点击  拉姆达.

 不要更改区域。您必须使用 美国西部(俄勒冈州) 这个实验室

  1. 请点击 创建功能

 蓝图 是用于编写Lambda函数的代码模板。为标准Lambda触发器提供了蓝图,例如,创建Alexa技能和处理Amazon Kinesis Firehose流。本实验为您提供了预先编写的Lambda函数,因此您将 从头开始.

  1. 在里面 创建功能 窗口,配置:
  • 函数名称: 
  • 运行: Python 3.7

 确保在下面选择Python 3.7 其他支援 运行。如果从中选择Python 3.8 最新支持 列表,代码将失败。

  • 扩大  选择或创建执行角色
  • 执行角色: 使用现有角色
  • 现有角色: 拉姆达执行角色

这个 角色 向Lambda函数授予访问Amazon S3的权限以读取和写入图像。

  1. 请点击 创建功能

将显示一个页面,其中包含您的功能配置。

AWS 拉姆达函数可以是 已触发 通过活动自动执行,例如Amazon Kinesis接收数据或在Amazon DynamoDB数据库中更新数据。在本实验中,每当在Amazon S3存储桶中创建新对象时,您都将触发Lambda函数。

  1. 请点击  Add trigger 然后配置:
  • 选择一个触发器: S3
  • 桶: 选择你的 图片- 桶(例如 图片123)
  • 事件类型: 所有对象创建事件
  1. 滚动到屏幕底部,然后单击 

  2. 请点击 创建缩略图 在图的顶部:

create-thumbnail-button.png)

现在,您将配置Lambda函数。

  1. 向下滚动到 功能码 部分并配置以下设置(并忽略未列出的所有设置):
  • 代码输入类型: 从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), 键)
  1. 检查上面的代码。它正在执行以下步骤:
  • 接收一个事件,其中包含传入对象的名称(Bucket,Key)
  • 将图像下载到本地存储
  • 使用调整图像大小 枕头 图书馆
  • 将调整大小后的图像上传到 -调整大小 
  1. 在里面 基本设置 页面底部的部分,单击 编辑
  • 描述 输入: 
  • 请点击 

您将其他设置保留为默认设置,但这是对这些设置的简要说明:

  • 记忆 定义将分配给您的功能的资源。增加内存也会增加分配给该功能的CPU。
  • 超时 设置函数执行的最大持续时间。
  • VPC (下 网络)提供Lambda函数访问虚拟私有云(VPC)网络中的资源。

 忽略警告消息“您无权配置VPC。”。该实验室不需要VPC。

  • 死信队列(DLQ)资源 (下 调试和错误处理)定义了如何处理失败的函数执行。
  • 启用主动跟踪 允许通过AWS X-Ray跟踪和监视分布式代码。
  1. 请点击  在窗口顶部。

现在已配置Lambda函数。

任务3:测试您的功能

在此任务中,您将测试Lambda函数。这是通过在上传新对象时使用通常与Amazon S3发送的信息相同的信息来模拟事件来完成的。

  1. 在屏幕顶部,单击 测试 然后配置:
  • 活动模板: 亚马逊S3放
  • 活动名称: 

将显示一个示例模板,该模板显示由上传到Amazon S3触发的事件数据发送到Lambda函数。您将需要编辑存储桶名称,以便它使用您之前创建的存储桶。

  1. 更换 示例桶 加上图像存储桶的名称(例如 图片123)复制到文本编辑器。

请务必更换 示例桶 在两个地方。

桶

  1. 更换 测试/密钥 以及您上传的图片的名称。这应该是 

键

  1. 请点击 创建

  2. 请点击 测试

AWS 拉姆达现在将使用以下命令触发您的功能 HappyFace.jpg 作为输入图像。

在页面顶部,您应该看到以下消息: 执行结果:成功

 如果您的测试未成功,则错误消息将说明失败的原因。例如,一个 禁止的 消息表示找不到图像,可能是因为存储桶名称不正确。查看前面的步骤,以确认您已正确配置该功能。

  1. 请点击  细节 将其展开(朝屏幕顶部)。

将显示以下信息:

  • 执行时间
  • 资源配置
  • 使用的最大内存
  • 日志输出

现在,您可以查看存储在Amazon S3中的调整大小后的图像。

  1.  服务 菜单,点击  S3.

  2. 点击您的名字 -调整大小 存储桶(这是您创建的第二个存储桶),然后:

  • 请点击 HappyFace.jpg
  • 请点击 打开 (如果图像未打开,请禁用弹出窗口阻止程序。)

现在,该图像应该是原始图像的较小缩略图。

欢迎您将自己的图片上传到 图片- 桶,然后在 -调整大小 桶。

任务4:监视和记录

您可以监视AWS 拉姆达函数以识别问题并查看日志文件以帮助调试。

  1.  服务 菜单,点击  拉姆达.

  2. 点击您的 创建缩略图 功能。

  3. 点击 监控方式 标签。

控制台显示图形,这些图形显示:

  • 调用: 该函数被调用的次数。
  • 持续时间: 函数执行所需的时间(以毫秒为单位)。
  • 错误: 函数失败了多少次。
  • 节气门: 当同时调用太多函数时,它们将受到限制。默认值为1000个并发执行。
  • 迭代器年龄: 测量通过流触发器(Amazon Kinesis和Amazon DynamoDB流)处理的最后一条记录的期限。
  • 死信错误: 向死信队列发送消息时失败。

来自Lambda函数的日志消息保留在 Amazon 云Watch日志.

  1. 请点击 在CloudWatch中查看日志

  2. 点击 日志流 出现。

  3. 扩大  每条消息可查看日志消息的详细信息。

事件数据包括请求ID,持续时间(以毫秒为单位),记帐的持续时间(四舍五入至最接近的100毫秒,该功能的内存大小和该功能使用的最大内存),此外,所有日志消息或打印内容这些函数的语句将显示在日志中,这有助于调试Lambda函数。

结论

 恭喜你!您已成功:

  • 创建了一个AWS 拉姆达函数
  • 将Amazon S3存储桶配置为Lambda事件源
  • 通过将对象上载到Amazon S3来触发Lambda函数
  • 通过Amazon 云Watch Log监控AWS 拉姆达 S3功能

结束实验室

请按照以下步骤关闭控制台,结束实验并评估体验。

  1. 返回AWS管理控制台。

  2. 在导航栏上,单击 [电子邮件 protected]<AccountNumber>,然后单击 登出.

  3. 请点击 结束实验室

  4. 请点击 

  5. (可选的):

  • 选择适用的星数 
  • 输入评论
  • 请点击 提交

    • 1星=非常不满意
    • 2星=不满意
    • 3星=中立
    • 4星=满意
    • 5星=非常满意

如果您不想提供反馈,则可以关闭对话框。

其他资源

有关反馈,建议或更正,请发送电子邮件至 [电子邮件 protected].

准备更多吗?

这是我们认为您会喜欢的另一个实验室。

 
手持实验室

Amazon Virtual 私人的 云(VPC)简介

 

 

主题标签
分享: