Function 코드 버전 관리 (GitHub 연동)
왜 GitHub와 연동하나요?
Integration Hub UI에서 Function Node와 공통 함수 코드를 수정하면 원본은 S3에 저장되고, 실행 시점에는 Lambda의 EFS로 복사되어 로드됩니다. 이 원본 코드는 변경 이력을 추적하고, 코드 리뷰나 이전 버전으로의 롤백을 지원하기 위해 GitHub 저장소로도 동기화됩니다.
저장소 구조
Function 코드가 동기화되는 저장소는 다음과 같은 경로 규칙을 따릅니다.
{stage}/{scope}/{flowId}/{flowName}/Function/{nodeKey}.js # 개별 Function Node 코드
{stage}/{scope}/{flowId}/{flowName}/functions.js # Flow 공통 함수 코드
stage: 실행 환경(dev/staging/prod)scope: 고객사/시스템을 식별하는 값flowId,flowName: Flow의 ID와 이름{nodeKey}.js: Flow 내 각 Function Node의 코드 (Node 별로 파일이 분리되어 있어, Node 단위로 변경 이력과 diff를 확인할 수 있습니다)
동기화 방식
코드가 저장될 때마다 GitHub REST API를 이용해 아래 순서로 커밋이 생성됩니다.
- 대상 branch의 최신 커밋 정보 조회
- 변경된 파일 내용으로 Git Tree 생성
- 생성된 Tree로 Commit 생성
- Branch 생성 또는 기존 Branch 갱신
이 과정을 통해 UI에서의 모든 코드 저장 동작이 Git 커밋 이력으로 남아, 언제 누가 어떤 코드를 변경했는지 추적할 수 있습니다.