[英]AWS Local DynamoDB The security token included in the request is invalid
[英]AWS Lambda + DynamoDB Invalid security token in request
我有一個與 DynamoDB 連接的 Lambda function。 如果我構建和部署這個 function 並在我的 AWS 控制台中運行它,它工作得很好,但如果我嘗試從我的 IDE (Intellij) 執行它,它就不起作用。 我收到以下錯誤消息:
The security token included in the request is invalid (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnrecognizedClientException;
我嘗試在這里查看其他問題,但似乎沒有任何鍛煉。 我有兩個用戶,每個用戶都有一個組。 其中一個具有 AdministratorAcces,另一個具有 DynamoDBFullAccess 和 AWSLambda_FullAccess 權限。 他們都不能在本地執行 function。 嘗試使用 cmd 中的aws configure
重新配置我的憑據。
我還嘗試創建新的安全憑證。 問題不在於 function 因為如果我刪除 DynamoDB 連接代碼並在本地運行和部署 function 或將其部署在我的 AWS 控制台中成功執行。 無論如何,我將在我的連接代碼下方發布:
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.defaultClient();
DynamoDBMapper mapper = new DynamoDBMapper(client);
MyCustomData data = new MyCustomData("test","12313","test2");
mapper.save(data);
編輯:
我一直在調試發生確切問題的代碼,似乎在 class AmazonHttpCLient.java
中有一個檢查憑據的部分。 關鍵是AWSCredentials
object中有三個屬性:
我在 ~/.aws/credentials 中的憑據沒有 sessionToken 參數,我在任何時候都設置了它。 另外我的一個朋友調試了同一個項目,說他調試的時候沒有屬性sessionToken
。 我嘗試重新安裝 AWS CLI、SAM 和 Intellij,刪除憑證文件並檢查我的變量環境中是否沒有憑證,但問題仍然存在。
很可能,此錯誤是由於用於與 AWS 賬戶建立連接的憑證/aws 配置文件造成的。
要使用 IntelliJ IDEA 解決此問題,我建議您將AWS Toolkit安裝到您的 IntelliJ IDEA 中。 此外,使用 AWS Toolkit 找出要使用哪個 aws 配置文件來滿足您的使用案例。
否則,請參閱此現有線程以獲取更多其他選項
我設法通過降級我的 SAM CLI 版本來解決這個問題。 它在 1.15.0 中,我的朋友在 1.6.2 中。 所以我下載了那個特定的版本並像一個魅力一樣工作。
我不知道為什么會發生這種情況,但我希望這在未來的版本中得到修復。
我希望它可以幫助遇到這個問題的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.