(ࠓߋ)Amplifyͬ͘͞ΓମݧKichijoji.pm #27papix (@__papix__)
View Slide
ࣗݾհ• papix (id:papix / @__papix__)• גࣜձࣾͯͳ WebΞϓϦέʔγϣϯΤϯδχΞ (2017ʙ)• ϒϩάMediaνʔϜ → ϚϯΨνʔϜ• Ұൠࣾஂ๏ਓJapan Perl Associationཧࣄ• ϒϩά: https://papix.hatena(blog.(com|jp)|diary.jp)
AWS Amplify• ެࣜᐌ͘...• AWS Amplify ɺͦΕͧΕΛ࿈ܞͤͨ͞ΓݸผͰ༻ͨ͠ΓͰ͖ΔɺπʔϧͱαʔϏεͷηοτͰ͢ɻ͜ΕΒͷػೳʹΑΓɺϑϩϯτΤϯυΣϒ͓ΑͼϞόΠϧͷσϕϩούʔ͕ɺAWS ʹΑΔεέʔϥϒϧͳϑϧελοΫΞϓϦέʔγϣϯΛϏϧυͰ͖ΔΑ͏ʹ͠·͢ɻ
࡞ͬͨͷ: SmartP• ࣾͷ։ൃ߹॓(3ؒ)Ͱ࡞ͬͨϓϩμΫτ• ٕज़ελοΫ: Amplify / Next.js(SSR)• Πϕϯτͷܭը/ڞ༗/ه(อଘ)͕Ͱ͖ΔWebαʔϏε
AWS AmplifyͰྑ͔ͬͨ͜ͱ• CLIͰαΫοͱϦιʔε͕ੜ͑Δ• ňamplify auth addʼnͰCognito͕ੜ͑Δ• ňamplify storage addʼnͰS3͕ੜ͑Δ• ňamplify api addʼnͰGraphQL endpoint (AppSync)͕ੜ͑Δ
AWS AmplifyͰྑ͔ͬͨ͜ͱ• AppSync͕ศར• GraphQLͷschemaΛॻ͍ͯdeploy͢Δͱγϡοͱಈ͘• Subscriptionͷॲཧ࠷ݶͷίʔυͰ࣮Ͱ͖Δ
AWS AmplifyͰGraphQLͷSubscription// ActivityͷՃΛsubscribe͢Δconst createActivitySubscription = API.graphql(graphqlOperation(onCreateActivity)) as Observable>;createActivitySubscription.subscribe({next: e =>{const createdActivity = e.value.data.onCreateActivity;// createdActivity͕, Ճ͞ΕͨActivity// Α͠ͳʹॲཧΛ͢Δ}});
AWS AmplifyͰྑ͔ͬͨ͜ͱ• ࠷খݶͷ࡞ۀͰ࠷ݶಈ͘ͷ͕࡞ΕΔ• ೝূ, σʔλͷཧ, ը૾ͷอଘͳͲશͯAmplifyʹͤΒΕΔ• ࠓճͷ։ൃ߹॓ͷΑ͏ͳ, ϓϩτλΠϐϯάʹศར
AWS AmplifyͰ͔ͬͨ͜͠ͱ• ͪΐͬͱڽͬͨ͜ͱΛ͠Α͏ͱ͢Δͱେม(ͳ͜ͱ͕͋Δ)• ࣾͷ։ൃ߹॓Ͱར༻͢ΔͷͩͬͨͷͰ, CognitoͰϝʔϧΞυϨεͷυϝΠϯͰ੍ݶΛ͔͚Α͏ͱͨ͠• Կނ͔͏·͘ߦ͔ͣ, ࢼߦࡨޡͷϩάΠϯ͕Ͱ͖ͳ͘ͳͬͨ...• ࠷ऴతʹ, 3ؒͰ4ճΠν͔ΒAmplifyͰڥΛ࡞Δ͜ͱʹͳͬͨ• ௨শňAmplifyڥߏஙRTAʼn
AWS Amplify ײ• ϓϩτλΠϐϯάʹຊʹ࠷ద• "ຊ࣭"ʹूத͢Δ͜ͱ͕Ͱ͖ͨ• ࣮ࡍʹαʔϏεͱͯ͠ఏڙ͢Δࡍʹ͏͔ཁݕূ• บ͕͋Δ͕ଟ͍• ň͠Ұൠʹఏڙ͢ΔͳΒGo(GraphQL) + Next.jsͰ࡞Γ͔͢ͳ...ʼnͱ͍͏ձΛͨ͠
·ͱΊ• ࠓߋAWS Amplify৮ͬͯΈ·͕ͨ͠, ૾ͷ100ഒศརͩͬͨ• Կ͔αΫοͱಈ͘WebαʔϏε࡞Γ͍͍͖͍ͨ࣌ͬͯͨ