Инициализация клиента JavaScript AWS IoT в среде Elastic Beanstalk

Я использую AWS IoT JavaScript SDK как часть приложения, которое развертывается на AWS Elastic Beanstalk. При попытке инициализировать клиента я получаю следующую ошибку: Failed to read credentials from /tmp/.aws/credentials

Это имеет смысл, потому что моя среда Elastic Beanstalk получает доступ к сервисам AWS через свою роль IAM, а не через файл учетных данных. Таким образом, как мне инициализировать клиента, когда моя среда использует роль IAM, а не файл?

Вот код, который я использую:

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

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

person johnnyodonnell    schedule 26.01.2018    source источник
comment
вы настроили роль службы или профиль экземпляра? docs.aws.amazon.com/elasticbeanstalk/latest/dg/   -  person Viccari    schedule 27.01.2018
comment
Я использую одну и ту же роль IAM как для роли службы, так и для профиля экземпляра. Кроме того, похоже, что Elastic Beanstalk теперь использует два профиля экземпляра (один для службы и один для ведения журнала).   -  person johnnyodonnell    schedule 27.01.2018


Ответы (1)


Прочитав этот выпуск GitHub, я понял, что необходимо получить временные учетные данные через STS, Cognito или другую службу и периодически обновляйте клиент этими учетными данными до истечения срока их действия.

person johnnyodonnell    schedule 27.01.2018