

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建AWS Lambda函数
<a name="lambda"></a>

您可以从内部调用 Amazon Textract API 操作AWS Lambdafunction. 以下说明演示了如何在 Python 中创建调用的 Lambda 函数。[DetectDocumentText](API_DetectDocumentText.md). 它返回一组[Block](API_Block.md)对象。要运行此示例，您需要一个包含 PNG 或 JPEG 格式文档的 Amazon S3 存储桶。要创建函数，您可以使用控制台。

有关使用 Lambda 函数大规模处理文档的示例，请参阅[使用 Amazon Textract 进行大规模文档处理](https://github.com/aws-samples/amazon-textract-serverless-large-scale-document-processing).

## 要从 Lambda 函数调用 DetectDocumentText 操作，请执行以下操作：
<a name="lambda-procedure"></a><a name="create-deployment-package"></a>

**第 1 步：创建 Lambda 部署程序包**

1. 打开一个命令窗口。

1. 输入以下命令以创建具有最新版本的部署程序包AWSSDK。

   ```
   pip install boto3 --target python/.
   zip boto3-layer.zip -r python/
   ```<a name="create-function"></a>

**第 2 步：创建 Lambda 函数**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 AWS Lambda 控制台：[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

1. 选择 **Create function**（创建函数）。

1. 指定以下内容。
   + 选择 **Author from scratch (从头创作)**。
   + 对于 **Function name (函数名称)**，输入一个名称。
   + 适用于**运行时**，选择**Python 3.7**要么**Python 3.6**.
   + 适用于**选择或创建执行角色**，选择**创建具有基本 Lambda 权限的新角色**.

1. 选择**创建函数**创建 Lambda 函数。

1. 通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**角色**.

1. 从资源列表中，选择 Lambda 为您创建的 IAM 角色。角色名称以 Lambda 函数的名称开头。

1. 选择**Permissions (权限)**选项卡，然后选择**附加策略**.

1. 选择 AmazonTextractFullAccess 权限和 AmazonS3ReadOnlyAccess 政策。

1. Select**附加策略**.

有关更多信息，请参阅 。[使用控制台创建 Lambda 函数](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)

**第 3 步：创建并添加层**

1. 打开 AWS Lambda 控制台，地址：[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

1. 在导航窗格中，选择 **Layers（层）**。

1. 选择 **Create layer (创建层)**。

1. 适用于**名称**，输入一个名称。

1. 对于**说明**，输入说明。

1. 适用于**代码条目类型**，选择**上传 .zip 文件**然后选择**上传**.

1. 在对话框中，选择 zip 文件 (boto3-layer.zip)，即您在其中创建的 zip 文件[第 1 步：创建 Lambda 部署程序包](#create-deployment-package).

1. 适用于**兼容运行时**，选择您在中选择的运行时版本[第 2 步：创建 Lambda 函数](#create-function).

1. 选择**Create**创建层。

1. 选择导航窗格菜单图标。

1. 在导航窗格中，选择 **Functions**（函数）。

1. 在资源列表中，选择您在中创建的函数。[第 2 步：创建 Lambda 函数](#create-function).

1. 选择**配置**而且在**设计师**部分，选择**层**（在您的 Lambda 函数名称下）。

1. 在**层**部分，选择**添加层**.

1. 选择**从运行时兼容的图层列表中选择**.

1. In**兼容层**中，选择**名称**和**版本**在步骤 3 中创建的层。

1. 选择 **Add (添加)**。

**第 4 步：将 python 代码添加到函数**

1. In**设计师**，选择函数。

1. 在函数代码编辑器中，将以下内容添加到文件。**lambda\$1function.py**. 更改的值`bucket`和`document`到存储桶和文档中。

   ```
   import json
   import boto3
   
   def lambda_handler(event, context):
   
       bucket="bucket"
       document="document"
       client = boto3.client('textract')
   
   
   
       #process using S3 object
       response = client.detect_document_text(
           Document={'S3Object': {'Bucket': bucket, 'Name': document}})
   
       #Get the text blocks
       blocks=response['Blocks']
       
       return {
           'statusCode': 200,
           'body': json.dumps(blocks)
       }
   ```

1. 选择**Save（保存）**保存 Lambda 函数。

**第 5 步：测试 Lambda**

1. Select**测试**.

1. 为**Event name (事件名称)**.

1. 选择**创建**。

1. 输出，列表[Block](API_Block.md)对象，将显示在执行结果窗格中。

如果AWS Lambda函数返回超时错误，可能是 Amazon Textract API 操作调用的原因。有关延长超时期限的信息AWS Lambda请参阅函数[AWS Lambda 函数配置](https://docs.aws.amazon.com/lambda/latest/dg/resource-model.html).

有关从您的代码调用 Lambda 函数的信息，请参阅[调用AWS Lambda函数](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-functions.html).