>  기사  >  백엔드 개발  >  AWS Lambda에서 Websocket URL 시간 초과 오류가 발생했습니다.

AWS Lambda에서 Websocket URL 시간 초과 오류가 발생했습니다.

WBOY
WBOY앞으로
2024-02-10 11:30:10967검색

AWS Lambda 中的 Websocket URL 超时达到错误

AWS Lambda에서 Websocket을 사용할 때 가끔 Websocket URL 시간 초과 오류가 발생합니다. 이 문제로 인해 Websocket에 대한 연결을 설정하거나 유지할 수 없게 되어 애플리케이션의 정상적인 작동에 영향을 미칠 수 있습니다. 이 기사에서는 이 문제의 원인과 해결책을 소개하고 개발자가 Websocket URL 시간 초과 오류를 해결하고 애플리케이션의 안정성과 신뢰성을 보장하도록 돕습니다. 초보자와 숙련된 개발자 모두 이 기사를 통해 AWS Lambda 및 Websocket에 대한 귀중한 정보를 얻을 수 있습니다.

질문 내용

저는 Go 언어를 사용하여 AWS Lambda를 개발하고 있습니다. chromedp 및 docker 이미지를 사용하여 go lang 코드를 배포하고 있는데 websocket url 시간 초과 오류가 발생합니다. 내 람다는 3008MB RAM 메모리, 512MB 스토리지, 15분 제한 시간으로 설정되어 있습니다. 문제를 식별하고 해결 방법을 알 수 있나요? 파일이에요 main.godockerfile

파일 main.go(chromedp 부분)

으아악

파일 dockerfile

func getpage(url string, linenum string, stationnm string) {
    // settings for crawling
    ctx, cancle := chromedp.newcontext(
        context.background(),
        chromedp.withlogf(log.printf),
    )
    defer cancle()

    opts := []chromedp.execallocatoroption{
        chromedp.disablegpu,
        chromedp.nosandbox,
        chromedp.headless,
        chromedp.flag("no-zygote", true),
        chromedp.flag("single-process", true),
        chromedp.flag("homedir", "/tmp"),
        chromedp.flag("data-path", "/tmp/data-path"),
        chromedp.flag("disk-cache-dir", "/tmp/cache-dir"),
        chromedp.flag("remote-debugging-port", "9222"),
        chromedp.flag("remote-debugging-address", "0.0.0.0"),
        chromedp.flag("disable-dev-shm-usage", true),
    }

    allocctx, cancel := chromedp.newexecallocator(ctx, opts...)
    defer cancel()

    ctx, cancel = chromedp.newcontext(allocctx, chromedp.withlogf(log.printf))
    defer cancel()

    var htmlcontent string

    ch := chromedp.waitnewtarget(ctx, func(i *target.info) bool {
        return strings.contains(i.url, "/timetable/web/")
    })

}

해결 방법

에서는 chromedp/headless-shell을 사용하는 것이 좋습니다. 크기가 작고 aws 람다에 더 적합하기 때문입니다.

방금 chromedp/headless-shell를 사용하여 간단한 데모를 테스트했는데 제대로 작동했습니다.

dockerfile:

으아악

main.go:

으아악

이 예는 https://github.com/andiedie/chromedp-aws-lambda-example을 기반으로 합니다. 나열된 chromedp.execallocatoroption 항목은 이 저장소에서 직접 복사됩니다. 작동하지만 이것이 최선의 옵션 목록인지는 확실하지 않습니다. 어쩌면 필요에 맞게 조정해야 할 수도 있습니다.

위 내용은 AWS Lambda에서 Websocket URL 시간 초과 오류가 발생했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제