教程:使用 S3 Object Lambda 转换应用程序的数据 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

教程:使用 S3 Object Lambda 转换应用程序的数据

在 Amazon S3 中存储数据时,您可以轻松共享数据供多个应用程序使用。但是,每个应用程序可能具有独特的数据格式要求,可能需要针对特定用例修改或处理您的数据。例如,由电子商务应用程序创建的数据集可能包括个人识别信息(PII)。处理相同的数据以进行分析时,不需要此 PII,应该进行修订。但是,如果将同一数据集用于营销活动,可能需要使用其他详细信息来丰富数据,例如来自客户忠诚度数据库的信息。

采用 S3 Object Lambda,可以添加自己的代码处理从 S3 检索的数据,然后再将其返回应用程序。具体来说,您可以配置 Amazon Lambda 函数并将其附加到 S3 Object Lambda 访问点。当应用程序发送标准 S3 GET 请求通过 S3 Object Lambda 访问点,调用指定的 Lambda 函数来处理通过支持的 S3 访问点从 S3 存储桶检索到的任何数据。然后,S3 Object Lambda 访问点将转换后的结果返回应用程序。您可以创作和执行自己的自定义 Lambda 函数,根据您的特定用例定制 S3 Object Lambda 数据转换,所有这些都不需要更改您的 应用程序 。


                这是 S3 Object Lambda 工作流程示意图。

目标

在本教程中,您将了解如何将自定义代码添加到标准 S3 GET 请求中,修改从 S3 检索到的请求对象,从而使该对象适合请求客户端或应用程序的需要。具体而言,您将学习如何通过 S3 Object Lambda 将存储在 S3 中的原始对象中所有文本转换为大写。

先决条件

在开始本教程之前,您必须具有 Amazon 帐户,您可使用具有正确权限的 Amazon Identity and Access Management(IAM) 用户。您还必须安装 Python 3.8 或更高版本。

在您的 Amazon 帐户(控制台)中创建具有权限的IAM用户

您可以为教程创建 IAM 用户,也可以向现有IAM用户添加权限。要完成本教程,您的 IAM 用户必须附加以下IAM策略以访问相关 Amazon 资源并执行特定操作。

您的 IAM 用户需要以下策略:

注意

为简单起见,本教程使用全访问 Amazon 托管策略。对于生产用途,我们建议仅根据安全最佳实践授予您的用例所需的最低权限。

有关如何创建 IAM 用户的更多信息,请参阅 《IAM 用户指南》中的创建 IAM 用户(控制台)

在本地计算机上安装 Python 3.8 或更高版本

使用以下过程在本地计算机上安装 Python 3.8 或更高版本。有关安装说明的更多信息,请参阅 《Python 初学者指南》中的下载 Python 页面。

  1. 打开本地终端或 shell 并运行以下命令以确定是否已安装 Python,如果已安装,确定已安装的版本。

    python --version
  2. 如果没有 Python 3.8 或更高版本,则下载适合您的本地计算机的官方安装

  3. 双击下载的文件运行安装程序,然后按照步骤完成安装。

    适用于 Windows 用户,选择将 Python 3.X 添加到 PATH 在安装向导中选择立即安装

  4. 通过关闭并重新打开终端来重新启动终端。

  5. 运行以下命令以验证是否正确安装了 Python 3.8或更高版本。

    对于 macOS 用户,运行以下命令:

    python3 --version

    适用于 Windows 用户,使用运行此命令:

    python --version
  6. 运行以下命令验证是否安装了 pip3 包管理器。如果您在命令响应中看到 pip 版本号和 python 3.8 或更高版本,则意味着 pi3 软件包管理器已成功安装。

    pip --version

步骤 1:创建 S3 存储桶

创建存储桶来存储您计划转换的原始数据。

