W ubiegłym tygodniu AWS dodało wsparcie w usłudze Lambda dla Node.js w wersji 14 LTS. Po przejściu na nową wersję runtime możemy wykorzystać udostępnione nowości, o czym w dalszej części.
Co nowego?
Silnik V8 został zaktualizowany do wersji 8.1, dzięki czemu dostaliśmy do dyspozycji:
- Optional Chaining - operator
?.
- zwraca wartość lubundefined
, gdy zmienna nie istnieje - Nullish Coalescing - operator
??
, który zwraca prawą stronę, gdy lewa jest niezdefiniowana lubnull
Intl.DateTimeFormat
orazIntl.DisplayNames
- translacje (i18n)
Z powyższych zmian, z utęsknieniem czekałem na optional chaining operator ?.
Jego użycie znacznie upraszcza kod i powoduje mniejszą liczbę błędów przy obsłudze danych. Spójrz na poniższy przykład. Posiadając literał person
o standardowych parametrach takich jak imię, nazwisko, adres, możemy oczekiwać, że adres będzie miał pola miasto i ulica.
Co jeśli osoba nie ma adresu? Musimy się przed tym zabezpieczyć w if
ie.
1 | const person = { |
Uruchomienie powyższego kodu zwróci na konsolę:
1 | 3 undefined |
To jest naprawdę super sprawa, która znacząco ułatwi pisanie kodu na co dzień. 😃 😃 😃
Otrzymaliśmy też Raporty diagnostyczne - to dane w formacie JSON zawierające informacje o procesach, które obejmują stosy wywołań, informacje o systemie operacyjnym, załadowane moduły i inne kluczowe dane, które zostały sformułowane w celu obsługi istniejącej aplikacji i powiązania ich z określonymi zdarzeniami w aplikacji. Ułatwiają wykrycie problemów i odpowiednie rozwiązanie. Raporty diagnostyczne są w stanie wykryć:
- Nieprawidłowe zakończenie działania aplikacji
- Niską wydajność
- Wycieki pamięci
- Wysokie użycie procesora.
- Nieoczekiwane błedy
- i nieprawidłowe wyjście (output).
Więcej informacji o Node.js w tym artykule: New Features & Improvement In Node Version 14.0.
Podsumowanie runtimeów Node.js
Zwróć uwagę, że jeszcze nie podano daty zakończenie wsparcia (deprecation) Node 12.
Name | Identifier | AWS SDK for JavaScript | Operating System | Wsparcie do |
---|---|---|---|---|
Node.js 14 | nodejs14.x | 2.804.0 | Amazon Linux 2 | - |
Node.js 12 | nodejs12.x | 2.804.0 | Amazon Linux 2 | - |
Node.js 10 | nodejs10.x | 2.804.0 | Amazon Linux 2 | 28 maja 2021 |
https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html
News na stronie AWS Compute Blog Node.js 14.x runtime now available in AWS Lambda.