Níže jsou doporučené osvědčené postupy pro používání AWS Lambda:
Top Nabídky
- Kód funkce
- Konfigurace funkce
- Metriky a alarmy
- Práce s proudy
- Nejlepší bezpečnostní postupy
Další informace o osvědčených postupech pro aplikace Lambda najdete v tématu Návrh aplikací v Serverless Land.
Kód funkce
- Oddělte obsluhu Lambda od vaší základní logiky. To vám umožní vytvořit funkci, která je testovatelnější jednotkami. V Node.js to může vypadat takto:
exports.myHandler = function(event, context, callback) var foo = event.foo; var bar = event.bar; var result = MyLambdaFunction (foo, bar); callback(null, result); > function MyLambdaFunction (foo, bar) // MyLambdaFunction logic here >
Konfigurace funkce
- Testování výkonu vaší funkce Lambda je klíčovou součástí pro zajištění výběru optimální konfigurace velikosti paměti. Jakékoli zvýšení velikosti paměti spustí ekvivalentní zvýšení CPU dostupného pro vaši funkci. Využití paměti pro vaši funkci je určeno pro každé vyvolání a lze jej zobrazit v Amazon CloudWatch. Při každém vyvolání REPORTU: bude proveden záznam, jak je ukázáno níže:
REPORT RequestId: 3604209a-e9a3-11e6-939a-754dd98c7be3 Duration: 12.34 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 18 MB
- V případě CreateFunction, AWS Lambda selže v procesu vytváření funkce.
- V případě UpdateFunctionConfiguration, mohlo by to vést k duplicitnímu vyvolání funkce.
Metriky a alarmy
- Použijte práci s metrikami funkce Lambda a CloudWatch Alarms místo vytváření nebo aktualizace metriky z kódu funkce Lambda. Je to mnohem efektivnější způsob, jak sledovat stav vašich funkcí Lambda, což vám umožní zachytit problémy v raném stádiu vývoje. Můžete například nakonfigurovat alarm na základě očekávané doby trvání vyvolání vaší funkce Lambda, abyste vyřešili jakákoli úzká místa nebo latence, které lze připsat vašemu funkčnímu kódu.
- Využijte svou knihovnu protokolování a metriky a dimenze AWS Lambda k zachycení chyb aplikace (např. ERR, ERROR, WARNING atd.)
- Použijte detekci anomálií nákladů AWS k odhalení neobvyklé aktivity na vašem účtu. Detekce nákladových anomálií využívá strojové učení k neustálému sledování vašich nákladů a využití a zároveň minimalizuje falešně pozitivní výstrahy. Detekce nákladových anomálií využívá data z AWS Cost Explorer, která má zpoždění až 24 hodin. V důsledku toho může detekce anomálie po použití trvat až 24 hodin. Chcete-li začít s detekcí nákladových anomálií, musíte se nejprve zaregistrovat do Cost Explorer. Poté přejděte k detekci anomálií nákladů.
Práce s proudy
- Testujte s různými velikostmi dávek a záznamů takže frekvence dotazování každého zdroje událostí je vyladěna podle toho, jak rychle je vaše funkce schopna dokončit svůj úkol. Parametr CreateEventSourceMapping BatchSize řídí maximální počet záznamů, které lze odeslat vaší funkci při každém vyvolání. Větší velikost dávky může často efektivněji absorbovat režii vyvolání přes větší sadu záznamů, čímž se zvýší vaše propustnost. Ve výchozím nastavení Lambda vyvolá vaši funkci, jakmile jsou k dispozici záznamy. Pokud má dávka, kterou Lambda čte ze zdroje události, pouze jeden záznam, odešle Lambda funkci pouze jeden záznam. Chcete-li se vyhnout vyvolání funkce s malým počtem záznamů, můžete zdroji události říci, aby ukládal záznamy do paměti po dobu až 5 minut, a to konfigurací dávkovací okno. Před vyvoláním funkce Lambda pokračuje ve čtení záznamů ze zdroje událostí, dokud neshromáždí celou dávku, nevyprší dávkové okno nebo dávka nedosáhne limitu užitečného zatížení 6 MB. Další informace naleznete v tématu Chování při dávkování.
výstraha
Mapování zdroje události lambda zpracuje každou událost alespoň jednou a může dojít k duplicitnímu zpracování dávek. Abyste se vyhnuli potenciálním problémům souvisejícím s duplicitními událostmi, důrazně doporučujeme, abyste svůj funkční kód učinili idempotentním. Chcete-li se dozvědět více, viz Jak docílím toho, aby moje funkce Lambda byla idempotentní v centru znalostí AWS.
Nejlepší bezpečnostní postupy
- Sledujte své používání AWS Lambda ve vztahu k osvědčeným bezpečnostním postupům pomocí AWS Security Hub. Security Hub využívá ovládací prvky zabezpečení k vyhodnocování konfigurací zdrojů a bezpečnostních standardů, které vám pomohou dodržovat různé rámce dodržování předpisů. Další informace o používání Security Hub k vyhodnocování zdrojů Lambda naleznete v části Ovládací prvky AWS Lambda v uživatelské příručce AWS Security Hub.