创建存储桶

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 选择创建存储桶

    此时将打开创建存储桶页面。

  4. 对于存储桶名称,输入您的存储桶名称 (例如,tutorial-bucket)。

    有关 Amazon S3 存储桶命名的更多信息,请参阅 存储桶命名规则

  5. 对于区域,选择要放置存储桶的位置 Amazon Web Services 区域。

    有关存储桶区域的更多信息,请参阅 存储桶概述

  6. 对于阻止此存储桶的公有访问设置,保留默认设置(阻止全部公有访问权限已启用)。

    除非您需要为您的用例关闭一个或多个设置,我们建议您启用所有阻止公共访问设置。有关阻止公有访问的更多信息,请参阅 阻止对您的 Amazon S3 存储的公有访问

  7. 保留其余设置为默认值。

    (可选)如果要为您的特定用例配置其他存储桶设置,请参阅 创建存储桶

  8. 选择创建存储桶

步骤 2:将文件上传到 S3 存储桶。

将文本文件上传到 S3 存储桶。此文本文件包含本教程稍后将转换为大写的原始数据。

例如,您可以上传包含以下文本的 tutorial.txt文件:

Amazon S3 Object Lambda Tutorial: You can add your own code to process data retrieved from S3 before returning it to an application.

要上传文件到存储桶

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 存储桶列表中,选择您在步骤 1中创建的存储桶名称(例如,tutorial-bucket)上传您的文件。

  4. 在存储桶的对象 选项卡上,选择上传

  5. 上传页面的文件和文件夹下,选择添加文件

  6. 选择要上传的文件,然后选择打开。例如,您可以上传之前提到的 tutorial.txt 文件示例。

  7. 请选择 Upload(上传)。

步骤 3:创建 S3 访问点

要使用 S3 Object Lambda 访问点访问和转换原始数据,您必须创建一个 S3 访问点,并将其与在步骤 1中创建的 S3 存储桶关联。访问点必须与要变换的对象位于同一 Amazon Web Services 区域 位置。

在本教程的后面部分,您将使用此访问点作为 Object Lambda 访问点的支持访问点。

创建访问点

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择访问点

  3. 访问点页面上,选择创建访问点

  4. 访问点名称字段中输入访问点名称(例如,tutorial-access-point)。

    有关命名访问点的更多信息,请参阅命名 Amazon S3 访问点的规则

  5. 存储桶名称字段中,输入您在步骤 1中创建的存储桶名称(例如,tutorial-bucket)。S3 将访问点附加到存储桶。

    您也可以选择浏览 S3 浏览和搜索账户中的存储桶。如果选择浏览 S3,请选择所需的存储桶,然后选择选择路径使用该存储桶的名称填充存储桶名称字段。

  6. 适用于网络源中,选择互联网

    有关访问点的网络源的更多信息,请参阅创建限制到 Virtual Private Cloud 的访问点

  7. 默认情况下,访问点的所有阻止公共访问设置都处于启用状态。我们建议您将阻止所有公有访问设置保留为启用状态

    有关更多信息,请参阅管理访问点的公有访问

  8. 对于所有其他访问点设置,保留默认设置。

    (可选)您可以修改访问点设置以支持您的用例。在本教程中,我们建议您保留默认设置。

    (可选)如果需要管理对访问点的访问,可以指定访问点策略。有关更多信息,请参阅访问点策略示例

  9. 选择 Create access point (创建访问点)

步骤 4:创建 Lambda 函数

要转换原始数据,请创建 Lambda 函数以与 S3 Object Lambda 访问点一起使用。

