2017-03-22 5 views
0

나는 두 개의 람다 함수를 가지고 있으며이 함수들 모두는 하나의 공통 함수를 가지고있다. 일반적이기 때문에 대부분의 코드는 공통 기능에 있습니다. 따라서 특정 함수에 대해 별도의 람다 함수를 고려하는 것은 논리적입니다.AWS 람다 서비스의 다른 람다에서 람다를 호출하는 것이 좋은 생각입니까?

하지만 비용이 많이들 것이라고 생각하면 저를 실망 시켰습니다. 즉, 하나의 람다를 호출하면 다른 람다가 자동으로 호출됩니다. 그래서 한 가지 사건은 두 가지 다른 자원을 고용 할 것입니다. 그리고 그것은 나에게 비용 효과적으로 보이지 않는다. 그렇지?

답변

0

항상 진행됩니다. 나는 람다가 일정에 따라 달리는 것을 결정적으로 만들었고 추가 람다가 다양한 요인에 따라 호출하도록했다.

하지만 공통된 "기능"이하는 일과 비용, 성능에 미치는 영향에 유의해야합니다.

서버리스 앱 또는 서버리스 구성 요소를 앱에서 설계 할 때 두 가지 중요한 생각이 있습니다. AWS Lambda, Azure Functions, Google Cloud Functions 등을 마이크로 서비스에 진정한 "하나의 기능"솔루션으로 생각할 수 있습니다. 또는 람다를 논리적 그룹의 함수 그룹으로 사용할 수 있습니다. 하나의 람다 안에서 여러개의 함수를 가질 수 있습니다. 둘 다 완전히 유효한 접근법이며 디버깅하는 동안 두통이 줄어들 것입니다.)

여러 Lambda에 대해 공통적 인 기능이 있다면 다른 Lambda에 도달하기 전에 코드에서이 기능을 처리하는 것이 좋습니다. 그 말은 패키지 나 라이브러리 같은 것을 의미합니다. 예를 들어 Node.js를 사용하면 NPM을 사용하여 해당 공통 함수를 가져 와서 한 곳에서 관리 할 수 ​​있고 필요에 따라 모든 항목을 업데이트 할 수 있습니다.

문자 그대로 "클라우드 기능"을 사용하지 말고 모든 단일 기능을 새로운 람다로 분리하십시오.

람다는 최소 100ms로 올림되기 때문에 람다에게는 최소 요금이 부과됩니다. 그래서 정말로 빠른 속도로 작동하는 몇 가지 일반적인 기능을 호출한다면 ... 나는 그것을 새로운 람다로 분리하지 않을 것입니다. 당신은 더 많은 것을 지불 할 것이지만 또한 당신의 공연도 방해 될 것입니다.

귀하의 마일리지는 다른 것과 다를 수 있습니다. 클라우드 기능은 우리에게 완전히 새로운 차원의 생각을 선사합니다. 그들은 매우 편리하지만 신중하게 계획하지 않으면 성능을 저하시키고 비용을 증가시킬 수 있습니다.