Amazon Textract、Elastic Beanstalk -assumed-role/aws-elasticbeanstalk-ec2-role/... 无权执行 textract:AnalyzeDocument

问题描述

嗨,我在 Spring Boot 中构建了一个应用程序,它使用 amazon textract 从 pdf 文件获取表数据。当这个应用程序安装在我的本地主机上时它可以正常工作。 现在我在 AWS 环境中创建了一个新的 Elastic Beanstalk 应用程序,并将我的 spring jar 上传到那里。当我调用应用程序的 url 时,我可以验证该应用程序是否存在,但是当我调用任何端点又调用 textract 服务时,我收到权限错误

User: arn:aws:sts::1234:assumed-role/aws-elasticbeanstalk-ec2-role/i-1234 is not authorized to perform textract:AnalyzeDocument (Service: Textract,Status Code: 400,Request ID: 123xyz,Extended Request ID: null)

任何人都可以给我建议如何/在哪里设置?

谢谢

解决方法

在 Elastic Beanstalk 上运行 Spring Boot 应用程序时,需要确保正确设置了服务客户端。如果不这样做,就会遇到问题。例如,下面是一种为 Java V2 客户端的 Amazon DynamoDB 创建服务客户端的方法:

 DynamoDbClient ddb = DynamoDbClient.builder()
            .region(region)
            .credentialsProvider(EnvironmentVariableCredentialsProvider.create())
            .build(); 

您可以在 Elastic Beanstalk 上设置环境变量,以便成功创建服务客户端。更多信息在这里:

Creating your first AWS Java web application