• Akademia
  • Blog
  • O Serverless
  • O stronie

AWS Lambda wspiera Node.js 14


AWS Lambda
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艣膰 lub undefined, gdy zmienna nie istnieje
  • Nullish Coalescing - operator ??, kt贸ry zwraca praw膮 stron臋, gdy lewa jest niezdefiniowana lub null
  • Intl.DateTimeFormat oraz Intl.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 ifie.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const person = {
name: 'Pawe艂',
// nie ma adresu ustawionego bo takie dane otrzymali艣my
// address: {
// city: 'Wroc艂aw',
// street: '...'
// }
};

// Po staremu musimy sprawdza膰 w ten spos贸b
if (person && person.address && person.address.city) {
console.log('1', person.address.city);
}

// U偶ywaj膮c nowego ?. operatora mo偶emy to upro艣ci膰
if (person?.address?.city) {
console.log('2', person.address.city);
}
// Lub pomi膮膰 if i bezpo艣rednio odwo艂a膰 si臋 do warto艣ci
// Zak艂adaj膮c, 偶e metoda - tutal consol.log - da sobie rad臋 z undefined
console.log('3', person?.address?.city);

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
殴r贸d艂o: https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.html,
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.