초기화 설정
이 문서는 NetFUNNEL CloudFront Agent에서 사용할 수 있는 Lambda config 설정 및 부가 기능을 설명합니다.
Lambda Config 설정
Lambda 함수의 index.mjs 파일에서 config 객체를 통해 NetFUNNEL 에이전트의 동작을 제어합니다.
필수 설정
clientID
NetFUNNEL 콘솔에서 발급받은 클라이언트 ID를 입력합니다.
const config = {
clientID: "{{CLIENT_ID}}",
}
설정 방법:
- Lambda 함수의
index.mjs파일 열기 config객체의clientID에 NetFUNNEL 콘솔의 Client ID 입력- [Deploy] 버튼 클릭
- [버전] 탭 → [새 버전 발행] 클릭
- CloudFront에서 Lambda 함수 버전 업데이트 및 무효화
부가 기능
Good Bot 예외 처리
Lambda 설정을 통해 특정 User-Agent 값이 포함되어 있을 경우 에이전트 동작으로부터 예외 처리할 수 있습니다.
Lambda 설정
const config = {
clientID: "{{CLIENT_ID}}",
goodBots: ["Googlebot", "Bingbot", "Slurp", "Applebot", "facebookexternalhit"],
}
예시: Google, Microsoft, Yahoo, Apple, Facebook 봇을 예외 처리한 예시 코드입니다.
설정 방법:
- Lambda 함수의
index.mjs파일 열기 config객체의goodBots에 예외하고 싶은 굿 봇의 User-Agent를 배열로 추가- [Deploy] 버튼 클릭
- [버전] 탭 → [새 버전 발행] 클릭
- CloudFront 설정 및 무효화
CloudFront 설정
- Lambda@Edge를 적용한 CloudFront Distribution 선택
- [동작] 탭에서 항목 선택 후 [편집] 클릭
- 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
- [변경 사항 저장] 클릭
CloudFront 무효화
- [무효화] 탭 클릭
- [무효화 생성] 클릭
- 객체 경로:
/*입력 - [무효화 생성] 클릭
진입 키 자동 반납 처리
NetFUNNEL CloudFront 에이전트는 진입 후 넷퍼넬 키를 자동으로 반납하여 다음 대기자가 진입할 수 있도록 처리하고 있습니다. 만약, 넷퍼넬 키를 바로 반납하지 않고 세그먼트에서 설정한 타임아웃 시간에 넷퍼넬 키를 반납하고 싶은 경우에 사용할 수 있는 기능입니다.
Lambda 설정
const config = {
clientID: "{{CLIENT_ID}}",
returnKey: true,
}
true(기본값): 대기 완료 및 진입 후 에이전트에서 넷퍼넬 키를 자동으로 반납합니다.false: 세그먼트에서 설정한 타임아웃 시간에 키가 반납 처리됩니다.
설정 방법:
- Lambda 함수의
index.mjs파일 열기 config객체의returnKey에true또는false입력- [Deploy] 버튼 클릭
- [버전] 탭 → [새 버전 발행] 클릭
- CloudFront 설정 및 무효화
CloudFront 설정
- Lambda@Edge를 적용한 CloudFront Distribution 선택
- [동작] 탭에서 항목 선택 후 [편집] 클릭
- 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
- [변경 사항 저장] 클릭
CloudFront 무효화
- [무효화] 탭 클릭
- [무효화 생성] 클릭
- 객체 경로:
/*입력 - [무효화 생성] 클릭
대기실 도메인 변경
NetFUNNEL 대기실 페이지의 도메인은 agent-lib.stclab.com입니다. 해당 도메인을 서비스 중인 도메인에 맞게 변경하려면 NetFUNNEL 서비스팀을 통해 원하는 도메인을 알려주시고, Lambda 설정을 변경해야 합니다.
Lambda 설정
const config = {
clientID: "{{CLIENT_ID}}",
vwrPageDomain: "https://wait.stclab.com",
}
예시: 대기실 도메인을 wait.stclab.com으로 변경하는 예시 코드입니다.
설정 방법:
- viewer-request에 적용한 Lambda 함수 열기
index.mjs파일 열기config객체의vwrPageDomain에 변경하고자 하는 대기실 주소 입력- [Deploy] 버튼 클릭
- [버전] 탭 → [새 버전 발행] 클릭
- CloudFront 설정 및 무효화
CloudFront 설정
- Lambda@Edge를 적용한 CloudFront Distribution 선택
- [동작] 탭에서 항목 선택 후 [편집] 클릭
- 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
- [변경 사항 저장] 클릭
CloudFront 무효화
- [무효화] 탭 클릭
- [무효화 생성] 클릭
- 객체 경로:
/*입력 - [무효화 생성] 클릭
쿠키 도메인 설정
NetFUNNEL 서버에서 발급한 키를 쿠키에 저장할 때 현재 페이지의 도메인을 기준으로 저장합니다. 만약 서로 다른 서브도메인 간에 키를 공유해야할 경우 메인 도메인이 쿠키에 저장되도록 설정합니다.
예: develop.stclab.com과 staging.stclab.com과 같이 서브도메인이 서로 다른 페이지에서 쿠키를 공유하도록 .stclab.com으로 설정합니다.
Lambda 설정
const config = {
clientID: "{{CLIENT_ID}}",
cookieDomain: ".stclab.com",
}
예시: 쿠키 도메인을 .stclab.com으로 변경하는 예시 코드입니다.
설정 방법:
- viewer-request에 적용한 Lambda 함수 열기
index.mjs파일 열기config객체의cookieDomain에.MAIN_DOMAIN형식으로 입력- [Deploy] 버튼 클릭
- [버전] 탭 → [새 버전 발행] 클릭
- CloudFront 설정 및 무효화
CloudFront 설정
- Lambda@Edge를 적용한 CloudFront Distribution 선택
- [동작] 탭에서 항목 선택 후 [편집] 클릭
- 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
- [변경 사항 저장] 클릭
CloudFront 무효화
- [무효화] 탭 클릭
- [무효화 생성] 클릭
- 객체 경로:
/*입력 - [무효화 생성] 클릭
Lambda 함수 배포 및 CloudFront 무효화
Lambda config를 변경한 후에는 반드시 다음 단계를 수행해야 변경 사항이 적용됩니다.
- Lambda 함수에서 [Deploy] 버튼 클릭
- [버전] 탭 → [새 버전 발행] 클릭
- CloudFront Distribution에서 Lambda 함수 버전 업데이트
- CloudFront 무효화 수행