Slide 1

Slide 1 text

ίʔώʔ໿3.34ഋͷֹ݄ྉۚͰ σʔλج൫Λ࡞ͬͯ࢖͏࿩ Google Cloudͷ͋Ε͜ΕͱࣆJAPANͷͦͷޙ. @shinyorke 2023/06/17 Python mini Hack-a-thon Conference

Slide 2

Slide 2 text

Who am I?(ࣗݾ঺հ) • Shinichi Nakagawa@shinyorke • ๭େख֎ࢿITίϯαϧاۀϚωʔδϟʔʢݱ৬ʣ • #Pyhack ॳࢀՃ: 2013/02/16ʢ#28ʣ, ଟ෼ৗ࿈ʢͱ͍͏ೝࣝʣ • ໺ٿ͕Ұ൪ͷझຯͱݟ͔͚ͤͯͦ͏Ͱ΋ͳ͍ਓ. • ωλ࿮ͱͯ͠ͷʮ໺ٿͷਓʯ͸طʹଔۀ͍ͯ͠·͢. 
 ͨ·ͨ·ݸਓ։ൃωλ͕໺ٿʹدͬͯΔ͚ͩͰ͢.

Slide 3

Slide 3 text

ࠓ೔ͷ͓࿩ • #PyHack #148ʢ2023/02/04ʣͰൃද࿅शͨ͠σϒαϛ2023ొஃωλ 
 …ͷμΠδΣετ൛ʢ10෼Ver.ʣΛ͓൸࿐໨͠·͢. • ొஃͨ͠ͷ͕2݄Ͱࠓ͸4݄ͳͷͰΞοϓσʔτ΋গ͋͠Γ·͢. • σϒαϛຊฤͷಈըʢ໿40෼ʣ͸ެ։͞Ε͍ͯ·͢. 
 https://codezine.jp/devonline/archive/session/131 


Slide 4

Slide 4 text

σϒαϛͰ࿩ͨ͜͠ͱʢཁ໿ʣ • Ϋϥ΢υͱσʔλΤϯδχΞϦϯάͰ࣮ݱ͢ΔԶͷDX • αʔόϨεͳΞʔΩςΫνϟͰ࣮ݱ͢Δʮ͍͍ײ͡ͳσʔλج൫ʯ • ʮਪ͠ͷ໺ٿબखʯͷʮਪ࣌͠ʯ͸Ͳ͜ͳͷ͔ΛݟۃΊΔ⽁

Slide 5

Slide 5 text

͜͏͍͏ϞϊΛ࢖ͬͯ… ※σϒαϛࢿྉΑΓൈਮ

Slide 6

Slide 6 text

ϥʔζɾψʔτόʔ ʢࣆJAPANʣ • ࣆJAPANॳͷΞϝϦΧग़਎બख • ଧ཰͸௿͍΋ͷͷग़ྥ཰ͱ௕ଧ཰ 
 ͦͯ͠ଧٿ଎౓͕଎͘, 3ϙδγϣϯ 
 ͦͭͳ͘कΕΔ֎໺कඋ΋˕ • Ωϟϥཱ͍͍ͪͯͯ͠Ϡπͱ͍͏ᷚ, 
 ࣆδϟύϯͷηϯλʔͱͯ͠ظ଴ʂ ※σϒαϛࢿྉΑΓൈਮ

Slide 7

Slide 7 text

ϥʔζɾψʔτόʔ ʢࣆJAPANʣ • ࣆJAPANॳͷΞϝϦΧग़਎બख • ଧ཰͸௿͍΋ͷͷग़ྥ཰ͱ௕ଧ཰ 
 ͦͯ͠ଧٿ଎౓͕଎͘, 3ϙδγϣϯ 
 ͦͭͳ͘कΕΔ֎໺कඋ΋˕ • Ωϟϥཱ͍͍ͪͯͯ͠Ϡπͱ͍͏ᷚ, 
 ࣆδϟύϯͷηϯλʔͱͯ͠ظ଴ʂ 8#$͕։ນ͢Δલʢʣ ͜ͷ࣌఺Ͱψʔτόʔͷ׆༂Λ༧ݴ͢Δ͜ͱʹ੒ޭʂ ˞*5ۀքΤϯδχΞք۾࠷଎ͷൃදʢଟ෼ʣ Ұ൪όολʔͱͯ͠ͷ׆༂͸༧૝֎͕ͩͬͨͦΕ͸͓͖ͯ͞স

