产品AWS Machine Learning·原文 2026年9月28日本站收录 2026年9月29日

AWS发布Amazon Textract适配器跨账户生命周期自动化方案

AWS机器学习博客发布一套基础设施模板与流程,用于把训练好的Amazon Textract适配器从训练环境推进到生产环境,并把适配器ID外置到Parameter Store,实现无需重新部署应用的更新。

AI解读:这套方案要解决的是Amazon Textract适配器从概念验证走向生产时卡住的三件事:跨AWS账户的适配器推广、多版本文档的路由选择,以及受监管行业要求的安全配置。

推广环节目前最别扭:适配器从训练账户复制到其他账户需要提AWS Support工单,而且只有训练好的模型权重会转移,查询定义和训练数据不跟着走,必须自己另外保存。

方案的关键设计是把适配器ID存进AWS Systems Manager Parameter Store。换新适配器版本或推向新环境时只改参数,不用改应用代码、不用重新部署,AWS称原本需要数小时或数天的协调可以缩短到几秒。

文档路由问题来自API限制:每页、每种功能类型一次AnalyzeDocument调用只能用一��适配器,所以处理多种表单版本时,需要在上游先用DetectDocumentText提取文本并识别版本,再选对应适配器。

对管理大量适配器且更新频繁的团队,AWS给出集中式枢纽账户方案,用跨账户IAM角色调用枢纽账户的Textract,省掉重复工单和复制,但所有API费用集中到一个账户,且要自行做内部成本分摊。

方案同时给出了适用边界:适配器本身不能用CloudFormation原生创建,需用AWS CLI或CI/CD步骤;Terraform只能用terraform_data加local-exec作为临时办法。该文以Custom Queries适配器举例,但AWS称架构与推广策略对Forms和Tables适配器同样适用。

AWS在机器学习博客发布了一套用于管理Amazon Textract适配器生命周期的方案,涵盖基础设施模板、跨账户推广流程、生产安全配置,以及面向多版本文档的预分类路由模式。

方案的核心做法之一是把适配器ID外置到AWS Systems Manager Parameter Store。AWS称,这样一来更新生产环境的适配器引用可以做到零停机、无需重新部署应用,原本需要数小时或数天协调的变更可以在几秒内完成。

根据该文,Amazon Textract适配器基于预训练的Textract深度学习模型扩展而来,用户上传样本文档、用查询和预期回答标注,然后训练适配器识别特定文档的版面模式,不需要自己构建自定义ML模型。

文章举例使用Custom Queries适配器,但AWS明确说明,解决方案架构、推广策略和安全配置等生命周期管理模式与适配器类型无关,同样适用于Forms和Tables适配器。

生产化的三个卡点:推广、路由、安全

AWS在文中列出适配器越过概念验证阶段后的三个核心挑战。

适配器推广指如何把训练好的适配器跨AWS账户从训练环境移到生产环境。AWS说明,当前流程需要提交AWS Support工单,且只有训练后的模型权重会转移,查询定义和训练数据不会转移。没有自动化时,这会成为拖慢发布节奏的人工瓶颈。

文档路由的约束来自Amazon Textract自身:每页、每种功能类型的一次AnalyzeDocument API调用只支持一个适配器。企业通常有多种表单版本,因此需要在调用Textract之前设置路由机制,为每份文档选择正确的适配器。

生产安全方面,受监管行业要求静态和传输中加密、网络隔离、最小权限IAM、完整审计日志和合规认证。

  • 适配器推广:需要AWS Support工单,仅模型权重转移,查询定义与训练数据不转移
  • 文档路由:一次AnalyzeDocument调用每页每功能类型仅支持一个适配器
  • 生产安全:加密、网络隔离、最小权限IAM、审计日志、合规认证

推荐的处理流水线:先分类,再选适配器

方案实现了一条多阶段处理流水线,把文档分类、适配器选择和抽取分开处理。

文档摄取:文档进入使用服务端加密的Amazon S3桶。文章示例代码为简单起见使用S3托管加密(AES256),对生产负载则建议使用AWS KMS客户托管密钥,以便完全控制密钥轮换和访问策略。

