← Cloudflare Workers / workers / runtime-apis / handlers
Tail Handler
Kontext
tail() handler je handler, který implementujete při psaní Tail Worker. Tail Workers lze použít ke zpracování logů v reálném čase a jejich odesílání do logovací nebo analytické služby.
tail() handler se zavolá jednou pokaždé, když je vyvolán připojený producer Worker.
Chcete-li nakonfigurovat Tail Worker, přečtěte si Dokumentace Tail Workers.
Syntaxe
export default {
async tail(events, env, ctx) {
fetch("<YOUR_ENDPOINT>", {
method: "POST",
body: JSON.stringify(events),
})
}
}from workers import WorkerEntrypoint, fetch
import json
class Default(WorkerEntrypoint):
async def tail(self, events, env, ctx):
await fetch("<YOUR_ENDPOINT>", method="POST", body=json.dumps(events))Parametry
-
eventspole- Pole
TailItems. JedenTailItemse shromažďuje pro každou událost, která spustí Worker. Pro zákazníky Workers for Platforms s nainstalovaným Tail Workerem na dynamickém dispatch Workeru,eventsbude obsahovat dva prvky: jeden pro Worker s dynamickým dispatchem a jeden pro User Worker.
- Pole
-
envobjekt- Objekt obsahující bindings přiřazené k vašemu Workeru pomocí formát ES modulů, jako jsou KV namespaces a Durable Objects.
-
ctxobjekt- Objekt obsahující kontext přiřazený k vašemu Workeru pomocí formát ES modulů. V současnosti tento objekt obsahuje pouze
waitUntil.
- Objekt obsahující kontext přiřazený k vašemu Workeru pomocí formát ES modulů. V současnosti tento objekt obsahuje pouze
Vlastnosti
-
event.typestring- Typ události. Vždy vrací
"tail".
- Typ události. Vždy vrací
-
event.tracespole- Pole
TailItems. JedenTailItemse shromažďuje pro každou událost, která spustí Worker. Pro zákazníky Workers for Platforms s nainstalovaným Tail Workerem na dynamickém dispatch Workeru,eventsbude obsahovat dva prvky: jeden pro Worker s dynamickým dispatchem a jeden pro uživatelský Worker.
- Pole
-
event.waitUntil(promisePromise): void- Viz
waitUntil. Vezměte na vědomí, že na rozdíl od event handlerů fetch tail handlery nevrací žádnou hodnotu, takže jde o jediný způsob, jak mohou trace Workers provádět asynchronní práci.
- Viz
TailItems
Vlastnosti
-
scriptNamestring- Název skriptu producenta.
-
eventobjekt- Obsahuje informace o události, která Worker spustila.
- Pro fetch eventy:
FetchEventInfoobjekt - Ostatní typy událostí:
null, v současnosti.
- Pro fetch eventy:
- Obsahuje informace o události, která Worker spustila.
-
eventTimestampnumber- Uvádí se v epoch time.
-
logspole- Pole TailLogs.
-
exceptionspole- Pole
TailExceptions. Jedno volání Workeru může vyvolat více neošetřených výjimek, protože Worker může registrovat více asynchronních úloh.
- Pole
-
outcomestring- Výsledek vyvolání Workeru, jedna z hodnot:
unknown: stav výsledku nebyl nastaven.ok: Volání workeru bylo úspěšné.exception: Byla vyvolána neošetřená výjimka. To se může stát z mnoha důvodů, mimo jiné:- Nezachycená výjimka JavaScriptu.
- Fetch handler, který nevrátí Response.
- Interní chyba.
exceededCpu: Volání Workeru překročilo limity CPU.exceededMemory: Volání Workeru překročilo limity paměti.scriptNotFound: Interní chyba způsobená potížemi při načítání skriptu Workeru.canceled: Volání workeru bylo zrušeno před dokončením. Obvykle proto, že klient ukončil spojení dříve, než mohla být odeslána odpověď.responseStreamDisconnected: Datový proud odpovědi byl odpojen během odloženého proxování. Nastává, když klient nebo server ukončí spojení předčasně.
- Výsledek vyvolání Workeru, jedna z hodnot:
FetchEventInfo
Vlastnosti
-
requestobjekt -
responseobjekt
TailRequest
Vlastnosti
-
cfobjekt- Obsahuje data z
IncomingRequestCfProperties.
- Obsahuje data z
-
headersobjekt- Položky název/hodnota hlavičky (ve výchozím nastavení skryté). Názvy hlaviček jsou uvedeny malými písmeny a hodnoty přiřazené k duplicitním názvům hlaviček se spojují pomocí řetězce
", "(čárka mezera) prokládané, podobně jako standard Fetch ↗.
- Položky název/hodnota hlavičky (ve výchozím nastavení skryté). Názvy hlaviček jsou uvedeny malými písmeny a hodnoty přiřazené k duplicitním názvům hlaviček se spojují pomocí řetězce
-
methodstring- Metoda požadavku HTTP.
-
urlstring- Adresa URL požadavku HTTP (ve výchozím nastavení skrytá).
Metody
-
getUnredacted()objekt- Vrátí objekt TailRequest s neredigovanými vlastnostmi
Některé z vlastností TailRequest se ve výchozím nastavení redigují, aby se snížilo riziko, že se náhodně zaznamenají citlivé údaje, jako jsou přihlašovací údaje uživatelů nebo API tokeny. Redakce používá heuristická pravidla, takže může docházet k falešně pozitivním i falešně negativním výsledkům. Klienti mohou volat getUnredacted() pro obejití redakce, měli by si však vždy dávat pozor na to, jaké informace se uchovávají, ať už redakci používají, nebo ne.
- Skrytí hlavičky: Hodnotou hlavičky bude řetězec
“REDACTED”když název hlavičky (nerozlišující velká a malá písmena) jecookie/set-cookienebo obsahuje podřetězec"auth”,“key”,“secret”,“token”, nebo"jwt". - Skrytí URL: U každého hladově shodovaného podřetězce znaků ID (a-z, A-Z, 0-9, '+', '-', '_') v URL, který splňuje následující kritéria pro hexadecimální nebo base-64 ID, bude tento podřetězec nahrazen řetězcem
“REDACTED”. - Hex ID: Obsahuje 32 nebo více hexadecimálních číslic a pouze hexadecimální číslice a oddělovače ('+', '-', '_')
- ID Base-64: Obsahuje 21 nebo více znaků a obsahuje alespoň dvě velká písmena, dvě malá písmena a dvě číslice.
TailResponse
Vlastnosti
-
statusnumber- Stavový kód HTTP.
TailLog
Zaznamenává informace odeslané do funkcí console.
Vlastnosti
-
timestampnumber- Uvádí se v epoch time.
-
levelstring- Řetězec označující volanou funkci konzole. Jedna z těchto možností:
debug,info,log,warn,error.
- Řetězec označující volanou funkci konzole. Jedna z těchto možností:
-
messageobjekt- Pole parametrů předaných funkci console.
TailException
Zaznamenává neošetřenou výjimku, ke které došlo během vyvolání Workeru.
Vlastnosti
-
timestampnumber- Uvádí se v epoch time.
-
namestring- Typ chyby (například
Error,TypeError, atd.).
- Typ chyby (například
-
messageobjekt- Popis chyby (například
"x" is not a function).
- Popis chyby (například
Související zdroje
- Tail Workers : nakonfigurujte Tail Worker tak, aby přijímal informace o spouštění ostatních Workerů.