Zastanawiałeś się kiedyś jak utworzyć aplikację serverless na AWS w łatwy i szybki sposób? Z pomocą przychodzi nam narzędzie AWS Serverless Application Model, na podstawie którego stworzymy sobie prostą aplikację serverless.
1. Czym jest AWS SAM?
AWS SAM jest narzędziem które w znaczny sposób ułatwia i przyśpiesza nam proces budowania i wdrażania aplikacji serverless na chmurę AWS za pomocą kilku komend.
2. Instalacja AWS SAM CLI
W pierwszej kolejności będziemy potrzebowali mieć zainstalowany lokalnie AWS SAM, w tym celu odsyłam bezpośrednio do dokumentacji AWS https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
3. Zaczynamy zabawę!
Mamy zainstalowany AWS SAM, czas utworzyć nasz pierwszy projekt. W tym celu odpalamy polecenie:
sam init
Następnie wybieramy opcję 1 czyli AWS Quick Start Templates, w kolejnym roku wybieramy AWS Quick Start application template, tutaj również wybieramy 1, ponieważ chcemy utworzyć sobie aplikację z hello world. W kolejnych krokach lecimy według tej kolejnoścy y, n, n, a na samym końcu podajemy nazwę naszej aplikacji, nazwijmy ją learn_serverless.
Nasza pierwsza aplikacja serverless została utworzona, ale nie przyjmuje ona danych od użytkownika i wyświetla tylko napis „Hello World”, więc tutaj trochę zmienimy kod. Otwieramy plik app.py, który znajduje się katalogu hello_world, a następnie wklejamy do niego poniższy kod
import json
def lambda_handler(event, context):
body_data = json.loads(event['body'])
return {
"statusCode": 200,
"body": json.dumps({
"message": "Welcome pack",
'name': body_data['name'],
'surname': body_data['surname']
}),
}
Powyższy kod przyjmuje od nas dane wysyłane metodą post, oraz zwraca je jako wynik, więc przy okazji pierwszej aplikacji zobaczycie, jak odbierać dane z requesta. Dodatkowo w pliku template.yaml w linii 35, musimy zmienić metodę z GET na POST. Kiedy mamy już wszystko gotowe, zbudujmy nasz projekt przy pomocy polecenia
sam build
Następnie musimy uruchomić poniższe polecenie, aby wdrożyć naszą aplikację na chmurę AWS.
sam deploy --guided
Po wpisaniu polecenia zostaniemy poproszeni o potwierdzenie kilku rzeczy, jak na obrazku
Następnie zobaczymy changeset jak na poniższym obrazu i będziemy musieli potwierdzić, że wyrażamy zgodę na wdrożenie aplikacji na AWS
Takim oto sposobem wdrożyliśmy swoję pierwszą aplikację serverless na chmurę AWS. Po poprawnym wdrożeniu aplikacji na chmurę, dostaniemy jako output adres url do naszej aplikacji.
Ostatnią rzeczą, jaka została nam do zrobienia to sprawdzenie czy nasza aplikacja faktycznie działa, w tym celu wykonajmy zapytanie CURL, pod adres, który zwrócił nam wynik sam deploy –guided, w moim wypadku polecenie wygląda tak
curl --location 'https://sqfhg2jyw7.execute-api.eu-central-1.amazonaws.com/Prod/hello/' --header 'Content-Type: application/json' --data '{
"name": "Pawel",
"surname": "Tester"
}'
W odpowiedzi otrzymuję poniższy wynik
{"message": "Welcome pack", "name": "Pawel", "surname": "Tester"}
Więc nasza aplikacja została poprawnie zbudowana oraz wdrożona 🙂
Mam nadzieję, że powyższy artykuł komuś się przydał i pokazał jak w prosty sposób zbudować aplikację serverless oraz jak szybko ją wdrożyć na AWS.