AWS AppSync
Frontend Cloud Practitioner Solutions Architect Associate Developer Associate

AWS AppSync

AWS AppSync

Zarzadzany serwis GraphQL i Pub/Sub API w chmurze AWS. Real-time subscriptions, automatyczny offline sync i integracja z DynamoDB, Lambda i innymi zrodlami danych.

AWS AppSync to w pelni zarzadzany serwis do tworzenia GraphQL i Pub/Sub API. Pozwala budowac aplikacje z danymi w czasie rzeczywistym dzieki subscriptions (WebSocket) oraz obsluguje tryb offline z automatyczna synchronizacja konfliktow.

AppSync laczy sie z wieloma zrodlami danych: DynamoDB, Lambda, RDS, HTTP endpoints i OpenSearch. Resolvers mozna pisac w VTL (Velocity Template Language) lub JavaScript. Serwis oferuje tez merged APIs do laczenia wielu API GraphQL w jedno oraz pipeline resolvers do zlozonej logiki biznesowej.

Czy wiesz, ze...

AppSync obsluguje do 240 000 jednoczesnych polaczen WebSocket na jedno API. W polaczeniu z DynamoDB jako data source, mozesz zbudowac czat dla setek tysiecy uzytkownikow bez zarzadzania zadna infrastruktura serwerowa - wszystko jest w pelni serverless!

Pro Tip

Uzywaj JavaScript resolvers zamiast VTL - sa latwiejsze do debugowania i testowania. Mozesz uruchamiac testy jednostkowe lokalnie komenda aws appsync evaluate-code. Pipeline resolvers pozwalaja dzielic logike na male, reuzywalne kroki zamiast jednego duzego resolvera.

AWS AppSync to w pelni zarzadzany serwis GraphQL API, ktory automatycznie laczy dane z DynamoDB, Lambda, RDS, OpenSearch i HTTP endpoints. Obsluguje real-time subscriptions przez WebSocket i synchronizacje offline w aplikacjach mobilnych.

1

Definicja schematu GraphQL

Tworzysz schemat GraphQL definiujacy typy danych, zapytania (Query), mutacje (Mutation) i subskrypcje (Subscription). AppSync wspiera pelna specyfikacje GraphQL z dodatkowymi dyrektywami AWS (@auth, @model). Schemat jest centralnym kontraktem miedzy frontendem a backendem.

2

Konfiguracja zrodel danych (Data Sources)

Data Sources to backendy, z ktorych AppSync pobiera dane: DynamoDB (najczesciej), Lambda (custom logic), RDS Aurora Serverless (SQL), OpenSearch (wyszukiwanie), HTTP endpoints (zewnetrzne API). Mozesz laczyc wiele zrodel w jednym API. Kazde zrodlo ma osobna konfiguracje IAM.

3

Pisanie resolverow (VTL lub JavaScript)

Resolvery mapuja operacje GraphQL na zrodla danych. Pipeline resolvers pozwalaja laczyc wiele operacji w sekwencji. Od 2023 AppSync wspiera resolvery w JavaScript (APPSYNC_JS runtime) zamiast VTL - sa latwiejsze do pisania i testowania. Unit resolvers obsluguja proste CRUD, pipeline - zlozona logike.

4

Konfiguracja autoryzacji

AppSync obsluguje 5 trybow autoryzacji: API Key (prototypowanie), Cognito User Pools (uzytkowicy), IAM (serwisy AWS), OpenID Connect (zewnetrzne IdP), Lambda Authorizer (custom logic). Mozesz laczyc wiele trybow w jednym API i kontrolowac dostep na poziomie pola w schemacie.

5

Real-time subscriptions

Subskrypcje GraphQL dzialaja przez WebSocket (protokol MQTT over WSS). Klient subskrybuje mutacje i automatycznie otrzymuje aktualizacje. AppSync obsluguje filtry subskrypcji - klient dostaje tylko dane, ktore go dotycza. Skaluje sie automatycznie do milionow polaczen WebSocket.

6

Caching i optymalizacja