预分类:对每份受支持格式的文档,先用DetectDocumentText抽取原始文本,再通过扫描表单标题、版本标识、字段标签等文本标记判断文档版本。

适配器选择:根据分类结果,从Parameter Store取出正确的适配器ID。

Textract处理:用选中的Custom Queries适配器调用AnalyzeDocument或StartDocumentAnalysis API。

结果交付:抽取出的键值对流入下游处理系统,例如数据库、工作流引擎或人工复核队列。

生产部署方面,文章建议通过AWS PrivateLink路由API调用以实现网络隔离,由IAM执行最小权限访问,AWS CloudTrail提供API审计日志,Amazon CloudWatch负责运营监控和告警。

  • 文档摄取:S3服务端加密,生产建议改用AWS KMS客户托管密钥
  • 预分类:DetectDocumentText提取文本,扫描文本标记识别文档版本
  • 适配器选择:从Parameter Store读取对应适配器ID
  • 抽取:调用AnalyzeDocument或StartDocumentAnalysis
  • 结果交付:键值对送入数据库、工作流引擎或人工复核队列

API限制与支持格式

文章说明了与方案相关的API约束。

Amazon Textract支持JPEG、PNG、PDF和TIFF文件格式。同步的AnalyzeDocument API处理单页文档,或处理多页文件的第一页;异步的StartDocumentAnalysis API可处理多页PDF和TIFF,页数上限为 3,000 页。

基于XFA的PDF不受支持。文章建议查阅Amazon Textract配额文档获取完整清单。

  • 支持JPEG、PNG、PDF、TIFF
  • AnalyzeDocument同步处理单页或文件首页
  • StartDocumentAnalysis异步处理多页PDF/TIFF,上限 3,000 页
  • 不支持XFA格式PDF

两种跨环境推广方式

文章给出在环境之间移动适配器的两种架构选择。

方式一:跨账户复制(标准做法)。在训练账户创建并训练适配器,再通过AWS Support工单复制到每个下游账户,每个环境各自维护适配器ID。AWS认为这种方式对适配器数量较少(少于 10 个)且更新不频繁的组织更直接。

方式二:集中式枢纽账户。所有适配器在单一专用枢纽账户训练,其他环境通过跨账户IAM角色在该枢纽账户调用Amazon Textract,完全省去重复的工单和适配器复制。AWS称这种方式适合管理大量适配器且频繁更新的组织,代价是引入跨账户网络复杂度。

推广复制本身分三步。第一步准备:收集源适配器ID和版本号、源AWS账户ID和区域、目标AWS账户ID(必须同区域)、适配器名称和功能类型。复制要求源账户和目标账户在同一AWS区域,每个区域需单独提交请求;每个适配器版本也各自需要一次复制请求。

第二步通过AWS Support开单请求复制,需提供区域、源账户、适配器ID、适配器版本、目标账户和适配器ID。目标账户中必须已经存在一个通过控制台或API创建的适配器,但不要求在目标账户训练适配器版本,只需要适配器名称和描述存在即可。

第三步在目标账户验证:复制完成后用测试文档集跑一遍复制的适配器,确认抽取准确率与基线一致。

文章强调适配器学的是某类文档的结构和字段版面,不是单份文档的内容。举例来说,用 10 份ABC表单样本训练出的适配器,在生产中可以处理该类型的 18,000 份不同表单。

由于只有模型权重会转移,组织必须自行在外部维护每个适配器的查询配置记录,例如放在Parameter Store或受版本控制的文件中。

  • 方式一:跨账户复制,适配器少于 10 个、更新不频繁时更直接
  • 方式二:集中式枢纽账户,省去重复工单和复制,但增加跨账户网络复杂度
  • 复制要求源与目标账户在同一区域,每个区域单独请求,每个版本单独请求
  • 目标账户需先存在适配器元数据,不要求在目标账户训练
  • 只有模型权重转移,查询定义和训练数据需自行保存

集中式枢纽账户的IAM、成本与配额