编写 Lambda 函数代码并使用虚拟环境创建部署包

  1. 在本地计算机上,使用文件夹名称 object-lambda 创建一个文件夹,供本教程稍后使用。

  2. object-lambda 文件夹中,使用 Lambda 函数创建一个文件,该函数将原始对象中的所有文本更改为大写。例如,您可以使用 Python 编写的以下函数。将此函数保存在名为的文件 transform.py 中。

    import boto3 import requests # This function capitalizes all text in the original object def lambda_handler(event, context): object_context = event["getObjectContext"] # Get the presigned URL to fetch the requested original object # from S3 s3_url = object_context["inputS3Url"] # Extract the route and request token from the input context request_route = object_context["outputRoute"] request_token = object_context["outputToken"] # Get the original S3 object using the presigned URL response = requests.get(s3_url) original_object = response.content.decode("utf-8") # Transform all text in the original object to uppercase # You can replace it with your custom code based on your use case transformed_object = original_object.upper() # Write object back to S3 Object Lambda s3 = boto3.client('s3') # The WriteGetObjectResponse API sends the transformed data # back to S3 Object Lambda and then to the user s3.write_get_object_response( Body=transformed_object, RequestRoute=request_route, RequestToken=request_token) # Exit the Lambda function: return the status code return {'status_code': 200}
    注意

    前面的示例 Lambda 函数将整个请求的对象加载到内存中,然后再将其转换为客户端。您还可以从 S3 流式传输对象,避免将整个对象加载到内存中。这种方法在处理大型对象时非常有用。有关使用 Object Lambda 访问点流式处理响应的详细信息,请参阅 使用 WriteGetObjectResponse

    编写 Lambda 函数用于S3 Object Lambda访问点时,该函数基于S3 Object Lambda 提供给 Lambda 函数的输入事件上下文。S3 Object Lambda 提供了在传递给 Lambda 的事件中发出请求的上下文。它包含用于创建 Lambda 函数的参数。

    用于创建前面的 Lambda 函数的字段如下所示:

    字段 getObjectContext 表示与 Amazon S3 和 S3 Object Lambda连接的输入和输出详细信息。它具有以下字段:

    • inputS3Url - Lambda 函数可用于从支持访问点下载原始对象的预签名 URL。通过使用预签名 URL,Lambda 函数无需具有 Amazon S3 读取权限即可检索原始数据元,只能访问每次调用处理的对象。

    • outputRoute - 当 Lambda 函数调用 WriteGetObjectResponse 以发回转换后的对象时,添加到 S3 Object Lambda URL 的路由令牌。

    • outputToken - S3 Object Lambda 在发送回转换对象时用于将 WriteGetObjectResponse 调用与原始调用方匹配的令牌。

    有关事件上下文中所有字段的更多信息,请参阅 事件上下文格式和用法为 Amazon S3 Object Lambda 访问点编写和调试 Amazon Lambda 函数

  3. 在您的本地终端上,输入以下命令来安装 virtualenv 包:

    python -m pip install virtualenv
  4. 在您的本地终端中,打开之前创建的 object-lambda 文件夹,然后输入以下命令创建并初始化名为的虚拟环境 venv

    python -m virtualenv venv
  5. 要激活虚拟环境,请输入以下命令,以执行环境的文件夹中的 activate 文件:

    对于 macOS 用户,运行以下命令:

    source venv/bin/activate

    对于 Windows 用户, 运行此命令:

    .\venv\Scripts\activate

    现在,命令提示符更改为显示 (venv),表示虚拟环境处于活动状态。

  6. 要安装所需的库,请在 venv 虚拟环境中运行下列命令行。

    这些命令会安装您 lambda_handler Lambda 函数依赖关系的更新版本。这些依赖关系是 Amazon SDK for Python (Boto3) 和请求模块。

    pip3 install boto3
    pip3 install requests
  7. 要停用虚拟环境,运行以下命令:

    deactivate
  8. 要在 object-lambda 目录的根目录下,将已安装的库作为 .zip 文件(文件名为 lambda.zip)来创建部署程序包,请在本地终端中逐行运行以下命令。

    提示

    可能需要调整以下命令才能在您的特定环境中工作。例如,库可能出现在 site-packagesdist-packages 中,第一个文件夹可能是 lib 或者 lib64。另外,python 文件夹可能会使用不同的 Python 版本命名。您可以使用 pip show 命令定位特定包。

    适用于 macOS 用户,运行以下命令:

    cd venv/lib/python3.8/site-packages
    zip -r ../../../../lambda.zip .

    适用于 Windows 用户,运行以下命令:

    cd .\venv\Lib\site-packages\
    powershell Compress-Archive * ../../../lambda.zip

    最后一个命令将部署程序包保存到 object-lambda 目录的根目录中。

  9. 将函数代码文件 transform.py 添加到部署程序包的根目录中。

    适用于 macOS 用户,运行以下命令:

    cd ../../../../
    zip -g lambda.zip transform.py

    适用于 Windows 用户,运行以下命令:

    cd ..\..\..\
    powershell Compress-Archive -update transform.py lambda.zip

    完成此步骤后,文件目录结构应如下:

    lambda.zip$ │ transform.py │ __pycache__ | boto3/ │ certifi/ │ pip/ │ requests/ ...