AppSync oferuje server-side caching (w pamieci lub ElastiCache) na poziomie calego API lub poszczegolnych resolverow. TTL konfigurujesz per resolver. Dodatkowo AppSync wspiera request batching i automatic query deduplication. Dla duzych API uzyj merged APIs do polaczenia wielu schematow.

Praktyczne wskazowki z budowania API GraphQL na AppSync - od modelowania danych po optymalizacje wydajnosci.

JavaScript resolvers zamiast VTL

Od 2023 AppSync wspiera resolvery w JavaScript (APPSYNC_JS runtime). Rezygnuj z VTL - JavaScript jest latwiejszy do pisania, testowania (lokalne unit testy) i debugowania. Ograniczenie: APPSYNC_JS nie obsluguje pelnego Node.js, tylko podzbiur ES2021 bez async/await. Do zlozonej logiki uzyj pipeline z Lambda data source.

Poczatkujacy

Wzorzec single-table design z DynamoDB

AppSync z DynamoDB dziala najlepiej z single-table design. Uzywaj composite keys (PK: USER#123, SK: ORDER#456) do modelowania relacji. Pipeline resolvers pozwalaja wykonac BatchGetItem do pobrania powiazanych encji w jednym zapytaniu GraphQL. Unikaj N+1 queries przez batching resolverow.

Zaawansowany

Offline i conflict resolution

AppSync SDK (Amplify DataStore) obsluguje synchronizacje offline z automatic conflict resolution. Strategie: Optimistic Concurrency (wersjonowanie), Auto Merge (polaczenie zmian), Lambda (custom merge logic). Dla aplikacji mobilnych to kluczowa funkcja - uzytkownik moze pracowac bez internetu, a dane zsynchronizuja sie po polaczeniu.

Zaawansowany

Monitorowanie i debugowanie

Wlacz CloudWatch Logs na poziomie ALL dla developmentu (kazdy request/response) i ERROR dla produkcji. Metryki 4XXError i 5XXError sygnalizuja problemy z resolverami. Uzyj X-Ray tracing do identyfikacji wolnych resolverow. W konsoli AppSync jest wbudowany query editor do testowania operacji.

Poczatkujacy

Merged APIs dla mikroserwisow

Merged API pozwala polaczyd wiele niezaleznych API AppSync w jeden endpoint. Kazdy team moze rozwijac swoj schemat niezaleznie, a merged API eksponuje polaczony graf. To odpowiednik Apollo Federation w ekosystemie AWS. Rozwiazuje problem koordynacji schematow w duzych organizacjach.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS AppSync bezposrednio w konsoli AWS.

Do czego sluzy AWS AppSync?

01

Aplikacje real-time

Buduj czaty, dashboardy na zywo, wspolne edytory dokumentow. GraphQL subscriptions dostarczaja dane do klientow w milisekundach przez WebSocket.

02

Aplikacje mobilne z trybem offline

Twoja aplikacja dziala bez internetu. AppSync automatycznie synchronizuje dane gdy polaczenie wroci, z wbudowana detekcja i rozwiazywaniem konfliktow.

03

Agregacja danych z wielu zrodel

Polacz dane z DynamoDB, RDS, REST API i Lambda w jednym zapytaniu GraphQL. Klient dostaje dokladnie te dane, ktore potrzebuje.

04

Mikroserwisy z merged APIs

Kazdy zespol buduje wlasne API GraphQL. AppSync laczy je w jedno merged API z jednym endpointem dla klientow frontendowych.

Co musisz wiedziec?

Schema GraphQL

Definicja typow, zapytan (Query), mutacji (Mutation) i subskrypcji (Subscription). AppSync generuje resolvers i data sources na podstawie schematu.

Resolver

Funkcja mapujaca zapytanie GraphQL na operacje na zrodle danych. Moze byc napisany w VTL (Velocity Template Language) lub JavaScript. Pipeline resolvers lacza wiele krokow.

Data Source

Zrodlo danych polaczone z AppSync: DynamoDB, Lambda, RDS (Aurora), HTTP endpoint, OpenSearch lub None (lokalne operacje). Kazdy resolver jest powiazany z data source.

Subscriptions

Mechanizm real-time oparty na WebSocket. Klienci subskrybuja zmiany danych i otrzymuja aktualizacje automatycznie gdy nastapi mutacja spelniajaca warunki filtra.

Conflict Detection

Wbudowany mechanizm wykrywania i rozwiazywania konfliktow dla trybu offline. Strategie: Optimistic Concurrency, Auto Merge i Custom Lambda.

Merged APIs

Funkcja pozwalajaca polaczyc wiele niezaleznych API AppSync w jedno API z jednym endpointem. Idealne dla architektury mikroserwisowej.

Architektura: Real-time API z AppSync

Architektura aplikacji z API GraphQL na AppSync, laczcym dane z wielu zrodel z real-time subscriptions i synchronizacja offline.

Klient (Web/Mobile) Aplikacja z Amplify SDK, offline-first
Auth
Amazon Cognito
Amazon Cognito Autentykacja uzytkownikow, JWT tokens
GraphQL / WebSocket
AWS AppSync
AWS AppSync GraphQL API z resolverami JS, caching, real-time subscriptions
Direct resolver
Amazon DynamoDB
Amazon DynamoDB Glowna baza danych, single-table design
Pipeline resolver
AWS Lambda
AWS Lambda Custom business logic, integracje zewnetrzne
Search resolver
Amazon OpenSearch
Amazon OpenSearch Wyszukiwanie pelnotekstowe i filtrowanie
AppSync automatycznie skaluje WebSocket do milionow polaczen real-time
Caching server-side zmniejsza koszty DynamoDB i poprawia latency o 50-90%
Merged APIs pozwalaja niezaleznym teamom rozwijac czesci schematu osobno

Ile kosztuje AWS AppSync?

Zapytania i mutacje

Platisz za kazde zapytanie Query i Mutation do API. Cena za milion zapytan.

$4.00 za milion zapytan/mutacji. Free Tier: 250 tys./mies.

Real-time Updates

Platisz za minuty polaczenia WebSocket i za kazda aktualizacje real-time dostarczona do klientow.

$0.08/mln minut polaczenia, $2.00/mln aktualizacji.

Caching

Opcjonalny cache zmniejsza opoznienia i koszty. Platisz za godziny pracy instancji cache.

small: ~$0.035/godz. (~$25/mies.)

Free Tier

12 miesiecy darmowego uzytkowania z hojnymi limitami na zapytania i real-time.

250 tys. zapytan, 600 tys. minut polaczenia/mies.

Przyklady AWS CLI

Utworz API AppSync

Tworzy nowe API GraphQL z autoryzacja Cognito

aws appsync create-graphql-api \
 --name moje-api \
 --authentication-type AMAZON_COGNITO_USER_POOLS \
 --user-pool-config userPoolId=eu-west-1_abc123,defaultAction=ALLOW,awsRegion=eu-west-1

Wyswietl schemat API

Pobiera aktualny schemat GraphQL z API

aws appsync get-introspection-schema \
 --api-id abcdef123456 \
 --format SDL \
  schema.graphql

Lista data sources

Wyswietla wszystkie zrodla danych polaczone z API

aws appsync list-data-sources \
 --api-id abcdef123456 \
 --query "dataSources[].{Name:name,Type:type}" \
 --output table

Uruchom zapytanie GraphQL

Testuje zapytanie GraphQL bezposrednio z CLI

aws appsync evaluate-code \
 --runtime name=APPSYNC_JS,runtimeVersion=1.0.0 \
 --function "export function request(ctx) { return {}; }" \
 --context "{}"

Quiz: AWS AppSync

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 4

1. Czym sa subscriptions w AppSync?

2. W jakich jezykach mozna pisac resolvers w AppSync?

3. Co to sa merged APIs?

4. Ktore data sources obsluguje AppSync?

Chcesz poznac AWS AppSync w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS AppSync krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy