Slide 1

Slide 1 text

ΧϯϑΝϨϯεө͑͢Δ σϞΞϓϦΛ΄΅Python͚ͩͰ ࡞ͬͨ࿩ with Cloud Run⚾ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ PyConJP 2022 Ͱ΍Εͳ͔ͬͨ࿩Λ͜͜Ͱڙཆ͠·͢ͷר Shinichi Nakagawa@shinyorke 2022/11/19 PyLadies Tokyo 8प೥ه೦LT

Slide 2

Slide 2 text

Who am ɹ? ʢ͓લ୭Α?ʣ • Shinichi Nakagawa@shinyorke • େख֎ࢿܥITίϯαϧاۀϚωʔδϟʔ • ೔ຊͷPythonք۾Ͱʮ⽁ͷਓʯͱݺ͹Ε͍ͯΔ • PyConJPొஃ8ճʢ2014-2018, 2020-2022ʣ 
 ʢ2019೥͸ຐ͕ࠩͨ͠ҰൠࢀՃऀʣ • PyLadies Tokyo ̋प೥΋LTࢀՃ8ճ໨ 
 ʢॳճ͔Βϑϧग़৔ܧଓதʣ #Python #Serverless #GoogleCloud #Baseball 
 #DataScience #SABRmetrics

Slide 3

Slide 3 text

ຊ೔ͷ͓࿩ • DashΛ࢖ͬͯʮ΄΅Python͚ͩʯͰWebΞϓϦέʔγϣϯΛ࡞Δ • DashΞϓϦέʔγϣϯΛGoogle CloudͰ͍͍ײ͡ʹϗετ͢Δ

Slide 4

Slide 4 text

Ͳ͏͍͏Ϟϊ͔ͻͱ·͓ͣݟͤ͠·͢.

Slide 5

Slide 5 text

ΦΦλχαϯʂʂΩϡϯͰ͢ὑ ౤खͰೋܻউͪͳ͕Β΋ଧͬͯ34ຊྥଧ…Τά͍.

Slide 6

Slide 6 text

ΦΦλχαϯʂʂΩϡϯͰ͢ὑ ౤खͰೋܻউͪͳ͕Β΋ଧͬͯ34ຊྥଧ…Τά͍.

Slide 7

Slide 7 text

σϞΞϓϦέʔγϣϯߏ੒ • ΞϓϦຊମ͸DashͰ࣮૷ͨ͠ϑϩϯτΤϯυ, Cloud RunͰϗετ • API GatewayΛ௨ͯ͠όοΫΤϯυʹΞΫηε • όοΫΤϯυ͸Cloud Functionsʹ͋Δʢ͜Ε΋Pythonʣ, Databaseͷத਎ΛJSONͰฦ͢RESTful API

Slide 8

Slide 8 text

Dash • άϥϑඳըɾՄࢹԽϥΠϒϥϦʮPlotlyʯΛ 
 ͍͍ײ͡ͳWebΞϓϦͱͯ͠࡞ΔͨΊͷFW • αʔόʔαΠυΞϓϦͷϕʔε͸Flask, ϑϩϯτ͸Reactͱ͍͏ 
 ʢྲྀߦΓͬΆͯ͘ʣ͍͍ײ͡ͳߏ੒ • ૉͷJavaScriptɾHTMLΛॻ͔ͳͯ͘΋, Python͚ͩͰΠέΔॴ͕ 
 ؾʹೖΓ, σϞΞϓϦͷϕʔεͱͯ͠࠾༻

Slide 9

Slide 9 text

ίʔυʢงғؾʣ • ࠷ॳظͷίʔυͷεΫγϣͰ͢ • HTMLʹ໛ͨ͠ίϯϙʔωϯτΛ 
 ΰϦͬͱॻ͘ • ΠϕϯτۦಈͰͷॻ͖׵͑͸ 
 CallbackͳσίϨʔλʔͰ࣮૷ • ͳΜͱͳ͘Ͱ͕͢ReactͬΆ͍ 
 งғؾʹʢͳ͓callback஍ࠈʣ

Slide 10

Slide 10 text

Cloud Run΁ͷϗεςΟϯά • GitHub Repositoryʹpushͨ͠ΒGitHub Actions͕ൃՐ, ςετ -> Docker Build -> Cloud RunσϓϩΠ • ςετ͸pytest, flake8, mypyΛGitHub Actions্Ͱ࣮ࢪʢunit, integration·Ͱ୲อ͢ΔΠϝʔδʣ • Docker build͸Cloud Runͷඪ४తͳ΍Γํʹै͏. • Cloud Build্ͰϏϧυ • Artifact Registryʹpush • Cloud Run΁ͷσϓϩΠ͸Github ActionsͷެࣜΛ࢖࣮ͬͯࢪ. • ͪͳΈʹଞͷΫϥ΢υαʔϏεͰ΋༨༟Ͱ΍ΕΔͱࢥ͍·͢ʢAWS, Azure, etc…ʣ

Slide 11

Slide 11 text

Github Actionsͷఆٛ test->build->deploy • ݱࡏӡ༻͍ͯ͠ΔΞϓϦͷ 
 GitHub Actionsఆٛ • ࣮ݱ͢Δͷʹ100ߦ͍ۙ 
 yamlఆ͕ٛඞཁʹ…orz • ͜͜·Ͱ΍ΔΜͩͬͨΒ 
 build/deploy͸terraformͷํ͕ 
 Ή͠Ζָ͔΋͠Εͳ͍આ

Slide 12

Slide 12 text

·ͱΊ • DashΛ࢖͑͹΄΅Python͚ͩͰ 
 σʔλΛݟͤΔΞϓϦΛ࡞Ε·͢. • ίϯςφԽͯ͠Cloud RunͰ 
 ϗετ͢Δͷָ͕Ͱྑ͍Ͱ͠ΐ͏. 
 ʢଞͷΫϥ΢υͰ΋΋ͪΖΜOKʣ • ΦΦλχαϯ, ΩϡϯͰ͢ὑ

Slide 13

Slide 13 text

࣌ؒͷ౎߹্୺ંͬͨ࿩ • API GatewayͱόοΫΤϯυͷ࿩͸୺ંΓ·ͨ͠🙏 • ϦΫΤετ͋Ε͹࣭ٙԠ౴ɾϒϩάɾผ৔Ͱ࿩͢ͳͲ͠·͢ • ͜͏͍͏ઃܭʹԿނ͔ͨ͠ʁ΋ؚΊͯ·ͨ΍Γ·͢👍

Slide 14

Slide 14 text

PyLadies Tokyo 8प೥͓ΊͰͱ͏͍͟͝·͢🎉 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