본문으로 건너뛰기
버전: 4.6.1-saas

초기화 설정

이 문서는 NetFUNNEL CloudFront Agent에서 사용할 수 있는 Lambda config 설정 및 부가 기능을 설명합니다.


Lambda Config 설정

Lambda 함수의 index.mjs 파일에서 config 객체를 통해 NetFUNNEL 에이전트의 동작을 제어합니다.

필수 설정

clientID

NetFUNNEL 콘솔에서 발급받은 클라이언트 ID를 입력합니다.

const config = {
clientID: "{{CLIENT_ID}}",
}

설정 방법:

  1. Lambda 함수의 index.mjs 파일 열기
  2. config 객체의 clientID에 NetFUNNEL 콘솔의 Client ID 입력
  3. [Deploy] 버튼 클릭
  4. [버전] 탭 → [새 버전 발행] 클릭
  5. CloudFront에서 Lambda 함수 버전 업데이트 및 무효화

부가 기능

Good Bot 예외 처리

Lambda 설정을 통해 특정 User-Agent 값이 포함되어 있을 경우 에이전트 동작으로부터 예외 처리할 수 있습니다.

Lambda 설정

const config = {
clientID: "{{CLIENT_ID}}",
goodBots: ["Googlebot", "Bingbot", "Slurp", "Applebot", "facebookexternalhit"],
}

예시: Google, Microsoft, Yahoo, Apple, Facebook 봇을 예외 처리한 예시 코드입니다.

설정 방법:

  1. Lambda 함수의 index.mjs 파일 열기
  2. config 객체의 goodBots에 예외하고 싶은 굿 봇의 User-Agent를 배열로 추가
  3. [Deploy] 버튼 클릭
  4. [버전] 탭 → [새 버전 발행] 클릭
  5. CloudFront 설정 및 무효화

CloudFront 설정

  1. Lambda@Edge를 적용한 CloudFront Distribution 선택
  2. [동작] 탭에서 항목 선택 후 [편집] 클릭
  3. 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
  4. [변경 사항 저장] 클릭

CloudFront 무효화

  1. [무효화] 탭 클릭
  2. [무효화 생성] 클릭
  3. 객체 경로: /* 입력
  4. [무효화 생성] 클릭

진입 키 자동 반납 처리

NetFUNNEL CloudFront 에이전트는 진입 후 넷퍼넬 키를 자동으로 반납하여 다음 대기자가 진입할 수 있도록 처리하고 있습니다. 만약, 넷퍼넬 키를 바로 반납하지 않고 세그먼트에서 설정한 타임아웃 시간에 넷퍼넬 키를 반납하고 싶은 경우에 사용할 수 있는 기능입니다.

Lambda 설정

const config = {
clientID: "{{CLIENT_ID}}",
returnKey: true,
}
  • true (기본값): 대기 완료 및 진입 후 에이전트에서 넷퍼넬 키를 자동으로 반납합니다.
  • false: 세그먼트에서 설정한 타임아웃 시간에 키가 반납 처리됩니다.

설정 방법:

  1. Lambda 함수의 index.mjs 파일 열기
  2. config 객체의 returnKeytrue 또는 false 입력
  3. [Deploy] 버튼 클릭
  4. [버전] 탭 → [새 버전 발행] 클릭
  5. CloudFront 설정 및 무효화

CloudFront 설정

  1. Lambda@Edge를 적용한 CloudFront Distribution 선택
  2. [동작] 탭에서 항목 선택 후 [편집] 클릭
  3. 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
  4. [변경 사항 저장] 클릭

CloudFront 무효화

  1. [무효화] 탭 클릭
  2. [무효화 생성] 클릭
  3. 객체 경로: /* 입력
  4. [무효화 생성] 클릭

대기실 도메인 변경

NetFUNNEL 대기실 페이지의 도메인은 agent-lib.stclab.com입니다. 해당 도메인을 서비스 중인 도메인에 맞게 변경하려면 NetFUNNEL 서비스팀을 통해 원하는 도메인을 알려주시고, Lambda 설정을 변경해야 합니다.

Lambda 설정

const config = {
clientID: "{{CLIENT_ID}}",
vwrPageDomain: "https://wait.stclab.com",
}

예시: 대기실 도메인을 wait.stclab.com으로 변경하는 예시 코드입니다.

설정 방법:

  1. viewer-request에 적용한 Lambda 함수 열기
  2. index.mjs 파일 열기
  3. config 객체의 vwrPageDomain에 변경하고자 하는 대기실 주소 입력
  4. [Deploy] 버튼 클릭
  5. [버전] 탭 → [새 버전 발행] 클릭
  6. CloudFront 설정 및 무효화

CloudFront 설정

  1. Lambda@Edge를 적용한 CloudFront Distribution 선택
  2. [동작] 탭에서 항목 선택 후 [편집] 클릭
  3. 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
  4. [변경 사항 저장] 클릭

CloudFront 무효화

  1. [무효화] 탭 클릭
  2. [무효화 생성] 클릭
  3. 객체 경로: /* 입력
  4. [무효화 생성] 클릭

쿠키 도메인 설정

NetFUNNEL 서버에서 발급한 키를 쿠키에 저장할 때 현재 페이지의 도메인을 기준으로 저장합니다. 만약 서로 다른 서브도메인 간에 키를 공유해야할 경우 메인 도메인이 쿠키에 저장되도록 설정합니다.

예: develop.stclab.comstaging.stclab.com과 같이 서브도메인이 서로 다른 페이지에서 쿠키를 공유하도록 .stclab.com으로 설정합니다.

Lambda 설정

const config = {
clientID: "{{CLIENT_ID}}",
cookieDomain: ".stclab.com",
}

예시: 쿠키 도메인을 .stclab.com으로 변경하는 예시 코드입니다.

설정 방법:

  1. viewer-request에 적용한 Lambda 함수 열기
  2. index.mjs 파일 열기
  3. config 객체의 cookieDomain.MAIN_DOMAIN 형식으로 입력
  4. [Deploy] 버튼 클릭
  5. [버전] 탭 → [새 버전 발행] 클릭
  6. CloudFront 설정 및 무효화

CloudFront 설정

  1. Lambda@Edge를 적용한 CloudFront Distribution 선택
  2. [동작] 탭에서 항목 선택 후 [편집] 클릭
  3. 하단의 함수 연결에서 뷰어 요청과 뷰어 응답을 새 버전으로 수정
  4. [변경 사항 저장] 클릭

CloudFront 무효화

  1. [무효화] 탭 클릭
  2. [무효화 생성] 클릭
  3. 객체 경로: /* 입력
  4. [무효화 생성] 클릭

Lambda 함수 배포 및 CloudFront 무효화

Lambda config를 변경한 후에는 반드시 다음 단계를 수행해야 변경 사항이 적용됩니다.

  1. Lambda 함수에서 [Deploy] 버튼 클릭
  2. [버전] 탭 → [새 버전 발행] 클릭
  3. CloudFront Distribution에서 Lambda 함수 버전 업데이트
  4. CloudFront 무효화 수행

관련 문서