ホームページ > バックエンド開発 > Golang > AWS Lambda で WebSocket URL タイムアウトに達したエラーが発生する

AWS Lambda で WebSocket URL タイムアウトに達したエラーが発生する

WBOY
リリース: 2024-02-10 11:30:10
転載
1041 人が閲覧しました

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

AWS Lambda で Websocket を使用すると、Websocket URL タイムアウト エラーが発生することがあります。この問題により、Websocket への接続を確立または維持できなくなり、アプリケーションの通常の動作に影響が出る可能性があります。この記事では、この問題の原因と解決策を紹介し、開発者が Websocket URL タイムアウト エラーを解決し、アプリケーションの安定性と信頼性を確保できるように支援します。初心者も経験豊富な開発者も、この記事から AWS Lambda と Websocket に関する貴重な情報を得ることができます。

質問内容

Go言語を使用してaws lambdaを開発しています。 chromedp と docker イメージを使用して go lang コードをデプロイしていますが、WebSocket URL タイムアウト エラーが発生します。私のラムダは、3008 MB の RAM メモリ、512 MB のストレージ、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/")
    })

}
ログイン後にコピー

Solution

chromedp/headless-shell は小さく、AWS Lambda により適しているため、使用することをお勧めします。

chromedp/headless-shell を使用して簡単なデモをテストしましたが、動作しました。

ドッカーファイル リーリー

main.go リーリー

この例は、

https://github.com/andiedie/chromedp-aws-lambda-example に基づいています。リストされている chromedp.execallocatoroption は、このリポジトリから直接コピーされていることに注意してください。それは機能しますが、これが最適なオプションのリストであるかどうかはわかりません。必要に応じて調整する必要があるかもしれません。

以上がAWS Lambda で WebSocket URL タイムアウトに達したエラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート