Как сделать AWS Signature Version 4 с локального компьютера? - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь протестировать некоторый код Node.js с моего локального компьютера для использования в функции AWS Lambda.Это включает в себя подписание запроса с помощью Signature Version 4.

Я выполнил вход с помощью своего ключа доступа с помощью AWS CLI, но когда я пытаюсь сделать запрос, используя следующий код, я получаю эту ошибку на signer.addAuthorization.Какой шаг я пропускаю?Он отлично работает из лямбда-функции.

Код:

const AWS = require('aws-sdk');
const creds = new AWS.EnvironmentCredentials('AWS');
...
var signer = new AWS.Signers.V4(req, 'es');
signer.addAuthorization(creds, new Date());

Ошибка:

TypeError [ERR_INVALID_ARG_TYPE]: The "key" argument must be one of type string, TypedArray, or DataView. Received type undefined
    at new Hmac

1 Ответ

1 голос
/ 29 сентября 2019

В соответствии с документацией EnvironmentCredentials ,

По умолчанию этот класс будет искать соответствующие переменные среды с префиксом заданного envPrefix

Поэтому перед вызовом кода вам необходимо установить переменные окружения AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY и AWS_SESSION_TOKEN.

В среде AWS Lambda эти переменные среды уже установлены, поэтому они работают.

...