Browsed by
Tag: ABC Serverless

Lambda context

Lambda context

Uruchomienie funkcji Lambda powoduje wywołanie handlera, czyli funkcji, która może wywołać inne funkcje lub zająć się obsługą przesłanych do niej danych. Szkielet takiego handlera w różnych językach wygląda podobnie: Node.js

Python

W C# (NET.Core) sprawa jest trochę bardziej skomplikowna, ale wywoływana funkcja wygląda tak

Co łączy wszystkie technologie? Event i context. Event to dane przesłane „z zewnątrz” do funckji Lambda. Context to parametr, który przekazuje handlerowi informacje na temat tzw. runtime, czyli wszystko co trzeba wiedzieć o…

Read More Read More

AWS Lambda – nowy edytor

AWS Lambda – nowy edytor

Miałem pisać dziś o czymś innym, ale wczoraj AWS pokazało na re:Invent 2017 nowy edytor dla moich ulubionych funkcji Lambda. Jakiś czas temu Amazon kupił Cloud9, a wczoraj oddał nam to narzędzie do pracy. Pierwsze wrażenia poniżej. Zasoby Bezpośrednio w edytorze widzimy zarówno wyzwalacze jak i zasoby, do których ma uprawnienia nasza Lambda. Jeżeli zmienimy rolę przypisaną do funkcji od razu zobaczymy zmianę w edytorze. Wygodne. Możemy także dodać wyzwalacz oraz go skonfigurować   Edytor Sam edytor pozwala nam teraz na edycję…

Read More Read More

Jak za pomocą funkcji Lambda włączyć i wyłączyć serwer EC2 w AWS

Jak za pomocą funkcji Lambda włączyć i wyłączyć serwer EC2 w AWS

Pisałem już kilka razy o lambdach. Między innymi stawialiśmy api oparte na lambdzie. Dziś krótki i szybki tip, jak za pomocą funkcji Lambda włączyć i wyłączyć serwer EC2 w AWS. Obie funkcje napisane w Pythonie, korzystają z boto3. Myślę, że komentarze w kodzie wystarczą za manual. Włączamy maszynę tak:

A wyłączamy tak:

Obie funkcje muszą mieć oczywiście rolę, która im pozwoli na takie działania. Poniżej polityka którą powinniśmy podpiąć pod rolę która pozwoli funckji lambda tworzenie logów oraz…

Read More Read More

AWS SNS i NET.Core

AWS SNS i NET.Core

Pracuję nad projektem, w którym muszę pobrać dane z MySQL na AWS, przetworzyć je i zapisać do Azure SQL. Rozwiązanie będzie pracowało tylko raz na jakiś czas, staram sie więc wykorzystać dobrodziejstwa serverless. Piszę w Pythonie i NET.Core i dziś chciałem wysłać powiadomiania za pomocą AWS SNS i NET.Core i nie było tak hopsiup. Musiałem trochę poszperać i popróbować. Żaden znaleziony tutorial, żaden przykład nie działał. Nawet na StackOverflow nie znalazłem nic do dziedziczenia edytorowego (CTRL-C/CTRL-V) 🙂 Udało się coś…

Read More Read More

API Gateway – Autoryzacja

API Gateway – Autoryzacja

Jakiś czas temu pojawiły się nowe możliwości autoryzacji zapytań kierowanych do AWS API Gateway. Akurat miałem się tym zająć. Jakiś czas temu bawiliśmy się API połączonym z Lambdą. Rzadko mamy jednak do czynienia z aplikacjami, z których mogą korzystać wszyscy i to jeszcze anonimowi użytkownicy. Potrzebujemy autoryzacji. Out of the box AWS oferuje nam autoryzację za pomocą IAM.   Nie chcmy jednak przecież tworzyć użytkowników naszego API w IAM. Udostępniając światu jakieś API, skorzystamy z własnych metod autoryzacji. Na szczęście jest…

Read More Read More