Slide 8

Slide 8 text

ࠓ೔ͷ10෼LTͰશ෦৮ΕΔͷ͸ແཧ. Google Cloudͱ໺ٿͷ࿩Λগʑ.

Slide 9

Slide 9 text

͓͠ͳ͕͖ • DashͱCloud RunͰσʔλɾμογϡϘʔυΛ࡞ͬͯಈ͔͢ • WBCઓ࢜ͨͪͷͦͷޙ⽁ • ͦͯ͠ؾʹͳΔ͓஋ஈ͸?

Slide 10

Slide 10 text

࡞ͬͨσʔλɾμογϡϘʔυʢͬ͘͟Γʣ •DashΛ࢖ͬͯʮPythonॻ͚͹μογϡϘʔυ࡞ΕΔʯΑ͏ʹ͠·ͨ͠. •σʔλຊମ͸BigQuery, σʔλ΁ͷΞΫηε͸RESTful APIʢGoʣܦ༝. •ೝূ໨తͰAPI Gateway, Cacheͱͯ͠StorageΛར༻ʢ͜Ε͸Ϛετ͡Όͳ͍ʣ.

Slide 11

Slide 11 text

Dash is Կऀ🤔 • PlotlyΛLow-codeπʔϧͱͯ͠ 
 ࢖͑ΔΑ͏ʹ͍͍ͨ͠ײ͡ͷౕ. • ϓϩτλΠϓͰ͸෼ੳɾՄࢹԽʹ 
 Jupyter LabͱPlotlyΛ࢖͓ͬͯΓ, 
 ͜ΕΛͦͷ··Ҡ২Ͱ͖ΔखஈͰ 
 ࣮૷͔ͨͬͨ͠. • https://dash.plotly.com/

Slide 12

Slide 12 text

ࠓճ࡞ͬͨίʔυ 
 ʢҰ෦ൈਮʣ • Python͚ͩͰॻ͚Δͷ͸ΊͬͪΌศརͩͬͨ. • HTMLʹ໛ͨ͠ίϯϙʔωϯτΛPythonͰ 
 ΰϦͬͱॻ͍ͯ࡞੒͢Δͱ͍͍ײ͡ʹಈ͘. • ΠϕϯτۦಈͰͷॻ͖׵͑͸Callbackͳ 
 σίϨʔλʔͰ࣮૷. • ReactͬΆ͋ͬͯ͞ݸਓతʹ͸େ޷͖͕ͩ, 
 ςετ͕௒ॻ͖ʹ͍͘ҹ৅… 
 ※গͳ͘ͱ΋UI ίϯϙʔωϯτʹؔͯ͠

Slide 13

Slide 13 text

Cloud RunΛબ୒ͨ͠ʢPythonicͳʣཧ༝ • μογϡϘʔυΞϓϦͷґଘϥΠϒϥϦతʹApp EngineͰಈ͔͘ո͔ͬͨͨ͠Ί • PandasʹDashʢPlotlyʣͱσʔλܥͷϥΠϒϥϦ͕੝Γͩ͘͞ΜͷWebΞϓϦ • ͜ͷ࣌఺ͰͪΌΜͱͨ͠ContainerܥͰಈ͔͞ͳ͍ͱବ໨ͩͳͬͯ൑அˠͦͷ௨Γͩͬͨ • બ୒͢Δ·Ͱͷࢥߟͱͯ͠͸… 1.ґଘϥΠϒϥϦͳͲͷ౎߹Ͱ΄΅PythonʢҰ෦GoʣͰͷ։ൃ -> Firebase͕ީิ͔Βফ͑Δ 2.Cloud FunctionsͰಈ͔͢ʹ͸ඍົͳ࢓༷ͱͳͬͨͨΊબ୒ࢶͱͯ͠ফڈ 3.App EngineʢStandardʣ͸Container͡Όͳ͍ -> Cloud Runʹܾఆ 
 ※ContainerͰಈ͔ͤΔApp EngineʢFlexibleʣΛ࢖Θͳ͔ͬͨཧ༝͸…ͦΜͳબ୒ࢶΛೖΕͨ͘ͳ͔͔ͬͨΒͰ͢ʢ௚ٿʣ

