S e r v e r l e s s S PA B a c k e n d s • Auth: Cognito User Pools • API: API Gateway & Lambda • Batch: Lambda & Step Functions • Frontend: React & AWS Amplify SDK • Web Server: Netlify
ख ૣ ͘ A P I Λ ࡞ Γ ͨ ͍ ͱ ͖ ʹ S e r v e r l e s s F r a m e w o r k • Shifter / AMIMOTOͷAPIServerless Framework • LambdaɾAPI GatewayɾIAMϙϦγʔͷઃఆ͕༰қ • ϓϥάΠϯ͕๛ͳͷͰɺTypeScript / Route53ͳͲͷૢ࡞ָ͕ • ࣮ଶCloudFormationɺͨͩ͠Codeࡾܑఋ͏ͳΒSAM͕༏Ґ
S e r v e r l e s s F r a m e w o r k ͜ Ε ͬ ͱ ͘ ͱ ศ ར Ϧε τ • provider.deploymentBucketΛࢦఆͯ͠σϓϩΠόέοτΛ౷Ұ • provider.logRetentionInDays:Ͱprod / devͷϩάอ࣋ظؒΛมߋ • tokenͳͲͷηΩϡϦςΟใSSMͷparameter store • serverless-prune-pluginΛೖΕΔͱݹ͍όʔδϣϯͷLambdaΛফͤΔ • serverless-offline-plugin͕API։ൃʹศར https://qiita.com/motchi0214/items/31d32d1f27fa643248fc
ެ ։ A P I AW S ͷ Ϧ ι ʔε ࿈ ܞ ͕ ଟ ͍ ߹ ʹ S A M • ެ։APIͷυΩϡϝϯτΛSwaggerͰཧ • ͨͩ͠Serverless FrameworkͰͦͷ··ΠϯϙʔτͰ͖ͳ͍ • SwaggerͰυΩϡϝϯτͭ͘ΔͳΒSAM • CloudFormationͳͷͰɺෳࡶͳߏཧSAMͷ΄͏͕༏Ґͦ͏
t e r r a f o r m i m p o r t Ғ େ • DynamoDBɾCognitoͳͲɺखͰௐ͢Δέʔε͕كʹΑ͋͘Δ • devͰ͏·͍ͬͨ͘ઃఆΛͦͷ··importͰίʔυԽͰ͖Δ • ίʔυཧ͍͕ͨ͠ɺݫີ͞͞΄ͲॏཁͰͳ͍߹ʹΑ͍ • CFNυϦϑτݕͳͲ͋Δ͕ɺࠓͷॴະ༻
AW S C D K ͡ Ί · ͠ ͨ • AppSyncܥͷϦιʔεཧʹೖ • TypeScriptͳͷͰɺIDEͰώϯτ͕ͰΔͷ͕࠾༻ཧ༝ • ύϥϝʔλʹϛε͕͋ΔͱɺCFNͷσϓϩΠલʹϏϧυͰίέΔ • ʮԶͷCFNΛյͭ͢ઈରʹڐ͞ͳ͍ʯਓʹ͓͢͢Ί • cdk synthίϚϯυͰCFNग़ྗՄೳͳͷͰɺఫୀՄೳ