0

我编写了一小段 .NET Core 代码来与 Amazon Textract API 交互。代码本身很小,在我的一台开发机器上运行良好。该代码不使用凭证做任何事情,一切都是通过 AWS CLI 配置的。当我在其他开发机器上运行相同的代码时,我收到以下错误:

AmazonTextractException:请求中包含的安全令牌无效

到目前为止,这是我尝试过的:

  • 创建一个新的 AWS 密钥/密钥对,删除任何先前存在的环境变量(AWS_SECRET_KEY 等),删除~\.aws\config~\.aws\credentials. 使用新凭证重新运行 aws configure。同样的例外。

  • 再次执行上述清理步骤后,重新使用在一台开发机器上工作的相同 AWS 密钥/密钥对。

  • 确保在 AWS 账户上关闭了 MFA

两台机器之间的~\.aws\config~\.aws\credentials是相同的。

return await this.textract.AnalyzeDocumentAsync(request);

在一台机器上,我的代码运行良好,它使用 OCR 从我的文档中提取文本。在另一台机器上,它会导致此错误:

Amazon.Textract.AmazonTextractException:请求中包含的安全令牌无效

考虑到配置,我希望代码在每个系统上以相同的方式工作。

这台机器上还有什么可能导致事情表现不同?是否有任何其他我不知道的秘密 AWS 设置,或者在某些系统上可能需要任何其他步骤?

4

1 回答 1

0

我们找出了问题所在——在这种情况下,它与 Visual Studio 版本问题有关。一台开发机器(正常工作的机器)安装了 Visual Studio 2019,而另一台(不工作)安装了 Visual Studio 2017。两台机器都安装了 AWS 工具包,但似乎只有 2019 版本正确地从机器的 AWS CLI 配置。因此,在 2019 年的机器上,我们在 VS AWS Toolkit 中有一个有效的配置文件——在 2017 年的机器上,我们没有。

于 2019-10-03T18:25:30.700 回答