← Cloudflare Workers / workers / observability
Zdrojové mapy a stack trace
Stack trace ↗ vám pomáhají s laděním kódu, když ve vaší aplikaci dojde k neošetřené výjimce. Trasování zásobníku ukazuje, které konkrétní funkce byly volány, v jakém pořadí, z kterého řádku a souboru a s jakými argumenty.
Většina kódu v JavaScriptu se před nasazením do produkce nejprve zabalí, často transpiluje a poté minifikuje. Tento proces vytváří menší balíčky pro optimalizaci výkonu a v případě potřeby převádí kód z TypeScriptu do JavaScriptu.
Zdrojové mapy převádějí zkompilovaný a minifikovaný kód zpět na původní kód, který jste napsali. Kombinují se se stack trace vráceným za běhu JavaScriptu, takže dostanete čitelný stack trace.
Zdrojové mapy
Chcete-li zapnout source maps, přidejte následující do konfiguračního souboru Workeru Konfigurace Wrangleru:
{
"upload_source_maps": true
}upload_source_maps = trueKdyž upload_source_maps je nastaveno na true, Wrangler automaticky vygeneruje a nahraje soubory se zdrojovými mapami, když spustíte wrangler deploy nebo wrangler versions deploy.
Stack trace
Když váš Worker vyvolá nezachycenou výjimku, načteme source mapu a pomocí ní namapujeme stack trace výjimky zpět na řádky původního zdrojového kódu vašeho Workeru.
Poté můžete zobrazit stack trace při streamování logy v reálném čase nebo v Tail Workers.
Když se Cloudflare pokouší přemapovat stack trace na zdrojovou mapu Workeru, dělá to řádek po řádku a přemapuje, co jen lze. Pokud nelze některý řádek stack trace z jakéhokoli důvodu přemapovat, Cloudflare ho ponechá beze změny a pokračuje na další řádek stack trace.
Limity
| Popis | Limit |
|---|---|
| Maximální velikost zdrojové mapy | 15 MB komprimováno gzipem |
Příklad
Uvažujme jednoduchý projekt. src/index.ts slouží jako vstupní bod aplikace a src/calculator.ts definuje třídu ComplexCalculator, která podporuje základní aritmetické operace.
- wrangler.jsonc
- tsconfig.json
- src
- calculator.ts
- index.ts
Podívejme se, jak mohou source maps zjednodušit ladění chyby ve třídě ComplexCalculator.
S nebyly nahrány žádné zdrojové mapy: všimněte si, že veškerý JavaScript byl minifikován do jednoho souboru, takže ve stack trace chybí informace o názvu souboru, zobrazují se nesprávná čísla řádků a nesprávně se odkazuje na js místo ts.
S Source maps nahrány: všechny metody odkazují na správné soubory a čísla řádků.
Související zdroje
- Tail Workers - Zjistěte, jak připojit Tail Workers k transformaci logů a jejich odesílání na HTTP endpointy.
- Logy v reálném čase - Zjistěte, jak zachytávat logy Workers v reálném čase.
- Zpracování chyb RPC - Zjistěte, jak se zpracovávají výjimky přes RPC (Remote Procedure Call).