Dane w plikach CSV, JSON i SQL? Tak. AWS Athena

Dane w plikach CSV, JSON i SQL? Tak. AWS Athena

Kilka dni temu okazało się, że będę musiał popracować trochę z plikami tekstowymi, w których zapisane są lokalizacje GPS. Pliki zapisane są w formacie JSON, wiele lokalizacji w jednym pliku. Dwa pliki to jeden dzień zbierania danych (dwa serwery zbierające dane). Problem polegał na tym, że potrzebuję lokalizacje dotyczące konkretnego wydarzenia, a więc miejsca i czasu. W jednym pliku mogą być dane dotyczące lokalizacji z kilku dni, ale przesłane tego, konkretnego dnia. Cache w urządzeniach itp. Pierwsze pomysły to jakieś…

Read More Read More

Serverless API – Jak postawić API bez serwera

Serverless API – Jak postawić API bez serwera

Modne jest ostatnio wszystko, co ma związek z pojęciem serverless. Dziś zobaczymy jak postawić serverless API, czyli API bez serwera. Może nie bez serwera, ale bez zajmowania się serwerem. Taka opcja może się przydać nie tylko w celach testowych. Używając AWS Lambda możemy zapomnieć o konieczności skalowania, dbania o serwery, coś takiego jak brak dostępności do naszego API to będzie legenda. Wykorzystamy AWS API Gateway i AWS Lambda. Pokażę jak prostą aplikację napisaną w Pythonie z wykorzstaniem Flask wrzucić do…

Read More Read More

Amazon Web Services – Kolejki FIFO

Amazon Web Services – Kolejki FIFO

Pisałem ostatnio o kolejkach w Azure. Dziś trochę o AWS.  Amazon udostępnił w kilku regionach (N. Virginia, Ohio, Oregon, Irlandia) kolejki FIFO. First In First Out. W przypadku zwykłej kolejki, wiadomości mogą być odczytywane przez wielu konsumentów i przetwarzane równolegle. Czy korzystając z kolejki FIFO możemy myśleć o skalowaniu aplikacji? Tak, ale… Kolejka FIFO po udostępnieniu wiadomości „ukrywa” pozostałe do momentu, aż poprzednia nie zostanie obsłużona lub skończy się tak zwany Visibility Timeout. Korzystanie z większej ilości procesów obsługujących odczyt wiadomości z danej…

Read More Read More

Pierwsza kolejka wiadomości w Azure

Pierwsza kolejka wiadomości w Azure

Chyba każdy programista miał do czynienia z kolejkami. A większość z tych, którzy studiowali informatykę, jakąś pewnie nawet zaimplementowała. Po co kolejki? Pozwalają nam na asynchroniczną komunikację pomiędzy róznymi apliakcjami, serwisami. Możemy odseparować poszczególne elementy naszego rozwiązania i uruchamiać je niezależnie. Każdy taki element może pracować w innym miejscu. Może to być chmura, nasz komputer, czy też serwer umieszczony w naszej firmie. Pozwala to na budowanie różnego rodzaju workflows, ułatwia skalowanie rozwiązań oraz uniezależnia je od siebie w pewnym stopniu….

Read More Read More

AWS API Gateway i dane.

AWS API Gateway i dane.

Proces poznawania AWS trwa. Ostatnio zrobiliśmy proste, przykładowe API Gateway. Dziś coś trochę bardziej skomplikowanego. Utworzymy API Gateway,  w którym przetworzymy przesłane dane i prześlemy je do funkcji Lambda, odbierzemy od niej rezultat i wyślemy wynik użytkownikowi naszego API. Założenia Tworzymy metodę POST Jako payload przesyłamy obiekt JSON:

API do funkcja lambda prześle obiekt w postaci:

Funkcja Lambda zwróci nam obiekt w postaci:

API zwróci obiekt:

oraz doda do nagłówków HTTP pole o nazwie LambdaStatus z wartościa zwróconą…

Read More Read More