【问题标题】:Amazon Textract, Elastic Beanstalk -assumed-role/aws-elasticbeanstalk-ec2-role/... is not authorized to perform textract:AnalyzeDocumentAmazon Textract、Elastic Beanstalk -assumed-role/aws-elasticbeanstalk-ec2-role/... 无权执行 textract:AnalyzeDocument
【发布时间】:2021-04-16 14:10:54
【问题描述】:

您好,我在 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)

谁能给我建议如何/在哪里可以设置?

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-elastic-beanstalk amazon-textract


    【解决方案1】:

    当您在 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

    【讨论】:

    • 谢谢,这很有趣。当我从 Eclipse 运行我的 Spring Boot 应用程序时,我传递了几个环境变量 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。当我上传到 EBS 应用程序时,哪些不可用。那么我应该在代码中包含类似于您建议的内容吗?
    • 正是——按照这篇文章(替换Java代码来使用你的具体服务),你需要设置这篇文章中提到的环境变量。一旦你这样做,你应该没有问题。我在 Elastic Beanstalk 上部署了许多 Spring BOOT 应用程序,一旦设置了变量,它们就可以工作。
    • 谢谢,我会试一试的。
    • 其中大部分应该属于免费层。检查aws.amazon.com/free/…
    • 谢谢你的问题。现在它可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2014-11-15
    • 2015-10-29
    • 2020-07-10
    • 2017-11-03
    • 2019-10-19
    相关资源
    最近更新 更多