在 Elastic Beanstalk 环境中初始化 AWS IoT JavaScript 客户端

Initializing AWS IoT JavaScript client within Elastic Beanstalk environment

我正在使用 AWS IoT JavaScript SDK 作为部署在 AWS Elastic Beanstalk 上的应用程序的一部分。尝试初始化客户端时出现以下错误:Failed to read credentials from /tmp/.aws/credentials

这是有道理的,因为我的 Elastic Beanstalk 环境通过其 IAM 角色而不是通过凭证文件访问 AWS 服务。因此,当我的环境使用 IAM 角色而不是文件时,如何初始化客户端?

这是我使用的代码:

const awsIot = require("aws-iot-device-sdk");

const device = awsIot.device({
    host: "myhost.region.amazonaws.com",
    protocol: "wss",
});

阅读本文后GitHub issue, it looks like I need to get temporary credentials either through STS, Cognito, or some other service and refresh the client 在这些凭据过期前定期使用这些凭据。