You need to enable JavaScript to run this app. 使用Amazon Textract StartDocumentAnalysis异步分析文档未收到SNS通知排查
优惠活动
大模型
产品
解决方案
定价
更多

使用Amazon Textract StartDocumentAnalysis异步分析文档未收到SNS通知排查

Textract 异步任务收不到SNS通知的排查方案

最核心的根因:你选的IAM角色根本不对

你现在填的arn:aws:iam::093475263507:role/SNSSuccessFeedback是AWS默认给SNS配套的、用来收集消息投递成功/失败回调指标的角色,从设计上就不是给Textract做通知投递用的。
Textract在NotificationChannel参数里要求的角色,本质是让Textract服务自己代入身份,替你往指定SNS主题发消息的授权,这个角色必须同时满足两个要求,少一个都发不出去:

  • 角色的信任策略里必须把textract.amazonaws.com加进允许代入的服务主体列表,否则Textract根本拿不到这个角色的临时凭证
  • 角色的权限策略必须明确允许对目标SNS主题执行sns:Publish操作

你之前选的那个角色,别说给Textract开跨服务信任了,权限里大概率连对应SNS主题的发布权限都没有,从根上整个投递链路就走不通。

其他容易踩的配置坑

就算你把角色配对了,你现在的现有配置还有几个问题会挡住消息投递:

  • 你建的是FIFO类型的SNS主题,要确认Textract推送的消息是否符合FIFO主题的消息组ID、去重规则要求——如果Textract发的消息没带匹配的MessageGroupId,会被FIFO主题直接拒收
  • 你现在用的是SNS默认的访问策略,只校验了SourceOwner属于你的账号,没有单独给Textract服务开发布权限,部分场景下跨服务调用会被主题策略拦截,消息根本打不进去
  • 别干等SNS通知,直接用你启动任务时返回的JobId,调用Textract的GetDocumentAnalysis接口拉一次任务状态:如果任务已经是完成/失败状态,说明任务本身跑完了只是SNS链路断了;如果任务挂了几个小时还是IN_PROGRESS,说明任务本身就没正常执行,和SNS配置对不对没关系

快速落地修复步骤

  • 建一个专用的IAM角色,信任主体选textract.amazonaws.com,给这个角色绑定对应SNS主题的sns:Publish权限,把得到的角色ARN填到NotificationChannel的RoleArn参数里
  • 给SNS主题单独加一条访问策略声明:允许Textract的服务主体对这个主题执行sns:Publish操作,别只靠默认的Owner校验兜着
  • 用新的配置重新发起一次测试任务,同时去SNS控制台的主题投递指标页看有没有投递失败记录,直接定位具体报错原因

内容的提问来源于stack exchange,提问作者Whizzil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 23:36:04