[レポート] AWSで作るWebフロント&クロスプラットフォームモバイル開発 #MOB307 #reinvent
本記事では、セッション「MOB307 Frontend web and cross-platform mobile development on AWS」をレポートします。
Speaker
- Naber Dabit AWS Senior Developer Advocate (@dabit3)
AWS Amplify Overview & state of union
- Amplify Frameworkは15の機能
- Amplify Consoleは16の機能
- Community Siteもオープン
- Overview
- CLI Toolchain
- Client libraries (iOS / Android / JavaScript)
- Olatform-specific components
- Hosting + CI/CD platform
- Workflow
- CLIからサービスを作成
- クライアントライブラリを使って接続
- アップデート
- Amplify CLI
- Creating services
- Updating and configuration existing services
- Local mocking & testing
- Creating & manage environments
- GraphQL & Lambda
- Removing
- Usage
amplify init
~amplify push
までシンプルなコマンドで構築可能
Amplifu Client
- 様々なPlatformで利用可能
- Native iOS, Androidをサポート (New) 来週リリース予定
OAuth Support
- Sign In with Appleをサポート (NEW)
- Facebook / Google / Amazon / OIDC
AWS Amplify New Feasture Overview
- 2019には11の機能アップデート
- Lambda Triggers
- Local mocking & testing
- Multiple authorization types for AppSync
- Custom AppSync resolvers
- AppSync Lambda resolvers
- Custom DynamoDB indexed
- Predictions - Machine learning & AI
- Multiple environments
- Inport Aurora Serverless data source for AppSync
- Full
- OAuth
- this week
- JS library goodness to iOS/Android development
New featureの概要とBestPractice
- AWS AppSync Multi Authorization Access
- AppSyncで複数の認証が設定可能
rule
ディレクティブで認証先を変更可能- Clientで指定可能
- Lambda resolvers
- GraphQLのResolverとしてLambdaを設定可能
Tips and Best Practice
- 保護すべきモデルには
@auth
で認証を有効に - Local Mochking & Testingで
- フィールドレベルのAuthorizationを利用
- 複数環境を使ってプロダクションテストを行う
- BranchのプレビューをAmplify Consoleで作成する
@key
でAdditionalなデータアクセスパターンを作る
Amplify Console
- Git based hosting
- Deploys to globally available CDN
- Deploy both front and bacn ends
- CI/CD
New Feature
- 2019に13の機能をアップデート
- Fullstack backend visibility
- PR previews
- CFn Support
- Incoming webhooks
- Instant cache invalidation
- Custom HTTP headers
- Deploy via S3, Dropbox, or your desktop
Demo
Music Festival APIのDemoです。
- Cognitoでログイン
- AppSyncでAPIアクセス
- DynamoDB Resolverでデータを格納
- Fine-grained Access Control
CLIから作る際に、APIをRESTにするかGraphQLにするかを選べます。
ベースの認証方式も選べます。Cognito User Poolsを選んだ場合はリソースも作成します。
GraphQLを選ぶ際は、スキーマを作りつつモデルも作成できます。
@model
を作ると、DynamoDBの作成などをよしなにやってくれます。@connection
を使うと他のモデルを参照可能。@auth
でモデルへのアクセスを制限します。operations
を指定すると例えば読み取りのみなどのような設定が可能です。
Schemaの作成が終わったらCLIに戻り、プロジェクト作成が完了。
ローカルでビルド。GraphiQLも使えます。サンプルのQueryの作成もボタンぽちぽちで可能。ここも簡単になっています。
認証も試すことができます。
まとめ
Amplify、正直最近追えていませんでしたが2019年も数多くのアップデート、しかも開発におけるかゆいところに手が届く系のアップデートが非常に多いです。実際に試しながらキャッチアップできればと思います。