반응형

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 엔드포인트를 구성

 

반응형