В настоящее время я разрабатываю приложение узла, работающее в инфраструктуре AWS, которое обращается к DynamoDB и SSM.
Я недостаточно опытен с Node для создания MVCE, но это те части, которые мне кажутся важными:
const AWS = require('aws-sdk')
AWS.config.update({ region: 'eu-west-1' })
const ddb = new AWS.DynamoDB.DocumentClient()
const ssm = new AWS.SSM()
const ssmQueryParams = {
Name: '/foo/bar/tablename',
WithDecryption: true
}
let ssmQueryResult
ssmQueryResult = (await ssm.getParameter(ssmQueryParams).promise())
const tableName = ssmQueryResult.Parameter.Value
const ddbParams = {
TableName: tableName,
Key: {
'foo_id': fooId
}
}
const ddbQueryResult = (await ddb.get(ddbParams).promise())
Итак, я хочу получить имя таблицы DynamoDB из SSM.Если я удаляю часть SSM, код работает.Но с этим я получаю
{ Error: connect EHOSTUNREACH 169.123.123.123:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1097:14)
message: 'Missing credentials in config',
errno: 'EHOSTUNREACH',
code: 'CredentialsError',
syscall: 'connect',
address: '169.123.123.123',
port: 80,
time: 2019-06-25T12:34:02.909Z,
originalError:
{ message: 'Could not load credentials from any providers',
errno: 'EHOSTUNREACH',
code: 'CredentialsError',
syscall: 'connect',
address: '169.123.123.123',
port: 80,
time: 2019-06-25T12:34:02.909Z,
originalError:
{ errno: 'EHOSTUNREACH',
code: 'EHOSTUNREACH',
syscall: 'connect',
address: '169.123.123.123',
port: 80,
message: 'connect EHOSTUNREACH 169.123.123.123:80' } } }
Так почему я могу получить доступ к данным на DynamoDB, но когда я хочу читать из SSM, я получаю ошибку учетных данных?
edit: Добавление accessKeyId
и secretAccessKey
до AWS.config.update
не вариант.