使用执行角色创建 Lambda 函数(控制台)

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 在左侧导航窗格中,选择函数

  3. 选择 Create function (创建函数)

  4. 选择 Author from scratch (从头开始创作)

  5. Basic information(基本信息)中,执行以下操作:

    1. 对于 Function name(函数名称),请输入 tutorial-object-lambda-function

    2. 适用于运行时间中,选择 Python 3.8 或更高版本。

  6. 展开更改默认执行角色部分。在执行角色中,选择创建具有基本 Lambda 权限的新角色

    步骤 5 中,在本教程的后面,您将 AmazonS3ObjectLambdaExecutionRolePolicy 附加到 Lambda 函数的执行角色上。

  7. 保留其余设置为原定设置值。

  8. 选择 Create function(创建函数)。

用 .zip 文件归档部署 Lambda 函数代码,并配置 Lambda 函数(控制台)

  1. 在 Amazon Lambda 控制台位于 https://console.aws.amazon.com/lambda/ 中,选择左侧导航窗格中的 Functions(函数)。

  2. 选择您之前创建 Lambda 函数时所在的区域(例如,tutorial-object-lambda-function)。

  3. 在 Lambda 函数的详细信息页面上,选择代码选项卡。在代码源部分,选择上传,然后选择 .zip 文件

  4. 选择上传以选择本地 .zip 文件。

  5. 选择您之前创建的 lambda.zip 文件,然后选择打开

  6. 选择保存

  7. 运行时间设置部分,选择编辑

  8. 在存储库的编辑运行时设置页面上,确认运行时设置为 Python 3.8 或更高版本。

  9. 要告诉 Lambda 运行时要调用 Lambda 函数代码中的哪个处理程序方法,请输入 transform.lambda_handler处理程序.

    当您在 Python 中配置函数时,处理程序设置的值是文件名,也是处理程序模块的名称(由点分隔)。例如,transform.lambda_handler 调用在 transform.py 文件中定义的 lambda_handler 方法。

  10. 选择保存

  11. (可选)在 Lambda 函数的详细信息页面上,选择配置选项卡。在左侧导航窗格中,选择常规配置,然后选择编辑。在超时字段中,输入 1 分钟 0 秒。保留其余设置为默认值,然后选择保存

    超时 –是 Lambda 允许函数在停止调用之前为调用运行的时长。默认值为 3 秒。S3 Object Lambda 使用的 Lambda 函数的最大持续时间为 60 秒。定价基于配置的内存量和 代码运行的时间量 。

步骤 5:为 Lambda 函数的执行角色配置 IAM policy

要使 Lambda 函数能够提供自定义的数据和响应标头 GetObject 调用者,Lambda 函数的执行角色必须具有 IAM 权限才能调用 WriteGetObjectResponse API。

