Вызов AWS Lambda из Lambda с использованием NodeJS с заголовками и путем
Я бы хотел, чтобы лямбда под названием GoalsFeed вызывала другую лямбду с именем Goals, используя AWS.Lambda. Кажется, это работает, за исключением двух вещей:
Я не уверен, как передать заголовок целевой службе.
FunctionName - это "myapp-goal-get" (он же Goals), но я хочу перейти к определенному пути в этом сервисе - все три пути, показанные ниже, являются действительными, но я хочу указать "../owner/" 123-дюймовый путь.
Ниже приведено мое первое замечание по этому поводу. Может ли кто-нибудь помочь мне изменить это так, чтобы передать "tenantid" в качестве заголовка и убедиться, что при вызове "myapp-goal-get" он видит себя вызываемым с пути с помощью ".. / владелец /123"?
// fetch back all goals by userid
var lambda = new AWS.Lambda({
region: 'us-east-1'
});
var payload = {};
payload[ "userId" ] = "123";
payload[ "tenantid" ] = "1";
const params = {
FunctionName: 'myapp-goals-get',
InvocationType: "RequestResponse",
Payload: JSON.stringify(payload)
};
lambda.invoke( params, function(error, data) {
console.log( "data: %s", JSON.stringify( data ) );
if( error ) {
context.done( 'error', error );
}
else if( data.Payload )
{
context.succeed( data.Payload )
}
});
2 ответа
Моим решением было просто сбросить pathParameters и передать событие дочерней лямбде.
event.pathParameters = { };
event.pathParameters.id = 123;
const tdParms = {
FunctionName : 'mylambda',
Payload: JSON.stringify( event )
};
lambda.invoke( tdParms, function( error, data ) {
...
}
Правильный способ обработки этого варианта использования - настроить REST API с API-шлюзом + лямбда с использованием интеграции прокси (для пересылки всех заголовков HTTP / тела / и т. Д. В вашу функцию лямбда)
Затем вы можете выполнить цепочку внутри того же запроса или сделать еще один вызов вашему API.