[nodejs] AWS Lambda로 외부 서비스와 통합하기

AWS Lambda는 서버리스 컴퓨팅 서비스로, 외부 서비스와의 통합에 매우 유용합니다. 여기에서는 Node.js를 사용하여 AWS Lambda에서 외부 서비스를 호출하고 응답을 처리하는 방법에 대해 알아보겠습니다.

외부 서비스 호출하기

외부 서비스를 호출하기 위해 axiosnode-fetch와 같은 HTTP 클라이언트를 사용할 수 있습니다. 이 예시에서는 axios 패키지를 사용해보겠습니다.

const axios = require('axios');

exports.handler = async (event) => {
  try {
    const response = await axios.get('https://api.example.com/data');
    // 응답 처리 로직
    return response.data;
  } catch (error) {
    // 에러 처리 로직
    return error.message;
  }
};

외부 서비스에 데이터 보내기

외부 서비스로 데이터를 보내기 위해서는 POSTPUT과 같은 HTTP 메서드를 사용하여 요청을 보낼 수 있습니다.

const axios = require('axios');

exports.handler = async (event) => {
  const data = {
    // 보낼 데이터
  };

  try {
    const response = await axios.post('https://api.example.com/data', data);
    // 응답 처리 로직
    return response.data;
  } catch (error) {
    // 에러 처리 로직
    return error.message;
  }
};

외부 서비스와의 인증

외부 서비스와의 통합 시, API 키나 토큰과 같은 인증 정보가 필요할 수 있습니다. AWS Lambda의 환경 변수를 사용하여 인증 정보를 안전하게 관리할 수 있습니다.

const axios = require('axios');

exports.handler = async (event) => {
  const apiKey = process.env.API_KEY;
  const headers = {
    'Authorization': `Bearer ${apiKey}`,
  };

  try {
    const response = await axios.get('https://api.example.com/data', { headers });
    // 응답 처리 로직
    return response.data;
  } catch (error) {
    // 에러 처리 로직
    return error.message;
  }
};

AWS Lambda를 사용하여 외부 서비스와 통합하면, 서버리스 아키텍처를 효과적으로 활용할 수 있습니다.


참고 자료: