Я создал Authorizer в AWS API Gateway.Этот Авторизатор относится к Лямбда-функции.
Я передаю следующие значения в заголовке в конечную точку API с помощью Postman.
{
"type":"TOKEN",
"authorizationToken": "testing2",
"methodArn": "arn:aws:execute-api:us-west-2:444456789012:ymy8tbxw7b/*/GET/"
}
Указанные выше значения заголовка получены в лямбда-функции.Я могу видеть это через журналы в CloudWatch.
Я хочу передать дополнительное значение 'clientID' в заголовке.Поэтому я передаю следующие значения в заголовке почтальона:
{
"type":"TOKEN",
"authorizationToken": "testing2",
"methodArn": "arn:aws:execute-api:us-west-2:123456789012:ymy8tbxw7b/*/GET/",
"clientID" : "1000"
}
В этом случае функция Lambda не получает clientID.Я проверил различные потоки в SO, и понял, что это может быть достигнуто отображением заголовка.Поэтому я сделал следующее.
В разделе «Выполнение метода» метода API я создал новый заголовок clientID.В разделе «Запрос на интеграцию» в разделе «Заголовки HTTP» я указал следующее значение
Имя: clientID Отображено из: method.request.header.clientID
После выполнения вышеизложенного яразвернул API и попытался вызвать метод из Postman, но clientID показывается неопределенным.Ниже приведен код, который я написал в лямбда-функции
exports.handler = function(event, context, callback) {
var clientid = event.clientID;
//I always get event.clientID undefined
console.log("The client ID is:" + event.clientID);
}
EDIT
Ниже приведена ошибка из журнала CloudWatch.
START RequestId: 274c6574-dea5-4009-b777-a929f84b9a9d Version: $LATEST
2019-09-19T09:40:25.944Z 274c6574-dea5-4009-b777-a929f84b9a9d INFO The client ID is:undefined
2019-09-19T09:40:25.968Z 274c6574-dea5-4009-b777-a929f84b9a9d ERROR Invoke Error
{
"errorType": "Error",
"errorMessage": "Unauthorized",
"stack": [
"Error: Unauthorized",
" at _homogeneousError (/var/runtime/CallbackContext.js:13:12)",
" at postError (/var/runtime/CallbackContext.js:30:51)",
" at callback (/var/runtime/CallbackContext.js:42:7)",
" at /var/runtime/CallbackContext.js:105:16",
" at Runtime.exports.handler (/var/task/index.js:40:4)",
" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)",
" at process._tickCallback (internal/process/next_tick.js:68:7)"
]
}