创建AWS Lambda函数 - Amazon Textract

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

创建AWS Lambda函数

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

有关使用 Lambda 函数大规模处理文档的示例,请参阅使用 Amazon Textract 进行大规模文档处理.

要从 Lambda 函数调用 DetectDocumentText 操作,请执行以下操作:

第 1 步:创建 Lambda 部署程序包
  1. 打开一个命令窗口。

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

    pip install boto3 --target python/. zip boto3-layer.zip -r python/
第 2 步:创建 Lambda 函数
  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Lambda 控制台:https://console.aws.amazon.com/lambda/

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

  3. 指定以下内容。

    • 选择 Author from scratch (从头创作)

    • 对于 Function name (函数名称),输入一个名称。

    • 适用于运行时,选择Python 3.7要么Python 3.6.

    • 适用于选择或创建执行角色,选择创建具有基本 Lambda 权限的新角色.

  4. 选择创建函数创建 Lambda 函数。

  5. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  6. 在导航窗格中,选择角色.

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

  8. 选择Permissions (权限)选项卡,然后选择附加策略.

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

  10. Select附加策略.

有关更多信息,请参阅 。使用控制台创建 Lambda 函数

第 3 步:创建并添加层
  1. 打开 AWS Lambda 控制台,地址:https://console.aws.amazon.com/lambda/

  2. 在导航窗格中,选择 Layers(层)

  3. 选择 Create layer (创建层)

  4. 适用于名称,输入一个名称。

  5. 对于说明,输入说明。

  6. 适用于代码条目类型,选择上传 .zip 文件然后选择上传.

  7. 在对话框中,选择 zip 文件 (boto3-layer.zip),即您在其中创建的 zip 文件第 1 步:创建 Lambda 部署程序包.

  8. 适用于兼容运行时,选择您在中选择的运行时版本第 2 步:创建 Lambda 函数.

  9. 选择Create创建层。

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

  11. 在导航窗格中,选择 Functions(函数)。

  12. 在资源列表中,选择您在中创建的函数。第 2 步:创建 Lambda 函数.

  13. 选择配置而且在设计师部分,选择(在您的 Lambda 函数名称下)。

  14. 部分,选择添加层.

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

  16. In兼容层中,选择名称版本在步骤 3 中创建的层。

  17. 选择 Add (添加)

第 4 步:将 python 代码添加到函数
  1. In设计师,选择函数。

  2. 在函数代码编辑器中,将以下内容添加到文件。lambda_function.py. 更改的值bucketdocument到存储桶和文档中。

    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) }
  3. 选择Save(保存)保存 Lambda 函数。

第 5 步:测试 Lambda
  1. Select测试.

  2. Event name (事件名称).

  3. 选择创建

  4. 输出,列表Block对象,将显示在执行结果窗格中。

如果AWS Lambda函数返回超时错误,可能是 Amazon Textract API 操作调用的原因。有关延长超时期限的信息AWS Lambda请参阅函数AWS Lambda 函数配置.

有关从您的代码调用 Lambda 函数的信息,请参阅调用AWS Lambda函数.