PyLadies Tokyo 8 周年記念パーティーLT
ΧϯϑΝϨϯεө͑͢ΔσϞΞϓϦΛ΄΅Python͚ͩͰ࡞ͬͨ with Cloud Run⚾ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟ ㅟPyConJP 2022 ͰΕͳ͔ͬͨΛ͜͜Ͱڙཆ͠·͢ͷרShinichi Nakagawa@shinyorke 2022/11/19 PyLadies Tokyo 8पه೦LT
View Slide
Who am ɹ?ʢ͓લ୭Α?ʣ• Shinichi Nakagawa@shinyorke• େख֎ࢿܥITίϯαϧاۀϚωʔδϟʔ• ຊͷPythonք۾Ͱʮ⽁ͷਓʯͱݺΕ͍ͯΔ• PyConJPొஃ8ճʢ2014-2018, 2020-2022ʣ ʢ2019ຐ͕ࠩͨ͠ҰൠࢀՃऀʣ• PyLadies Tokyo ̋पLTࢀՃ8ճ ʢॳճ͔Βϑϧग़ܧଓதʣ#Python #Serverless #GoogleCloud #Baseball #DataScience #SABRmetrics
ຊͷ͓• DashΛͬͯʮ΄΅Python͚ͩʯͰWebΞϓϦέʔγϣϯΛ࡞Δ• DashΞϓϦέʔγϣϯΛGoogle CloudͰ͍͍ײ͡ʹϗετ͢Δ
Ͳ͏͍͏Ϟϊ͔ͻͱ·͓ͣݟͤ͠·͢.
ΦΦλχαϯʂʂΩϡϯͰ͢ὑखͰೋܻউͪͳ͕Βଧͬͯ34ຊྥଧ…Τά͍.
σϞΞϓϦέʔγϣϯߏ• ΞϓϦຊମDashͰ࣮ͨ͠ϑϩϯτΤϯυ, Cloud RunͰϗετ• API GatewayΛ௨ͯ͠όοΫΤϯυʹΞΫηε• όοΫΤϯυCloud Functionsʹ͋Δʢ͜ΕPythonʣ, DatabaseͷதΛJSONͰฦ͢RESTful API
Dash• άϥϑඳըɾՄࢹԽϥΠϒϥϦʮPlotlyʯΛ ͍͍ײ͡ͳWebΞϓϦͱͯ͠࡞ΔͨΊͷFW• αʔόʔαΠυΞϓϦͷϕʔεFlask, ϑϩϯτReactͱ͍͏ ʢྲྀߦΓͬΆͯ͘ʣ͍͍ײ͡ͳߏ• ૉͷJavaScriptɾHTMLΛॻ͔ͳͯ͘, Python͚ͩͰΠέΔॴ͕ ؾʹೖΓ, σϞΞϓϦͷϕʔεͱͯ͠࠾༻
ίʔυʢงғؾʣ• ࠷ॳظͷίʔυͷεΫγϣͰ͢• HTMLʹͨ͠ίϯϙʔωϯτΛ ΰϦͬͱॻ͘• ΠϕϯτۦಈͰͷॻ͖͑ CallbackͳσίϨʔλʔͰ࣮• ͳΜͱͳ͘Ͱ͕͢ReactͬΆ͍ งғؾʹʢͳ͓callbackࠈʣ
Cloud RunͷϗεςΟϯά• GitHub Repositoryʹpushͨ͠ΒGitHub Actions͕ൃՐ, ςετ -> Docker Build -> Cloud RunσϓϩΠ• ςετpytest, flake8, mypyΛGitHub Actions্Ͱ࣮ࢪʢunit, integration·Ͱ୲อ͢ΔΠϝʔδʣ• Docker buildCloud Runͷඪ४తͳΓํʹै͏.• Cloud Build্ͰϏϧυ• Artifact Registryʹpush• Cloud RunͷσϓϩΠGithub ActionsͷެࣜΛ࣮ͬͯࢪ.• ͪͳΈʹଞͷΫϥυαʔϏεͰ༨༟ͰΕΔͱࢥ͍·͢ʢAWS, Azure, etc…ʣ
Github Actionsͷఆٛtest->build->deploy• ݱࡏӡ༻͍ͯ͠ΔΞϓϦͷ GitHub Actionsఆٛ• ࣮ݱ͢Δͷʹ100ߦ͍ۙ yamlఆ͕ٛඞཁʹ…orz• ͜͜·ͰΔΜͩͬͨΒ build/deployterraformͷํ͕ Ή͠Ζָ͔͠Εͳ͍આ
·ͱΊ• DashΛ͑΄΅Python͚ͩͰ σʔλΛݟͤΔΞϓϦΛ࡞Ε·͢.• ίϯςφԽͯ͠Cloud RunͰ ϗετ͢Δͷָ͕Ͱྑ͍Ͱ͠ΐ͏. ʢଞͷΫϥυͰͪΖΜOKʣ• ΦΦλχαϯ, ΩϡϯͰ͢ὑ
࣌ؒͷ߹্ંͬͨ• API GatewayͱόοΫΤϯυͷંΓ·ͨ͠🙏• ϦΫΤετ͋Ε࣭ٙԠɾϒϩάɾผͰ͢ͳͲ͠·͢• ͜͏͍͏ઃܭʹԿނ͔ͨ͠ʁؚΊͯ·ͨΓ·͢👍
PyLadies Tokyo 8प͓ΊͰͱ͏͍͟͝·͢🎉͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