
- TOP
- ã¿ã°äžèЧ
- ããã°ã©ãã³ã°
ããã°ã©ãã³ã°
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ãå人åããGoogleïŒGeminiïŒ
ããã«ã¡ã¯ããã¡ã€ã³ãã£ã®éïŒ @hiracky16 ïŒãšäœè€ïŒ @heizari ïŒã§ãã 2026幎8æ20æ¥ãã22æ¥ã«ãããŠåºå³¶åœéäŒè°å Žã§éå¬ããã PyCon JP 2026 ã«åå ããŸãããPyCon JPã¯æ¥æ¬æå€§çŽã®Pythonã³ãã¥ããã£ã®ç¥å
žã§ãPythonã䜿ã人ãããããåŠã³ãã人ãã³ãã¥ããã£ã«é¢ãããã¹ãŠã®äººãéãŸãã«ã³ãã¡ã¬ã³ã¹ã§ãã ãã¡ã€ã³ãã£ã¯ä»å¹Žãã¹ãã³ãµãŒãšããŠããŒã¹ãåºå±ãããŠããããŸããããšã³ãžãã¢ã2åã§åå ããŠãããåå è
ã®çæ§ãšäžç·ã«ã»ãã·ã§ã³ãèããããããŒã¹ã§ã³ãã¥ãã±ãŒã·ã§ã³ãåã£ããããŠããŸããã®ã§ããã®æ§åãã¬ããŒãããŸãã PyCon JP 2026ãšã¯ Findy Drinkup at PyCon JP 2026 å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã®å
容 é: Pythonãã¥ãŒããªã¢ã«ãvenvãäœã£ãŠpip installãš2026幎ãæãç¶ããŸããïŒ äœè€: Retry Is Not a Strategy: Classifying and Recovering from AI Agent Failures in Python ã«ã³ãã¡ã¬ã³ã¹ã®æ§å ãã¡ã€ã³ãã£ããŒã¹ ãªãã£ã·ã£ã«ããŒãã£ãŒ Open Spaceã§ã®ããªãŒããŒã¯ ã奜ã¿ããŒã¯ ãŸãšã PyCon JP 2026ãšã¯ é嬿¥: 2026幎8æ21æ¥ã22æ¥ïŒåæ¥ã®8æ20æ¥ã«Day0ã€ãã³ãããïŒ äŒå Ž: åºå³¶åœéäŒè°å Ž å
¬åŒãµã€ã: https://2026.pycon.jp/ja ä»åã¯åºå³¶ã§ã®éå¬ãšããããšããããå°å
ã®åŠçãäŒæ¥ã®æ¹ã
ãšã®äº€æµãå€ãã«ã³ãã¡ã¬ã³ã¹ã«ãªããŸããã Findy Drinkup at PyCon JP 2026 Findy Drinkup at PyCon JP 2026 ãéå¬ããåŠçãã瀟äŒäººãŸã§ããŸããŸãªåå è
ãšäº€æµããŸããã æå€ã ã£ãã®ã¯ã瀟äŒäººã ãã§ãªãåŠçã®åå ãå€ãã£ãããšã§ããããã°ã©ãã³ã°ãµãŒã¯ã«ã®ã¡ã³ããŒãé£ãç«ã£ãŠåå ããŠãããç ç©¶ã§Pythonã䜿ã£ãŠãããšãã話ãããµãŒã¯ã«æŽ»åã®äžç°ã§æ¥é ããã³ãŒããæžããŠãããšãã話ãèãããšãã§ããŸãããåŠçãšç€ŸäŒäººãåãå Žã§Pythonã«ã€ããŠèªãåãã空éã«ãªã£ãŠããã®ãå°è±¡çã§ããã äŒè©±ã®äžå¿ã«ãªã£ãã®ã¯ããã¯ãPyCon JPãã®ãã®ã®è©±é¡ã§ããæ¬¡ã®æ¥ã«ã©ã®ã»ãã·ã§ã³ãèŽãã«è¡ãããæ°ã«ãªã£ãŠããããŒã¯ã¯äœããšãã£ã話ã§å€§ãã«çãäžãããŸãããã«ã³ãã¡ã¬ã³ã¹åå ããã£ããã«å察é¢å士ã§ãå
±éã®è©±é¡ãã§ããã®ã¯ãDrinkupãªãã§ã¯ã®è¯ãã ãšæããŸããã ãŸããPyCon JPéå¶ã®æ¹ã«ãè¶³ãéãã§ããã ããçŽæ¥ã話ãããæ©äŒãããã ããŸããã Drinkupã«ãåå ããã ãããããšãããããŸããïŒã¿ãªãããšãã£ããã話ãã§ããŠè¯ãã£ãã§ãâºïžðð ææ¥ããPyCon楜ãã¿ãŸããããð #pycon2026_findy pic.twitter.com/yAPIuDzoz1 — ãããã@Findy DevRel (@iwasakitchen) 2026幎8æ20æ¥ å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã®å
容 é: Pythonãã¥ãŒããªã¢ã«ãvenvãäœã£ãŠpip installãš2026幎ãæãç¶ããŸããïŒ 2026.pycon.jp 以åãç»å£è
ã®nikkieããã«ãæè¿ããªãã¿ããªuvã䜿ã£ãŠãããã§ããïŒ Pythonããã±ãŒãžç®¡çã®å€é·ãšçŸåšå°ããšããFindy Mediaã®èšäºãžå¯çš¿ããã ããããšããããå®ã¯ä»åã®ã»ãã·ã§ã³ã®äžã§ããã®èšäºãåŒçšããŠãã ãã£ãŠããŸããããã®å ŽãåããŠã瀌ããäŒãããŸãã findy-code.io Findy Mediaã®èšäºãéããŠãPythonã®ããã±ãŒãžç®¡çãvenvã»pip installãããpoetryãryeããããŠuvãžãšç§»ãå€ãã£ãŠããæŽå²çãªèæ¯ãç¥ãããšãã§ããŸãããæ®æ®µPythonã䜿ã£ãŠéçºããŠããŠãããã®è£ã«ããææ³ã®éšåãŸã§æèããããšã¯ããŸããªãã£ãã®ã§ãèŠæ¹ãå€ãããã£ããã«ãªã£ãèšäºã§ãããããªèæ¯ããããnikkieããã®çºè¡šã楜ãã¿ã«ããŠããŸããã ã»ãã·ã§ã³ã§ã¯ãvenvãpoetryãryeãuvãšãã£ãåããŒã«ãããããã©ã®ãããªèª²é¡ã解決ããããã«å¿
èŠã«ãªã£ãã®ãããã®èæ¯ãäžå¯§ã«èª¬æãããŠããŸãããããŒã«ãé²åããã«ã€ããŠã§ããããšãåºãã£ãŠããæ§åãäŒãã£ãŠããå
容ã§ããããã®ããã§ãã¿ã€ãã«ã®åãã«å¯Ÿããçãã¯æå¿«ã§ããããã¥ãŒããªã¢ã«ã§venvãäœã£ãŠpip installãšæããã®ã¯ãããuvãå§ãããšããçµè«ã§ãã äžã§ãå°è±¡ã«æ®ã£ãã®ãã inline script metadata ã®è©±ã§ããã¹ã¯ãªããã«åæãšãªãããã±ãŒãžãçŽæ¥èšè¿°ããŠä»®æ³ç°å¢ãäœããä»çµã¿ã§ã uv run script.py äžçºã§å®è¡ã§ããæè»œãã¯ãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããšã®çžæ§ãè¯ããã¡ãã£ãšããå®éšã«ã¯ãŽã£ããã ãšæããŸããã uvã®è¯ããšããŠã次ã®ãããªç¹ã玹ä»ãããŠããŸããã ç°¡åã§ãåäœãã¯ãã uvã䜿ã£ãŠããã ãã§ãã§ããããšãã©ãã©ãåºãããã FastAPIãã¯ãããæåãªããã±ãŒãžã§ãuvã®æ¡çšãé²ãã§ãã ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããæ®åããããšã§ãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããã¯ããã ãã§ãªããã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã䜿ãããŒã«èªäœãã¯ããå¿
èŠãããããšããææãå°è±¡çã§ãããuvãé«éãªçç±ã®äžã€ã¯ãã£ãã·ã¥ã掻çšããŠããç¹ã§ã uv cache dir ã³ãã³ãã§å®éã®ãã£ãã·ã¥ãã£ã¬ã¯ããªã確èªã§ããŸããã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãããã®ãã£ãã·ã¥ãã£ã¬ã¯ããªã«ã¢ã¯ã»ã¹ã§ããç°å¢ã§ããããšããéçºäœéšã®é床ãä¿ã€äžã§éèŠã«ãªããšãã話ã§ããã ãŸãããµãã©ã€ãã§ãŒã³æ»æãèžãŸãããšäŸ¿å©ã ãšæããã®ããuvã«cooldownïŒææ°çãäžå®æéçµã£ãŠããååŸããä»çµã¿ïŒãèšå®ã§ããç¹ã§ããæè¿ã§ã¯ãFlatt Security瀟ãæäŸããTakumi Guardã§ããèšå®ãäžã€å ããã ãã§ãããžã§ã¯ããåç
§ããã¬ãžã¹ããªãåãæ¿ããããããã«ãªã£ãŠãããæè»œã«ãµãã©ã€ãã§ãŒã³å¯Ÿçãå°å
¥ã§ããŸããTakumi Guardã®å¯Ÿå¿ããã±ãŒãžãããŒãžã£ãŒãšããŠuvããã£ããæ¡çšãããŠãããããã«ããuvããšã³ã·ã¹ãã ã®äžã§æšæºçãªäœçœ®ãå ãã€ã€ããããšã衚ããŠãããšæããŸããã shisho.dev uvèªäœã«ããæ¢ç¥ã®è匱æ§ããã«ãŠã§ã¢ãæ€åºããuv auditæ©èœããã¬ãã¥ãŒãšããŠè¿œå ãããŠãããäŸåé¢ä¿ã®ã»ãã¥ãªãã£ãã§ãã¯ãuvã®ã¯ãŒã¯ãããŒã«çµ±åã§ããç¹ã䟿å©ã ãšæããŸããã astral.sh ã»ãã·ã§ã³ã®ã¹ã©ã€ããšè©³ãã解説ã¯ãnikkieãããæ¬äººã® ããã°èšäº ã§ãå
¬éãããŠããŸãã äœè€: Retry Is Not a Strategy: Classifying and Recovering from AI Agent Failures in Python 2026.pycon.jp Cambridge University Press & Assessmentã®AI Centre of Excellenceã§AIãœãããŠã§ã¢éçºããããŠããCyrus Manteããã®çºè¡šã§ããã¯ã©ã€ã¢ã³ãåãã«ãšãŒãžã§ã³ãã®ãã€ãã©ã€ã³ãæ§ç¯ããäžã§ãçç±ã説æã§ããªãå£ãæ¹ã«äœåºŠãééãããã®ã®ã詊ãããã¬ãŒã ã¯ãŒã¯ã¯ã©ããæåããããçŽãã諊ãããããè¿ããŠãããŸããã§ããããã®èª²é¡ãè§£æ¶ããããã«äœã£ãã®ããä»å玹ä»ãããtriage-agentã§ãã ã¿ã€ãã«ã®ãšãããåé¡æèµ·ã¯æå¿«ã§ãããæ®éã®Pythonã®äŸå€åŠçãšéãããšãŒãžã§ã³ãã®å€±æã«ã¯ååããããŸãããäŸå€èªäœã¯é£ãã§ãããã®ã®ãããã¯SDKãããŒã«ã®éœåã§ã€ããååã§ããšãŒãžã§ã³ããäœãééããã®ããŸã§ã¯èªã¿åããŸããã triage-agentã¯ãééã£ãããŒã«ãåŒã¶ãã¹ããŒããåããªããå€éšãµãŒãã¹ãèœã¡ããé»ã£ãŠåããšãããåãç¶ãããšãã£ã倱æã9çš®é¡ã®åãšããŠå®çŸ©ãããšãŒãžã§ã³ããããªã·ãŒã§ã©ããããŠéçšãããã¬ãŒã ã¯ãŒã¯éäŸåã®Pythonã©ã€ãã©ãªã§ããèšé²ãããè»è·¡ããåå ãåé¡ãããã®ãŸãŸå詊è¡ããããã©ã³ãç«ãŠçŽãããã§ãã¯ãã€ã³ããŸã§å·»ãæ»ããããã§ãé§ç®ãªã人éã«ãšã¹ã«ã¬ãŒã·ã§ã³ããããšãã£ãååŸ©ææ®µãžæ¯ãåããŸãã å°å
¥ããæ¢åã®ãšãŒãžã§ã³ããå
ãã ãã§æžã¿ãŸããå®è£
ã¯å
¬éãããŠããŠã pip install triage-agent ã§è©ŠããŸãã github.com ç¹ã«åèã«ãªã£ãã®ã¯ã倱æã«åãäžããããšã§ãæ¬¡ã®æåã现ããéžã¹ãããã«ãªãããšããç¹ã§ãããã²ãšãã¡ã«ãªãã©ã€ãšèšã£ãŠãããã®ãŸãŸããçŽãã°ããã®ããããŒã«ã®èŠçŽããä¿ãã¹ããªã®ãããã§ãã¯ãã€ã³ããŸã§å·»ãæ»ãã¹ããªã®ãã¯ã倱æã®å
容ã«ãã£ãŠå€ãããŸããååããªããã¡ã¯ããããå
šéšã倱æããã®ã§ããäžåºŠãã«æœ°ããŠããŸããäœåºŠããçŽããŠãåããšããã§èœã¡ã倱æãæ®ããŸãã ãã®ååã®ã€ãæ¹ããæ®æ®µæžããŠããäŸå€åŠçã®èãæ¹ããã®ãŸãŸãšãŒãžã§ã³ãã®äžæ®µäžãžæã¡äžãããã®ã«ãªã£ãŠããã®ãäžæããšæããŸãããæ°ããäœæ³ãèŠãçŽãå¿
èŠããããŸããã é¢çœãã®ã¯ããã®åé¡èªäœãã©ãè§£ããã«ãéžæè¢ãçšæãããŠããããšã§ããã«ãŒã«ããŒã¹ã®åé¡åšãšãLLMã䜿ãåé¡åšããã®çµã¿åãããçšæãããŠããŠãçºè¡šã§ã¯LLMã«å€æããã話ãäžå¿ã§ãããåé¡ã¯åçŽãªã¿ã¹ã¯ã«éããŠããã¶ã倱æãã«ããããã¹ãã±ãŒã¹ãèªåã§çšæã§ããŸããQ&Aã§ããCyrusããã¯ãã®çšåºŠã®åé¡ãªã軜éãªã¢ãã«ã§å¯Ÿå¿ã§ããã ãããšçããŠããŸããã ãŠãŒã¶ãŒã®ä»å
¥ãæžãããŠèªåŸçã«ã¿ã¹ã¯ãé²ãããšãŒãžã§ã³ããäœãããšãããšãäºæãã¬åäœã倱æãã©ãæ±ããã¯é¿ããŠéããŸããã triage-agentã§ã¯ãã©ã®å€±æã«ã©ã®ååŸ©ææ®µãåœãŠãããäœåã§äººéã«äžããããããªã·ãŒãšããŠã³ãŒãäžã«å®£èšã§ããŸãã倱æããšã®å¯ŸåŠãããã³ããã«æžã蟌ãã§LLMã®å€æã«å§ããã®ã§ã¯ãªãã倿ã¯Pythonã®åŽã«çœ®ããŠãå詊è¡ã®ãšãã«å¿
èŠãªãã³ããç¶æ
ã ããåã®ã€ããåœ¢ã§æž¡ãããããä»åŸã®ãšãŒãžã§ã³ãéçºã«æŽ»ããããã ãšæããŠããŸãã ã«ã³ãã¡ã¬ã³ã¹ã®æ§å ãã¡ã€ã³ãã£ããŒã¹ ãã¡ã€ã³ãã£ããŒã¹ã§ã¯ãäŸå¹ŽéãPythonã¯ã€ãºã宿œããŸãããDay1ã»Day2ããããã§å¥ã®åé¡ã»ãããçšæããæ¥å Žè
ã®æ¹ã«ææŠããŠããã ããŸããã Day1å§ãŸããŸãããïŒä»å¹Žãã¯ã€ãºãæºåããŠãŸãããã²ããŒã¹ã«ãç«ã¡å¯ããã ããð«¶ #PyConJP2026 pic.twitter.com/aHg3oZiJ6J — ãããã@Findy DevRel (@iwasakitchen) 2026幎8æ21æ¥ äŸãã°ã次ã®ãããªåºé¡æãçšæããŸããã t = ([ 1 , 2 ], [ 3 ]) t[ 0 ] += [ 99 ] print (t) ãã®ã³ãŒããå®è¡ãããšäœãèµ·ããã§ããããïŒ A: TypeError ãçºçãã t 㯠([1, 2], [3]) ã®ãŸãŸå€åããªã B: TypeError ãçºçãããã t 㯠([1, 2, 99], [3]) ã«å€åããŠãã C: äŸå€ã¯çºçããã ([1, 2, 99], [3]) ãšåºåããã D: AttributeError ãçºçãã æ£è§£ã¯Bã§ããã¿ãã«ã®èŠçŽ ã§ãããªã¹ãã«å¯ŸããŠè€å代å
¥ += ãè¡ããšã©ããªãããåãåé¡ã§ã次ã®2段éã®åŠçã«æ°ã¥ãããããã€ã³ãã«ãªã£ãŠããŸãã t[0] += [99] ã¯ãŸããªã¹ãã® __iadd__ ãåŒã³åºãããªã¹ãèªäœããã®å Žã§ [1, 2, 99] ã«æžãæãã ç¶ããŠã¿ãã«ã®èŠçŽ ãžä»£å
¥ãçŽãããšããããã¿ãã«ã¯ã€ãã¥ãŒã¿ãã«ãªã®ã§ TypeError ãçºçãã ã€ãŸããäŸå€ãçºçããæç¹ã§ãã§ã«ãªã¹ãã®äžèº«ã¯æžãæãã£ãŠããããã t 㯠([1, 2, 99], [3]) ã®ãŸãŸæ®ããŸãã ãé£ããããšãã声ãå€ãããã ãããã¡ã€ã³ãã£ã®DevRelã¡ã³ããŒãå®éã«ææŠããææ³ãXã«æçš¿ããŠãããŸããã å»å¹Žã«åŒãç¶ãããã PyCon JP 2026ãPythonã®é人ãç®æããïŒãDAY1ã§ 1/3åæ£è§£ïŒ ç§°å·ã¯ãPythonèŠç¿ãïŒPython ApprenticeïŒãã§ããð #PyConJP2026 #PyConQuiz #pycon_findy https://t.co/41AVR7eIAD — åå·é
士@DevRel (@OnigiriMa_shi) 2026幎8æ21æ¥ ããŒã¹ã«æ¥ãŠããã ããæ¹ã
ããããšãããããŸããïŒ ãªãã£ã·ã£ã«ããŒãã£ãŒ Day1ã®å€ã«ã¯ãªãã£ã·ã£ã«ããŒãã£ãŒãéå¬ãããPyCon JPéå¶ããããŒã«ããã¬ãŒã³ãããã ããŸãããã«ã³ãã¡ã¬ã³ã¹åæ¥ã§ç²ããäœã«æã¿æž¡ãçŸå³ããã§ããïŒ ãªãã£ã·ã£ã«ããŒãã£ãŒã§ã¯ãPyCon JP 2026ãªãªãžãã«ããŒã«ããçšæããŠããŸãðº ãœããããªã³ã¯ãåãæããŠããŸãã𥀠#pyconjp2026 pic.twitter.com/w49Lz4W5WS — PyCon JP (@pyconjapan) 2026幎8æ21æ¥ ç«é£åœ¢åŒã ã£ãããšãããã忥ã«LTããããæ¹ãä»ã®åå è
ã®æ¹ã
ãšããããã話ãããããšãã§ããŸãããäžã«ã¯ããã¡ã€ã³ãã£ã®ã€ãã³ãèŠãŠããŸãïŒããšå£°ããããŠãã ããæ¹ãããŠããšãŠããããããæããŸããã Open Spaceã§ã®ããªãŒããŒã¯ Open Spaceã¯ãåå è
ãèªç±ã«ããŒããç«ãŠãŠéãŸãè°è«ã§ããæéã§ããDay1ã«ãPythonã䜿ã£ãã¡ãã£ãšããæ¹åã®ã¢ã€ãã¢ããã¿ã«ã€ããŠè©±ãããããšããããŒããæçš¿ããè©±ãæ©äŒãããã ããŸããã éãŸã£ãã®ã¯å°äººæ°ã§ãããããã®åãäºãã®åæãããåãããªããæ·±ãè°è«ãã§ããŸããã話é¡ã¯æšä»ã®AI掻çšãããæ¥ã
ã®åãæ¹ã®è©±ãŸã§å€å²ã«ããããPythonã䜿ã£ãæ¥åæ¹åãšããããŒããèµ·ç¹ã«å¹
åºãèŠç¹ã§æèŠäº€æãã§ããã®ãå°è±¡çã§ããã ããŒã¹ãã»ãã·ã§ã³åŸãªã©ã¯ã©ãããŠãé¢é£ãã話é¡ã®äŒè©±ãäžå¿ã«ãªããŸãããããããããªãŒããŒãã§åå è
å士ã亀æµã§ããå ŽãèšèšãããŠããã®ã¯ãšãŠãè¯ããšæããŸããã ã奜ã¿ããŒã¯ ã奜ã¿ããŒã¯ ã¯ãåºå³¶ã®ã奜ã¿çŒãæåã«ã¡ãªãã§åä»ããããã©ã€ããã³ã°ããŒã¯äŒç»ã§ããäºå審æ»ã¯ãªããçŸå°åå è
ã§ããã°èª°ã§ãåœæ¥ã«çºè¡šãå¿åã§ããå®éã«ç»å£ãããã¯çŸå°åå è
ã®æç¥šã§æ±ºãŸããŸãã忥3ã5æ¬ã1æ¬ããã5åéãšããæ ã®äžã§çºè¡šããŸãã ä»åããã®ã奜ã¿ããŒã¯ã®æ ã§ã500ååŒ±èŠæš¡ã®çµç¹ã®Pythonãããžã§ã¯ã(dbt)ãã©ã管çãããïŒããšããããŒãã§çºè¡šããæ©äŒãããã ããŸããã çµç¹ãäºæ¥ãæé·ããäžãåããŒã ãç¬ç«ããŠdbtãªããžããªãæ§ç¯ããçµæããªããžããªããšã«Pythonã®ããŒãžã§ã³ãã«ãŒã«ããã©ãã©ã«ãªããããŒãžã§ã³ã¢ãããã»ãã¥ãªãã£å¯Ÿå¿ã®ã³ã¹ããç·åœ¢ã«å¢ããŠãããšãã課é¡ã玹ä»ããŸããã ãã®è§£æ±ºçãšããŠãå
±éèšå®ãªããžããªãèšèšãããã¿ãŒã³ãææ¡ããŸããã pyproject.toml ã uv.lock ããµãã¢ãžã¥ãŒã«åããŠéçŽããSQLã®lintã«ãŒã«ïŒ .sqlfluff ïŒãäžå
管çããäžã§ãTaskfileã§æäœã€ã³ã¿ãŒãã§ãŒã¹ãæœè±¡åããæ§æã§ãã å€ãããªãèŠçŽ ã§ããç°å¢ãèŠçŽãéšååããããšã§ãåããŒã ãå€ããèŠçŽ ã§ããããžãã¹ããžãã¯ã«éäžã§ããäœå¶ãäœãããšã®éèŠæ§ãäŒããŸããã ãŸãšã PyCon JP 2026ã§ã¯ãã»ãã·ã§ã³ãéããŠPythonã®ãšã³ã·ã¹ãã ãAIãšãŒãžã§ã³ãéçºã®ææ°ååãåŠã¹ãã ãã§ãªããDrinkupããªãã£ã·ã£ã«ããŒãã£ãŒãOpen Spaceãã奜ã¿ããŒã¯ãšãã£ã亀æµã®å ŽãéããŠãåŠçãã瀟äŒäººãŸã§å¹
åºãåå è
ã®æ¹ã
ãšçŽæ¥ã話ãããæ©äŒã«ãæµãŸããŸããã ããŒã¹ã§ã®Pythonã¯ã€ãºã§ã¯ãé£ããããšãã声ãå€ãããã ããŸãããããã®åPythonã®ä»æ§ãæ¹ããŠèŠã€ãçŽããã£ããã«ãªã£ãã®ã§ã¯ãªãããšæããŸããåºå³¶ã§ã®éå¬ãšããããšãããããã¡ã€ã³ãã£ã®èªç¥åºŠã«ã¯ãŸã 䌞ã³ããããããšæããäžæ¹ããã€ãã³ããã€ãèŠãŠããŸãããšå£°ããããŠãã ããæ¹ãããŠããããŸã§ã®çºä¿¡æŽ»åãçå®ã«å±ããŠããããšã宿ã§ããŸããããã¡ã€ã³ãã£äž»å¬ã®DrinkupãããŒã¹ãžéã³ã«æ¥ãŠããã ããæ¹ã
ãæ¬åœã«ããããšãããããŸããã ä»å玹ä»ãã以å€ã®ã»ãã·ã§ã³ã§ããAIãšãã£ããã«ã©ãéçºããããAIãæ©èœã«ã©ãçµã¿èŸŒããã«ã€ããŠãç»å£è
ããããã®å·¥å€«ãç¥ãããšãã§ããŸãããèªåãã¡ã®èå³ã®ç¯å²ã«åèŽããŠããé¢ããããŸãããLLMã䜿ã£ãŠäœãããããããããããããããã¯ããçµç¹ãšããŠã©ãè©äŸ¡ããã©ãå¶åŸ¡ããããšãã話ãå€ãå°è±¡ã«æ®ããåŠã³ã®å€ã2æ¥éã«ãªããŸãããããã±ãŒãžç®¡çã®ç§»è¡ãAIãšãŒãžã§ã³ãã®å€±æãžã®åãåãæ¹ã¯ããã¡ã€ã³ãã£ãè€æ°ã®Pythonãããžã§ã¯ããéçšããAIãšãŒãžã§ã³ããæŽ»çšãããããã¯ãéçºãé²ããäžã§ãããã®ãŸãŸè°è«ã®ææã«ã§ããå
容ã ãšæããŠããŸãã ãã¡ã€ã³ãã£ã§ã¯äžç·ã«äŒç€ŸãçãäžããŠãããã¡ã³ããŒãåéäžã§ããèå³ãæã£ãŠããã ããæ¹ã¯ãã¡ãã®ããŒãžãããå¿åãé¡ãããŸãã herp.careers
ã¯ããã« ããã«ã¡ã¯ãæ®æ®µã¯@niftyãããããŒãžã®éçºéçšãããŠããå®®æ¬ã§ãã æè¿ git worktree ã§äžŠè¡ããŠéçºããŠãããšããã .terraform ã node_modules ãã©ã«ãã倧éã«äœæãããæ°ã¥ãããPCã®ã¹ãã¬ãŒãžãéçã«è¿ã¥ããŠããŸããã䟿å©ã§å€çšããŠããã®ã§ãããæé€ãããªããšæãã¬èœãšã穎ããããŸããã ããŠãä»åã®èšäºã§ã¯èªåãéçºéçšæ
åœããŠããäžéšã®ãµã€ãã§å©çšããŠããAmplifyã«ã€ããŠã1幎以äžéçšããŠã¿ãææ³ã«ã€ããŠç޹ä»ãããŠããã ããŸãã AWS Amplify AWS Amplify ïŒä»¥äžAmplifyïŒã¯ããã³ãããããã¯ãšã³ããŸã§ãäžæ¬ã§ç®¡çã§ãããããŒãžããµãŒãã¹ã§ãã ãµã€ãéçšã«å¿
èŠãªAWSãªãœãŒã¹ãè£åŽã§æºåããŠãããã ãã§ãªããGitãªããžããªãšé£æºããããšã§ãã©ã³ãããšã®ãµã€ãã®ç¶æ
ã確èªã§ãããããããšã倧ããªç¹åŸŽã§ãã åæ ãã®èšäºã§ã¯Amplifyãå©çšããŠãµã€ãã1幎以äžéçšããŠããçµéšãå
ã«èšè¿°ããŠããŸããã以äžã®ãããªãµã€ããéçšããŠããŸãã Astro補SSGã®Webãµã€ãã®éçšãã¡ã€ã³ Next.jsãçšããSSRã¯äžéšãµã€ãã®ã¿å©çš CognitoãDynamoDBãªã©ã®åçš®AWSãªãœãŒã¹ã®å©çšã¯ç¡ã GitHub飿ºãå©çš AWS Amplify CLIã¯æªå©çš ç¹ã«Amplifyãå©çšããéã«å€§ããªå©ç¹ãšãªããããªä»ã®AWSãªãœãŒã¹ãšã®çµã¿åããã¯è©Šããããšããªããããããã«ã€ããŠã¯è§ŠããŸããã 䟿å©ã ã£ãç¹ æè»œã«ãµã€ããç«ãŠãããšãã§ãã PRããšã«èªåã§ãµã€ããäœãããšãã§ãã ãã©ã³ãããšã«ç°å¢å€æ°ãèšå®ããããšãã§ãã BasicèªèšŒãæ©èœãšããŠçšæãããŠãã æè»œã«ãµã€ããç«ãŠãããšãã§ãã AmplifyãäœæããŠãã«ãèšå®ã®ãã¡ã€ã«ãçšæããŠãªããžããªãšæ¥ç¶ããã ãã§ãµã€ããäœãããããç¹ã«SSRãçšãããµã€ãã ãšã³ã³ããåšãã®ç
©éãªæºåãããã«æžãã®ã楜ã§ããã äžæ¹ã§ã以äžã®ãããªæ¡ä»¶ãéãªã£ãå Žåã¯å¿
ãããæãæè»œãšã¯èšãåããªãããã«ãæããŸããã åçŽãªs3+CloudFrontã®ã¿ã§äºè¶³ãããããªSSGãµã€ã AWS CDKãªã©ã®IaCããŒã«ãå©çšããŠéçšããããšãåæã«ããŠãã ç¹ã«åçŽãªéçãµã€ãçšã®IaCã³ãŒãã¯ç°¡åã«AIçæã§ããããããªãœãŒã¹ã®æºåã¯æ¯èŒç容æã§ãããªãœãŒã¹ã«å ããŠãµã€ãã®ãã«ã+ã¢ããããŒãã®æ§ç¯ããããŸããããããGitHub Actionsãçšããããšã§æ¯èŒçç°¡åã«æºåã§ãããšæããŸããã PRããšã«èªåã§ãµã€ããäœãããšãã§ãã Amplifyã䜿ã£ãŠããŠç¹ã«äŸ¿å©ã ã£ãæ©èœã§ãã ã³ãŒã倿ŽãããŠPRãæåºããéãPRããšã«å°çšã«æ°ããå²ãæ¯ããããã¡ã€ã³ã§ãµã€ãã®ç¢ºèªãå¯èœã«ãªããŸãã ããŒãžåã«å€æŽå
容ã確èªããããã«ãããŒã«ã«ã§ãã©ã³ããåãæ¿ãããšã確èªã§ãããµã€ããèªåã§ãããã€ãããã®ã¯ãšãŠããããããã£ãã§ãã ãã®èŸºããèªåã§äœãããšããã®ã¯ããªã倧å€ãªã®ã§ãæç¢ºã«Amplifyã®å©ç¹ã ãšæããŸããã ãã©ã³ãããšã«ç°å¢å€æ°ãèšå®ããããšãã§ãã æ¬çªã»ã¹ããŒãžã³ã°ã»éçºç°å¢ãšè€æ°ã®ç°å¢ãåžžã«çšæããŠãããšãç°å¢ã«ãã£ãŠãµã€ãèªäœã®åäœã倿Žãããã±ãŒã¹ããããŸãã æ
åœããŠãããµã€ãã§ã¯CMSãçšããŠéçšããŠãããããäžéšã®ç°å¢ã§ã¯æ¬çªå
¬éåã®ããŒã¿ãååŸãããŸãéçºç°å¢ã§ã¯éçºç°å¢ã®CMSããããŒã¿ãååŸããããšããããšããããŸããã ãã®ãšãAmplifyã¢ããªãã®ãã®ãåãããšããã©ã³ãããšã®èšå®ã§åããããã®ã¯äŸ¿å©ã§ããã BasicèªèšŒãæ©èœãšããŠçšæãããŠãã æ¬çªç°å¢ä»¥å€ãäžè¬å
¬éããªãããã«ãããããããã©ã«ãã§BasicèªèšŒã仿ããããšãã§ããã®ã¯äŸ¿å©ã§ããã ããã©ã«ãã§çµã¿èŸŒãŸããŠããªãå Žåã¯WAFãèšå®ããããåæ®µã«CloudFrontãçšæããäžã§CloudFront Functionsã§å¶åŸ¡ããçã
ãå¿
èŠã«ãªãããŸããã©ã³ããPRããšã«èªåã§äœæããããµã€ãã«ã¯è¿œå ããããšãã§ããªãããäžæ°ã«æ±ãèŸããªã£ãŠãããšæããŸãã è©°ãŸã£ãç¹ã»ããå°ã䟿å©ã ãšå¬ããç¹ ãªãã€ã¬ã¯ãã§ã¯ã€ã«ãã«ãŒããå©çšã§ããç®æãéããã IaC管çããããšãããšããè€é ãã«ãéç¥ã䜿ããããããããšãããšããæéãããã ãã«ãæã®ãã°ãåºåã§ããªã Gitäžã®ãã©ã³ãã«å¿
ãäŸåãã IaC管çããããšãããšããè€é åºæ¬çã«ãªãœãŒã¹ã¯å
šãŠIaCã§ç®¡çããããã«ããŠããã®ã§ãããAmplifyèªäœã®ç®¡çãããè€éã§ãããTerraformãšAWS CDKã©ã¡ããå©çšããŠäœæããããšããããŸãããAmplify管çã«ã€ããŠã¯ãã®äºã€ã®å·®ã¯ããŸãæããŸããã§ããã IaCã§ç®¡çããããšããå ŽåãAmplifyæ¬äœã®ãªãœãŒã¹ãšãã©ã³ãããšã®ç°å¢ãå®çŸ©ããå¿
èŠãããå°ã
èšè¿°éãå€ããªããŸãããŸããGitHubãªããžããªãšã®æ¥ç¶ã§ãªãœãŒã¹äœææã¯PATèªèšŒãå¿
èŠã«ãªããªã©ãåŒã£ãããç¹ããããŸããã ãã®èŸºããç°¡åã«ãªãœãŒã¹ãäœæããŠç
©ããããçãããã®Amplifyãªã®ã§ã峿 Œããæ±ããIaCãšã¯è¥å¹²çžæ§ãæªãããã«ãæããŸããã ãã«ãéç¥ã䜿ããããããããšãããšæéãããã Amplifyã®ãã«ãéç¥ã¯ãããã©ã«ãã§ã¯emailã®ã¿å¯Ÿå¿ããŠããŸããå¹çãèãããšslackçã«æµãããã§ãããæ©èœãšããŠã¯ååšããŸããã ãã«ãèªäœã¯EventBridgeãããªã¬ãŒã«æ€ç¥ããããšãã§ãããããããããLambdaãªã©ã䜿ãããšã§éç¥ããããšã¯ã§ããŸããèå³ãããæ¹ã¯ ä»¥åæžããèšäº ããåç
§ãã ããã ãã ãããããå¿
èŠãªãªãœãŒã¹ãèšå®äžã€ã§çšæã§ããã®ãAmplifyã®å©ç¹ã«ãããããããå¥é现ãã仿§ãææ¡ããªãœãŒã¹ãäœãå¿
èŠããããšããç¹ãå°ã
ç
©ãããæããŸããã ãã«ãæã®ãã°ãCloudWatchã«åºåã§ããªã Amplifyã¯é£æºãããã³ãŒããå
ã«ãAmplifyäžã§ã³ãŒãããã«ããããã®ããµã€ããšããŠå
¬éããŸããããã§åä»ãªã®ãããã«ãæã®ãã°ãã®ãã®ã¯Amplifyã®ã³ã³ãœãŒã«ç»é¢ã§ãã確èªã§ããªãç¹ã§ãã SSRã§ã¢ã¯ã»ã¹æã«åºåãããã¢ããªã±ãŒã·ã§ã³ãã°ã¯CloudWatch Logsã«åºåããããšãã§ããŸããããã«ãæã®ãã°ã¯CloudWatch Logsã«ã¯åºåãããŸããã ãã£ãŠSSGã®ãµã€ããªã©ã§ãã«ãæã«ããŒã¿ååŸã«å€±æããå Žåãªã©ããã©ãã§ç°åžžãçºçããã®ãã³ã³ãœãŒã«ãããã©ãå¿
èŠãããç¹ãéçšãèãããšå°ã
æéã§ãã ãã£ãšããããã«ã€ããŠã¯GitHub actionsãªã©ã§ãã«ãããå ŽåãåããããããŸãããæ®æ®µAWSã䜿ã£ãŠãããšCloudWatch Logsããã¢ã©ãŒããæµããŠãããããããå°ã
ç©è¶³ããªãæããéšåããããŸããã Gitäžã®ãã©ã³ãã«å¿
ãäŸåãã Amplifyã®ãããã€ã¯Gitäžã®ãã©ã³ãã«çŽã¥ããŠããŠäŸ¿å©ã§ããããã®ãã©ã³ãããªããªããšç°å¢ãæ¶ããŠããŸããŸãã æ¬çªçšŒåãã©ã³ããªã©èšå®ããããšã¯ã§ããŸãããç¹ã«ä¿è·ãããŠããããã§ããªãäŸåããŠãããã©ã³ããæ¶ããå Žåã¯è©²åœã®ãã©ã³ãã®ç°å¢ã¯å®¹èµŠç¡ãåé€ãããŸãã ãã£ãŠãæ¬çªã§åäœããŠãããã©ã³ãã«ã€ããŠã¯ç¢ºå®ã«GitHubã®ãã©ã³ãä¿è·ã®ã«ãŒã«ã仿ããŸããããåæ©çãããŠAmplifyã䜿ãããšã泚æãã¹ãåœããåã®ããšã§ã¯ãããŸãããAmplifyã®å Žåã¯ãã©ã³ãã®èª€åé€ããã€ã¬ã¯ãã«ãµã€ããã®ãã®ã®ååšãšçŽçµããŸãããã®ãããªã¹ã¯ã¯æ®æ®µä»¥äžã«å€§ããæ³šæãå¿
èŠã§ãã ç¹ã«å€ãã®ãµã€ãã管çããŠããå Žåããã£ããäžã€ã§ãä¿è·æŒãããªããæ³šæããŸãããã ãŸãšã æ£çŽãªãšããAmplifyã®æ©èœã®ãããçšåºŠãããŸã å©çšããŠããŸãããããããçšåºŠã§ãPRãã¬ãã¥ãŒæ©èœãªã©ããªã䟿å©ã«æããç®æã¯å€ãã§ããECSã§åäœãããŠãããµã€ãã§PRããšã«ç°å¢ãçšæããããšããå Žåãç°å¢ã®æºåã¯ãã¡ãããããã€ããªã¬ãŒã®çšæãªã©èããããšã¯å€ãããããèšå®ã®ãã§ãã¯äžã€ã§å®çŸããŠããŸãç¹ã¯éåžžã«åŒ·åã«æããŸããã äžæ¹ã§ç©è¶³ããªãæããç¹ãããããã«ããã°ããã«ãéç¥ãªã©Amplifyå
ã§å€ãã®ããšãèªåçã«åŠçããŠããŸã£ãŠããããããããããã«ã¹ã¿ãã€ãºããããšãããšæã£ã以äžã«æéãããã£ããããããã察å¿ã§ããªãã±ãŒã¹ãªã©ãåºãŠããŸãã ãã®èŸºãã¯åã«ãµã€ãããããã€ããã ãã§ãªãéçšãèžãŸããŠèããªããšåŸããèºããã€ã³ãã«ãªããããªãã®ã§ãå°ã
åä»ãªãã€ã³ãã ãšæããŸãã ãšã¯ããAmplifyèªäœã®æ©èœã¢ããããŒããç¶ããŠãããäŸãã°ä»¥åã¯Amplifyã«WAFãçŽæ¥çŽã¥ããããªãã£ãã®ã§ãããããã2025幎ã«ã¯GAãããŠããŸããä»åŸãäžäŸ¿ã«æããŠãããã€ã³ããã¢ããããŒãã§è§£æ¶ãããå¯èœæ§ãããã®ã§ãæ©èœã¢ããããŒãã«ã¯æ³šèŠããŠããããã§ãã åè https://aws.amazon.com/jp/amplify/



