将 IAM policy 附加到 Lambda 函数角色

  1. 在 Amazon Lambda 控制台位于 https://console.aws.amazon.com/lambda/ 中,选择左侧导航窗格中的 Functions(函数)。

  2. 选择您在步骤 4(例如,tutorial-object-lambda-function)。

  3. 在 Lambda 函数的详细信息页面上,选择配置选项卡,然后选择Permissions (权限)在左侧导航窗格中。

  4. Unts执行角色中,选择 Role name (角色名称)。打开 IAM 控制台。

  5. 在 IAM 控制台的摘要页面上,选择 Lambda 函数的执行角色中的权限选项卡,然后选择附加策略.

  6. 在附加权限策略页的搜索字段中输入 AmazonS3ObjectLambdaExecutionRolePolicy 策略的名称。选中 AmazonS3ObjectLambdaExecutionRolePolicy 政策名称旁边的复选框。

  7. 选择 Attach policy(附上策略)。

步骤 6:创建 S3 Object Lambda 访问点

S3 Object Lambda 访问点提供了直接从 S3 GET 请求调用 Lambda 函数的灵活性,以便该函数可以处理从 S3 访问点检索的数据。创建和配置 S3 Object Lambda 访问点时,必须指定 Lambda 函数以调用并提供 JSON 格式的事件上下文作为 Lambda 要使用的自定义参数。