Slide 14

Slide 14 text

WBC2023ࣆδϟύϯઓ࢜ͷͦͷޙ • ೋ౛ྲྀͷ͋ͷํ • ϕετφΠϯʹબ͹ΕͨMLB৽ਓԦʢީิʣ

Slide 15

Slide 15 text

େ୩ᠳฏʢϩαϯθϧεɾΤϯδΣϧε, TWPʢTwo Way Playerʣʣ ϗʔϜϥϯྔ࢈ͷൿີ͕໌Β͔ʹ

Slide 16

Slide 16 text

େ୩ᠳฏʢϩαϯθϧεɾΤϯδΣϧε, TWPʣ ӈʹࠨʹଧͪ෼͚͍ͯΔͷ΋͍͍ײ͡

Slide 17

Slide 17 text

େ୩ᠳฏʢϩαϯθϧεɾΤϯδΣϧε, TWPʣ ౤खͱͯ͠͸͜Μͳײ͡

Slide 18

Slide 18 text

٢ాਖ਼ঘʢϘετϯɾϨουιοΫε, LFʣ ώοτྔ࢈ͷൿີ͕໌Β͔ʹ

Slide 19

Slide 19 text

ʁʁʁʮσʔλج൫ࣗ෼Ͱ࣋ͭͱ͓ߴ͍ͷͰ͸ʁʯ

Slide 20

Slide 20 text

ʲ౴ʳ࢖͏αʔϏεΛ޻෉ͯ͠ίετ཈੍ • ʮ࢖͏ͱ্ཱ͖͚͕ͩͪΕ͹͍͍ʯલఏͰશαʔϏεΛίʔϧυελϯόΠʹ. • ͢΂ͯͷΞϓϦɾػೳΛαʔόϨεͳΫϥ΢υʢCloud RunͳͲʣΛར༻. • ʮಈ͍͍ͯͳ͍࣌΋͓͕͔͔ۚΔʯͷ͸BigQueryͱετϨʔδͷΈʢ͘͝গ ֹʣ • σʔλอ؅͸࢖͍ํΛ޻෉͠ίετΛ཈͑Δ • ແྉ࿮ͷϧʔϧΛཧղ͠, ͦͷൣᙝͰۃྗ࢖͏ʢ㲈ඞཁͳ΋ͷʹ͸͓ۚΛ෷͏ʣ • BigQuery΋Cloud Storage΋ແྉ࿮ΛΊͬͪΌ׆༻

Slide 21

Slide 21 text

Ұϲ݄Ͱ$3ະຬ, ίʔώʔ3.34ഋ෼ఔ౓Ͱӡ༻͍ͯ͠·͢🐯 
 ※σʔλج൫ϓϩδΣΫτͷ࣮ίετΑΓࢉग़ʢίʔώʔ୅͸ίϯϏχίʔώʔج४ʣ, υϝΠϯऔಘྉ౳֎෦ίετΛআ͘

Slide 22

Slide 22 text

͓͠ͳ͕͖ • DashΛGoogle CloudͰಈ͔͢ͳΒCloud Run • ΦΦλχαϯ΋Ϛονϣ͞Μ΋৭ʑͱΤά͍ • ࣗ෼Ͱσʔλج൫Λ࣋ͬͯ΋ରͯۚ͠͸͔͔Βͳ͍ ※AWS౳, ଞͷΫϥ΢υαʔϏεͰ΋ಉ͜͡ͱ͕Ͱ͖·͢Αʂ 
 ʢGoogle Cloudʹ͍ͯ͠Δͷ͸ࢲͷ޷ΈͰ͢ʣ

Slide 23

Slide 23 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠⽁ @shinyorke