'Could not load credentials from any providers' error

0

Hello,

I'm using sdk v3 for dynamodb on node.js. When I try to dynamodb multiple times in short time, it occurs error 'CredentialsProviderError: Could not load credentials from any providers'.

I make dynamodb instance everytime if I need to access to dynamodb, like const client = new DynamoDB({ region: 'ap-northeast-2' });

I applied role to ec2, so it works well for simple access.

After I chunked the accessing dynamodb, this error disappears. So, I just can guess exchanging credentials fast makes this problem.

Could you explain about this problem?

Thanks

1 個回答
1
已接受的答案

This looks like its caused by EC2's Instance Metadata Service (IMDS) throttling.

We throttle queries to the IMDS on a per-instance basis, and we place limits on the number of simultaneous connections from an instance to the IMDS.

If you're using the IMDS to retrieve AWS security credentials, avoid querying for credentials during every transaction or concurrently from a high number of threads or processes, as this might lead to throttling. Instead, we recommend that you cache the credentials until they start approaching their expiry time.

While caching would be a good workaround, I much prefer to re-use my service clients, avoid creating them for every API call as it leads to higher latencies and unexpected issues such as IMDS throttling and increased KMS calls (if you use KMS CMK).

Ref

profile pictureAWS
專家
已回答 1 年前
  • I thought that credentials cache manager works behind creating new aws resource.

    then I must check credentials's expiry time to use aws resourse

    thanks!

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南