Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amplifyによるお手軽個人開発

Avatar for matcha matcha
October 24, 2021

 Amplifyによるお手軽個人開発

Amplifyによるお手軽個人開発

Matcha
- SI系の会社でSEやってます
- 触ったことあるもの:typescript, vue, react, aws(lambda, amplifyなど)
- 好きなもの:ベース
- 平日毎朝オンラインもくもく会開催してます!興味あればお気軽にご参加ください!
https://daredemomomoku.connpass.com/
-https://twitter.com/dom12000931

Avatar for matcha

matcha

October 24, 2021
Tweet

More Decks by matcha

Other Decks in Programming

Transcript

  1. amplifyの良いところ(CLI) CLIから簡単にAWSリソースを生成できる(CFテンプレートをローカルに生成) DB/API  $ amplify add api  // Appsync(GraphQL), DynamoDB

    にテーブル生成 Storage  $ amplify add storage  // S3 にバケット生成 Auth  $ amplify add auth  // Cognito にユーザプール生成 Hosting  $ amplify add hosting  // S3 にSPA をデプロイ, CloudFront 設定 開発に便利な機能も多数 Mock  $ amplify mock  // ローカル環境でAPI/ ストレージを使える Codegen  $ amplify codegen  // GraphQL スキーマからクエリを自動生成
  2. amplifyの良いところ(ライブラリ) AWSリソースを簡単に操作できるライブラリが用意されている ・GraphQL(Appsync) import { API, graphqlOperation } from 'aws-amplify';

    import { getBlog } from './graphql/queries'; const res = await API.graphql(graphqlOperation(getBlog, {id: "10000"})); graphqlOperation の第1引数でクエリ、第2引数でパラメタを指定 graphql/queries にAmplifyが自動生成したクエリがあるので、とりあえずクエリ実行 したいときは使える
  3. ・CodeGen GraphQLスキーマからクエリを自動生成してくれる type Product @model @key(fields:["id"]) { id: ID! title:

    String } export const getProduct = /* GraphQL */ ` query GetProduct($id: ID!) { getProduct(id: $id) { id title } } `; export const listProducts = /* GraphQL */ ` query ListProducts( ... `;
  4. ・Storage(S3) Storage.get('welcome.png', { level: 'public' }); Storage.put('test.txt', 'Protected Content', {

    level: 'protected', contentType: 'text/plain' }) Storage.put('test.txt', 'Private Content', { level: 'private', contentType: 'text/plain' }) アクセス権限を指定してGet/Putが可能。自分でバケットにIAMポリシーを付与する必 要がない。 Public/Protected/Privateがデフォで利用可能