Applied/AWS
nodejs Lambda 함수에서 다른 Lambda 함수 호출하기
가누
2023. 12. 17. 17:11
반응형
AWS Lambda 함수 간의 Internal Call을 사용하기 위해, 두 함수가 동일한 VPC 내에 위치해 있다면,
VPC 내의 리소스 간 AWS SDK를 통해 통신이 가능하다.
아래 예제를 통해 Nodejs에서 AWS SDK를 사용하여 Lambda 함수에서 다른 Lambda 함수를 호출하는 방법을 확인해보자
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();
exports.handler = async (event) => {
const params = {
FunctionName: 'target-lambda-function-name', // 호출할 Lambda 함수의 이름
InvocationType: 'RequestResponse', // 동기 호출
Payload: JSON.stringify({ key1: 'value1', key2: 'value2' }), // 전달할 데이터
};
try {
const response = await lambda.invoke(params).promise();
console.log(response);
return response.Payload;
} catch (error) {
console.error(error);
throw error;
}
};
이때 Lambda 함수가 다른 Lambda 함수를 호출하려면 적절한 IAM 권한이 필요하다.
-> Lambda 함수의 실행 역할에 lambda:InvokeFunction 권한을 포함시켜야 한다.
또한 Lambda 함수가 VPC 내에서 다른 AWS 리소스와 통신하려면, 해당 VPC에 대한 충분한 네트워크 설정이 필요하다
ex) NAT 게이트웨이 또는 VPC 엔드포인트를 구성
반응형