Amazon CloudWatch의 카나리 탐색 제한 시간 오류 문제를 해결하고 싶습니다.
간략한 설명
카나리 탐색 제한 시간 초과 오류는 브라우저 또는 엔드포인트가 지정된 시간 내에 카나리에 연결할 수 없을 때 발생합니다. 다음과 같은 가능한 원인에 따라 이 오류의 문제를 해결하십시오.
- 엔드포인트 연결
- 카나리 스크립트 실행 시간
- GUI 워크플로 빌더
- 페이지 복잡성
참고: CloudWatch 카나리를 생성할 때 추가 구성 섹션에서 제한 시간을 구성할 수 있습니다. 제한 시간은 카나리 코드에 설정된 제한 시간 값과 다른 AWS Lambda 함수 값입니다. Lambda 제한 시간 값을 카나리 코드 제한 시간 값보다 높게 설정하는 것이 가장 좋습니다. 애플리케이션이 응답하지 않으면 카나리 코드 제한 시간에 먼저 도달할 수 있습니다.
해결 방법
엔드포인트 연결
엔드포인트 연결이 제한 시간 초과 오류의 원인인지 확인하려면 다음을 확인하십시오.
- 카나리가 지정된 엔드포인트에 도달하고 제한 시간 내에 응답을 받는지 확인하십시오. 모니터링 엔드포인트가 방화벽이나 프록시를 사용하는 경우 카나리에 대한 엔드포인트 연결을 차단하는 규칙이 없는지 확인하십시오.
- Amazon Virtual Private Cloud(Amazon VPC) 카나리를 사용하는 경우 엔드포인트에 연결할 수 있는지 확인하십시오. 엔드포인트에 연결할 수 없는 경우 보안 그룹 또는 네트워크 액세스 제어 목록(네트워크 ACL) 제한을 확인하십시오.
엔드포인트에 연결할 수 있고 지정된 시간 내에 응답하는지 확인하려면 다음 명령을 실행합니다.
참고: example-endpoint-ip를 사용자의 엔드포인트 IP 주소로, example-dns를 사용자의 DNS로, example-port를 사용자의 포트로 바꾸십시오.
time curl http/(s)://[example-endpoint-ip/example-dns]:example-port
카나리 스크립트 실행 시간
카나리 스크립트 제한 시간을 확인합니다. 제한 시간이 긴 경우 카나리 스크립트에서 제한 시간을 늘려 카나리가 탐색 단계를 완료할 수 있는 충분한 시간을 확보합니다. 엔드포인트 응답 시간과 일치하도록 제한 시간을 늘리는 것이 가장 좋습니다.
카나리 코드에서 카나리 하트비트 제한 시간을 변경하려면 다음 명령을 실행하십시오.
const response = await page.goto(URL, {waitUntil: 'domcontentloaded', timeout: 30000});
GUI 워크플로 빌더
GUI 워크플로 빌더를 사용하는 경우 버튼이나 링크의 탐색과 함께 클릭 동작이 적절하게 리디렉션되는지 확인하십시오. 웹 페이지는 비동기 작업을 사용하며, 제한 시간에는 이러한 작업을 완료하는 데 필요한 시간이 포함되어야 합니다.
이 문제를 해결하려면 다음 작업을 완료하십시오.
-
탐색과 함께 클릭 동작의 제한 시간을 변경하려면 다음 명령을 실행합니다.
await Promise.all([
page.waitForNavigation({ timeout: 30000 }),
await page.click("example-button")
-
탐색과 함께 클릭 동작이 페이지를 적절하게 리디렉션하지 않는 경우에는 대신 클릭 동작을 사용하십시오.
-
구성된 제한 시간 내에 엔드포인트 응답을 계산하려면 다음 명령을 실행합니다.
참고: example-endpoint-ip 및 example-port를 IP 주소 및 포트 번호로 바꾸십시오.
time curl http/(s)://[example-endpoint-ip]:example-port
페이지 복잡성
페이지 복잡성으로 인해 제한 시간 문제가 발생할 수 있습니다. 광범위한 JavaScript/DOM이 포함된 동적 페이지를 탐색하는 경우 페이지에 더 긴 제한 시간 값이 필요할 수 있습니다.