创建 S3 Object Lambda 访问点

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在控制台左侧的导航窗格中,选择 Object Lambda 访问点

  3. Object Lambda 访问点页面上,选择创建 Object Lambda 访问点

  4. 对于 Object Lambda 访问点名称,输入想要使用的访问点名称。(例如,tutorial-object-lambda-accesspoint

  5. 适用于支持访问点中,输入或浏览到您在步骤 3(例如,tutorial-access-point),然后选择选择支持的访问点

  6. 适用于调用 Lambda 函数,您可以为本教程选择以下两个选项之一。

    • 选择从您的账户中的函数选择,然后在 Lambda 函数下拉列表选择您在步骤 4中创建的 Lambda 函数(例如,tutorial-object-lambda-function)。

    • 选择输入 ARN,然后输入您在步骤 4中创建的 Lambda 函数的 Amazon Resource Name (ARN)。

  7. 适用于Lambda 函数版本,选择$LATEST(您在步骤 4中创建的最新版 Lambda 函数)。

  8. (可选)如果您需要 Lambda 函数识别和处理带有范围和分段编号标头的 GET 请求,请选择 Lambda 函数支持使用范围的请求Lambda 函数支持使用零件编号的请求。否则,请清除这两个复选框。

    有关如何将范围或分段编号与 S3 Object Lambda 结合使用的更多信息,请参阅 使用 Range 和 partNumber 标头

  9. (可选)在 Payload (负载) - 可选下,添加 JSON 文本,向 Lambda 函数提供其他信息。

    负载是可选 JSON 文本,您可以将其作为来自特定 S3 Object Lambda 访问点的所有调用的输入提供给 Lambda 函数。您可以为调用同一 Lambda 函数的不同 Object Lambda 访问点配置具有不同参数的负载,从而扩展 Lambda 函数的灵活性。

    更多有关路径模式的信息,请参阅 事件上下文格式和用法

  10. (可选)对于请求指标 - 可选,选择禁用启用以将 Amazon S3 监视添加到对象 Lambda 访问点。请求指标按标准 Amazon CloudWatch 费率计费。有关更多信息,请参阅 CloudWatch 定价

  11. 对象 Lambda 访问点策略 -可选下,保留默认设置。

    (可选)您可以设置资源策略。此资源策略授予 GetObject API 权限,以便使用指定的对象 Lambda 访问点。

  12. 保留其余设置为默认值,然后选择创建 Object Lambda 访问点

步骤 7:查看转换的数据

现在,S3 Object Lambda 已准备好为您的使用案例转换您的数据。在本教程中,S3 Object Lambda 将对象中的所有文本转换为大写。

在 S3 Object Lambda 访问点中查看转换后的数据

当您请求通过 S3 Object Lambda 访问点检索文件时,您需要创建一个 GetObject 对 S3 Object Lambda 的 API 调用。S3 Object Lambda 调用 Lambda 函数来转换您的数据,然后返回转换后的数据作为对标准 S3 的响应 GetObject API 调用。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧的导航窗格中,选择 Object Lambda 访问点

  3. Object Lambda 访问点页面上,选择您在步骤 6中创建的 S3 Object Lambda 访问点(例如,tutorial-object-lambda-accesspoint)。

  4. 在 S3 Object Lambda 访问点的对象选项卡中,选择具有相同名称的文件(例如tutorial.txt)作为您在步骤 2上传到 S3 存储桶的存储桶。

    此文件应包含所有转换的数据。

  5. 要查看转换后的数据,请选择打开或者下载

运行 Python 脚本以打印原始数据和转换数据

您可以将 S3 Object Lambda 与现有应用程序结合使用。为此,请更新应用程序配置,以使用在步骤6 中创建的新 S3 对象 Lambda 访问点 ARN 从 S3 检索数据。

以下示例 Python 脚本既打印来自 S3 存储桶的原始数据,也打印来自 S3 Object Lambda 访问点的转换数据。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧的导航窗格中,选择 Object Lambda 访问点

  3. Object Lambda 访问点页面上,选择在步骤 6中创建的 S3 Object Lambda 访问点左侧的单选按钮(例如,tutorial-object-lambda-accesspoint)。

  4. 选择复制 ARN

  5. 保存 ARN 以供稍后使用。

  6. 在本地计算机上编写 Python 脚本从S3 存储桶中以打印原始数据(例如,tutorial.txt)和 S3 Object Lambda 访问点转换后的数据(例如tutorial.txt)。您可以使用以下示例脚本。

    import boto3 s3 = boto3.client('s3') def getObject(bucket, key): objectBody = s3.get_object(Bucket = bucket, Key = key) print(objectBody["Body"].read().decode("utf-8")) print("\n") print('Original object from the S3 bucket:') # Replace the two input parameters of getObject() below with # the S3 bucket name that you created in Step 1 and # the name of the file that you uploaded to the S3 bucket in Step 2 getObject("tutorial-bucket", "tutorial.txt") print('Object transformed by S3 Object Lambda:') # Replace the two input parameters of getObject() below with # the ARN of your S3 Object Lambda access point that you saved earlier and # the name of the file with the transformed data (which in this case is # the same as the name of the file that you uploaded to the S3 bucket # in Step 2) getObject("arn:aws:s3-object-lambda:us-west-2:111122223333:accesspoint/tutorial-object-lambda-accesspoint", "tutorial.txt")
  7. 使用自定义名称将 Python 脚本(例如,tutorial_print.py)保存您在步骤 4中本地计算机上中创建的文件夹中(例如,object-lambda)。

  8. 在您的本地终端上,在步骤 4中创建的根目录下运行以下命令(例如,object-lambda)。

    python3 tutorial_print.py

    您应该通过终端同时看到原始数据和转换后的数据(所有文本均为大写)。如,您应看到类似于以下的文本。

    Original object from the S3 bucket: Amazon S3 Object Lambda Tutorial: You can add your own code to process data retrieved from S3 before returning it to an application. Object transformed by S3 Object Lambda: AMAZON S3 OBJECT LAMBDA TUTORIAL: YOU CAN ADD YOUR OWN CODE TO PROCESS DATA RETRIEVED FROM S3 BEFORE RETURNING IT TO AN APPLICATION.

步骤 8:清除

如果您仅出于练习目的通过 S3 Object Lambda 创建静态网站,则删除您所分配的 Amazon 资源,使其不再产生费用。

删除 Object Lambda 访问点

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧的导航窗格中,选择 Object Lambda 访问点

  3. Object Lambda 访问点页面上,选择在步骤 6中创建的 S3 Object Lambda 访问点左侧的单选按钮(例如,tutorial-object-lambda-accesspoint)。

  4. 选择 Delete(删除)。

  5. 通过在显示的文本字段中输入 Object Lambda 访问点的名称,确认要删除的Object Lambda访问点,然后选择删除

删除 S3 访问点

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧的导航窗格中,选择访问点

  3. 导航到您在步骤 3创建的访问点(例如,tutorial-access-point),然后选择访问点名称旁的单选按钮。

  4. 选择 Delete(删除)。

  5. 在显示的文本字段中输入访问点名称,然后选 删除,确认您要删除访问点。

删除您的 Lambda 函数的执行角色。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 在左侧导航窗格中,选择函数

  3. 选择您在步骤 4中创建的函数(例如,tutorial-object-lambda-function)。

  4. 在 Lambda 函数的详细信息页面上,选择配置选项卡,然后在左侧导航窗格中选择权限

  5. 执行角色下,选择角色名称的链接。打开 IAM 控制台。

  6. 在 Lambda 函数的执行角色 IAM 控制台的摘要页面上,选择删除角色

  7. Delete role(删除角色)对话框中,选择 Yes, delete(是的,删除)。

删除 Lambda 函数

  1. 在 Amazon Lambda 控制台(位于 https://console.aws.amazon.com/lambda/)中,选择左侧导航窗格中的 Functions(函数)。

  2. 选择您在步骤4中创建的函数名称左侧的复选框(例如,tutorial-object-lambda-function)。

  3. 选择 Actions,然后选择 Delete

  4. 删除函数对话框中,选择删除

删除 CloudWatch 日志组

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在左侧导航窗格中,选择日志组

  3. 查找名称以步骤4中创建的 Lambda 函数结尾的日志组(例如,tutorial-object-lambda-function)。

  4. 选择日志组名称左侧的复选框。

  5. 选择操作,然后选择删除日志组

  6. 删除日志组对话框中,选择删除

删除 S3 源存储桶中的原始文件

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择存储桶

  3. 存储桶名称列表中,选择您在步骤 2中将原始文件上传到的存储桶名称(例如,tutorial-bucket)。

  4. 选中要删除的对象名称左侧的复选框(例如,tutorial.txt)。

  5. 选择 Delete(删除)。

  6. 永久删除对象?删除对象页面上,在文本框中输入 permanently delete 确认您希望删除此对象。

  7. 选择删除对象

删除 S3 源存储桶

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择 存储桶

  3. 存储桶列表中,选择您在步骤 1中创建的存储桶名称旁的单选按钮(例如,tutorial-bucket)。

  4. 选择 Delete(删除)。

  5. 删除存储桶 页面上,通过在文本字段中输入存储桶名称来确认要删除存储桶,然后选 删除存储桶

删除 IAM 用户

  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧导航窗格中,选择用户,然后选中要删除的用户旁的复选框。

  3. 在页面的顶部,选择删除用户

  4. 删除用户名?对话框中,在文本输入字段中输入用户名以确认删除用户。选择 Delete(删除)。

后续步骤

完成本教程后,您可以为您的用例自定义 Lambda 函数,以便修改标准 S3 GET 请求返回的数据。

以下是 S3 Object Lambda 的常见用例列表:

  • 屏蔽敏感数据以确保安全性和合规性。

    有关更多信息,请参阅教程:使用 S3 Object Lambda 和 Amazon Comprehend 检测和修订 PII 数据

  • 筛选某些数据行以提供特定信息。

  • 使用来自其他服务或数据库的信息增加数据。

  • 跨数据格式转换,例如将 XML 转换为 JSON 以实现应用程序兼容性。

  • 在下载文件时压缩或解压缩文件。

  • 调整图像大小和水印图像。

  • 实施自定义授权规则以访问数据。

有关 S3 Object Lambda 的更多信息,请参阅 使用 S3 Object Lambda 转换对象