对于集中式枢纽账户方案,文章给出跨账户IAM角色配置。在枢纽账户中创建一个供工作负载账户代入以调用Amazon Textract的角色,信任策略允许指定工作负载账户代入,并通过ExternalId条件防止混淆代理攻击。各工作负载账户的处理Lambda在调用Amazon Textract API前使用sts:AssumeRole代入该跨账户角色。

权限策略中,textract:AnalyzeDocument、textract:StartDocumentAnalysis、textract:GetDocumentAnalysis、textract:DetectDocumentText等操作目前不支持资源级权限,Resource必须设为“*”。文章建议把策略限制在真正需要的操作上。

成本方面,集中式枢纽方案下所有Amazon Textract API费用计入枢纽账户,简化成本跟踪但需要内部分摊机制,例如AWS成本分配标签。Amazon Textract按处理页数计费,带适配器的Custom Queries费率高于基础文本检测;由于Textract采用统一的按页定价,把用量集中到一个账户不会获得批量折扣。同区域内跨账户访问S3不产生数据传输费,但如果工作负载账户把文档传入枢纽账户的S3桶,需要考虑S3 PUT/GET请求费用。

作为对比,跨账户复制方案下每个账户各自支付自己的Amazon Textract用量,天然按团队隔离成本,但会重复适配器管理工作。

配额方面,采用集中式枢纽账户前需要评估所有工作负载账户叠加后的每秒事务数(TPS)需求,因为集中调用意味着所有环境竞争同一个账户的Amazon Textract配额,文章建议通过Service Quotas控制台提前申请配额提升。

  • 枢纽角色使用ExternalId条件防混淆代理攻击
  • 相关Textract操作不支持资源级权限,Resource需设为“*”
  • 所有API费用计入枢纽账户,按页计费,集中用量不享受批量折扣
  • 同区域跨账户S3访问无数据传输费,但可能产生S3请求费用
  • 集中调用使所有环境共享一个账户的TPS配额,需提前评估并申请提升

落地方式与多环境拓扑

文章提供AWS CloudFormation和Terraform基础设施模板、跨账户推广流程、生产安全配置以及文档路由的预分类模式。

适配器本身无法通过CloudFormation原生创建,因此文章建议用AWS CLI创建,可以把CLI调用包装成由AWS Lambda支持的CloudFormation自定义资源,或作为CI/CD流水线中的一个步骤执行。IAM角色、S3桶、KMS密钥、SSM参数、CloudWatch告警等支撑基础设施则通过CloudFormation或Terraform管理。

对使用Terraform的组织,文章建议使用Terraform 1.4引入的terraform_data(已弃用的null_resource的继任者)配合local-exec provisioner。AWS将其定位为临时方案,建议定期检查Terraform provider是否已原生支持Amazon Textract适配器资源。

环境拓扑方面,文章推荐四个环境:训练(适配器创建、训练和标注)、验证(用多样测试文档集测试、回归测试)、预生产(与下游系统集成测试、性能基准测试)、生产(在完整安全控制下处理实际文档)。AWS说明多环境并非强制,该模型可以按组织现有账户结构裁剪;较小团队或早期实现可以只从两个环境(训练和生产)起步,用命名约定、标签和独立S3桶在同一账户内隔离。

使用前置条件包括:一个AWS账户;创建和管理Textract适配器、S3桶、KMS密钥和Parameter Store参数所需的IAM权限(文章给出了一份最小权限策略示例,并在使用KMS加密S3桶时提示为源桶密钥添加kms:Decrypt、为输出桶密钥添加kms:GenerateDataKey);已安装并配置AWS CLI v2;至少 5 份训练文档和 5 份测试文档;跨账户推广时需要同区域的源和目标账户访问权限;可选使用CloudFormation或Terraform 1.4及以上版本进行基础设施即代码部署。

  • 适配器无法用CloudFormation原生创建,需用AWS CLI或CI/CD步骤
  • Terraform用terraform_data和local-exec,AWS称其为临时方案
  • 四环境模型:训练、验证、预生产、生产
  • 小团队可在单账户内从训练和生产两个环境起步
  • 准备至少 5 份训练文档和 5 份测试文档;Terraform方案需 1.4 及以上版本

信息来源