
MR
ã€ãã³ã
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
ãã¬ãžã³
æè¡ããã°
ã¯ããã« NTTããŒã¿ã°ã«ãŒã æè¡é©æ°çµ±æ¬æ¬éš AIæè¡éšã®å°å å
çã§ãã ç§ã¯å
¥ç€Ÿ1幎ç®ããçŸåšãŸã§ãiPaaS/API飿ºåºç€ããŒã ã«æå±ãã4幎éãMuleSoftå匷äŒã®äŒç»ã»éå¶ã«æºãã£ãŠããŸããã ãã®éãMuleSoftã®DeveloperïŒArchitecté¢é£ã®è³æ Œã4ã€ååŸããªãããã©ãããã°ããŒã ãšããŠåŠã³ãç¶ç¶ã§ãããã詊è¡é¯èª€ããŠããŸããã å匷äŒã¯ããŒã ãšããŠåã®åãçµã¿ã§ã倧å€ãªé¢ããããŸããããç¶ç¶ããŠè¯ãã£ãç¹ãå€ããããŸããã æ¬èšäºãéããŠãããšã³ãžãã¢å匷äŒãéå¬ããŠã¿ãããããèªçµç¹ã®å匷äŒã«ãåãå
¥ããŠã¿ããããšæããŠãããããå¬ããã§
æ¬ããã°ã¯ãäžè±é»æ©æ ªåŒäŒç€Ÿ é»åã·ã¹ãã è£œäœæ é»åICTã»ã³ã¿ãŒ å°æ£®æ§ãšãã¢ããŸã³ ãŠã§ã ãµãŒãã¹ ãžã£ãã³ååäŒç€Ÿ ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãçš²ç°ãGitLab ååäŒç€Ÿ ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã®å°æŸåæ§ã®å
±èã§ããäžè±é»æ© é»åICTã»ã³ã¿ãŒã«ããã Kiro ãš GitLab ãçµã¿åããããœãããŠã§ã¢éçºå¹çåã®åãçµã¿ã«ã€ããŠã玹ä»ããŸãã é»åICTã»ã³ã¿ãŒã«ã€ã㊠äžè±é»æ© é»åã·ã¹ãã è£œäœæ é»åICTã»ã³ã¿ãŒã¯ãåçå¯èœãšãã«ã®ãŒã®æ¡å€§ãé»åèªç±åã«å¯Ÿå¿ããé»åÃICTã®å°éçµç¹ã§ããé»åååŒã»é絊管çããã忣å黿º/VPPãè黿± å¶åŸ¡ãã¹ããŒãã¡ãŒã¿ãŒãèšéã»ç²Ÿç®ãç°å¢äŸ¡å€ç®¡çãã¢ã»ãããããžã¡ã³ããŸã§ãé»åäºæ¥å
šäœãã«ããŒããäž»åãœãªã¥ãŒã·ã§ã³ã BLEnDerïŒãã¬ã³ããŒïŒ ããéçºããŠããŸããBLEnDer ã軞ã«é»åã®âèŠããåâ倿âèšç»âå¶åŸ¡âãäžæ°é貫ã§å®çŸããé»åããžã¿ã«ãœãªã¥ãŒã·ã§ã³ãæäŸããé»åäŒç€Ÿæ§ãéé
é»äºæ¥è
æ§ãå°å£²é»æ°äºæ¥è
æ§ãçºé»äºæ¥è
æ§ãªã©ãå¹
åºãäºæ¥è
æ§ãæ¯ããŠããŸãã ãããŸã§ã®åãçµã¿ãšèª²é¡ é»åICTã»ã³ã¿ãŒã§ã¯ããœãããŠã§ã¢éçºã®å¹çåã«åããŠããŸããŸãªåãçµã¿ãè¡ã£ãŠããŸããã GitLab ãããŒã¹ã«ãã CI/CD ç°å¢ã®æ§ç¯ Amazon Bedrock ãæŽ»çšãã RAG ã·ã¹ãã ã®éçºïŒéçºå·¥æ°èŠç©ããã®æ¯æŽïŒ Amazon Bedrock ãæŽ»çšããèšèšæžã¬ãã¥ãŒã®å¹çå CI/CD ããŒã«ã掻çšãããã«ãã»ãã¹ãã»ãããã€äœæ¥ã®å¹çå ã¯ãŒã¯ãããŒèªååããŒã«ã掻çšããç³è«ãããŒã®èªåå ãããã®ã·ã¹ãã ãããŒã«ã¯ããããéçºå¹çåã«å¯äžããŠããŸããã å°å
¥ã»å±éæã«å
±éã®èª²é¡ ããããŸããã éçºããã·ã¹ãã ãããŒã«ã¯ãåºæ¬çã«çŽå
¥å
ã®éçºããŒã ã«éçšã»ä¿å®ãæ
ã£ãŠããã ããŸãããã®ãããå©ç𿹿³ã瀺ããããã¥ã¡ã³ããèšèšããã¥ã¡ã³ãã®äœæãå©çšãããŒã®æŽåãäžå¯æ¬ ã§ããæã«ã¯å匷äŒãéå¬ããå¿
èŠãªã¹ãã«ãç¿åŸããŠããã ãå¿
èŠããããŸãããããããæ¯åãã«ã»ããã§äŒŽèµ°æ¯æŽãè¡ãããšã¯çŸå®çã§ã¯ãªããããã¥ã¡ã³ããå匷äŒã ãã§å®è·µããŠããã ãã«ã¯éçããããšæããŠããŸããã ãããã¥ã¡ã³ããèªãŸãªããŠããAI ã«èãã°ã¯ãŒã¯ãããŒã«æ²¿ã£ãéçºãã§ããã â ãããªä»çµã¿ãå®çŸããããã«ãKiro ãš GitLab ãçµã¿åãããæ°ããã¢ãããŒãã«åãçµãã§ããŸãã Kiro ã® Steeringã»Powersã»MCP ãšã¯ æ¬é¡ã«å
¥ãåã«ãä»åã®åãçµã¿ã§æŽ»çšããŠãã Kiro ã®äž»èŠæ©èœã«ã€ããŠèª¬æããŸãã SteeringïŒãããžã§ã¯ã暪æã®ã°ã©ãŠã³ãã«ãŒã« Steering ã¯ãKiro ã®æ¯ãèãã«å¯Ÿã㊠垞ã«é©çšãããã°ã©ãŠã³ãã«ãŒã« ãå®çŸ©ããä»çµã¿ã§ãããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã« .kiro/steering/ ãã£ã¬ã¯ããªãäœæããããŒã¯ããŠã³ãã¡ã€ã«ã§ã«ãŒã«ãèšè¿°ããŸãã .kiro/ âââ steering/ âââ coding-standards.md # ã³ãŒãã£ã³ã°èŠçŽ âââ language.md # èšèªèšå®ïŒæ¥æ¬èªã§åçããçïŒ âââ security.md # ã»ãã¥ãªãã£ããªã·ãŒ Steering ã«èšè¿°ããã«ãŒã«ã¯ã ã©ã® Power ãçºåããŠãããã«é¢ãããåžžã« Kiro ã®ã³ã³ããã¹ãã«èªã¿èŸŒãŸããŸã ããã®ããããæ¥æ¬èªã§åçããããšããæ©å¯æ
å ±ãã³ãŒãã«å«ããªãããšããšãã£ãããããžã§ã¯ãå
šäœã§äžè²«ããŠå®ãã¹ãã«ãŒã«ã®å®çŸ©ã«é©ããŠããŸãã é»åICTã»ã³ã¿ãŒã§ã¯ããããžã§ã¯ãåºæã§ã¯ãªãå
±éã®ã°ã©ãŠã³ãã«ãŒã«ïŒèšèªèšå®ãã³ãŒãã£ã³ã°èŠçŽã®åºæ¬æ¹éãªã©ïŒã Steering ã§ç®¡çããŠããŸãã PowersïŒåçã«åŒã³åºãããã¯ãŒã¯ãããŒå®çŸ© Powers ã¯ãSteering ãšã¯ç°ãªãã ãŠãŒã¶ãŒã®çºè©±å
容ã«å¿ããŠåçã«åŒã³åºããã ã«ãŒã«å®çŸ©ã®ä»çµã¿ã§ããPower 㯠POWER.md ãšããã¡ã¿ããŒã¿ãã¡ã€ã«ãšã steering/ ãã£ã¬ã¯ããªé
äžã®ã¹ãã¢ãªã³ã°ãã¡ã€ã«çŸ€ã§æ§æãããŸãã .kiro/powers/ âââ my-power/ âââ POWER.md # Power ã®ã¡ã¿ããŒã¿ïŒname, description, keywordsïŒ âââ mcp.json # ãã® Power å°çšã® MCP ãµãŒããŒèšå®ïŒä»»æïŒ âââ steering/ âââ guide-a.md # ã¹ãã¢ãªã³ã°ãã¡ã€ã« A âââ guide-b.md # ã¹ãã¢ãªã³ã°ãã¡ã€ã« B POWER.md ã® frontmatter ã«ã¯ keywords ãå®çŸ©ã§ãããŠãŒã¶ãŒã®çºè©±ã«ãããã®ããŒã¯ãŒããå«ãŸãããšããã® Power ãåçã«çºåããŸãã --- name: "standard-dev-flow" displayName: "Standard Dev Flow" description: "GitLab ã䜿çšããéçºã¯ãŒã¯ãããŒãæšæºåãã Power" keywords: ["ã€ã·ã¥ãŒ", "ãã©ã³ã", "ã³ããã", "MR", "ããŒãžãªã¯ãšã¹ã", "ã¬ãã¥ãŒ", "ãã€ãã©ã€ã³", "å®è£
"] --- Steering ãšã®äœ¿ãåãã®ãã€ã³ã ã¯ãã³ã³ããã¹ããŠã£ã³ããŠã®å¹çã§ããSteering ã¯åžžã«èªã¿èŸŒãŸããããã倧éã®ã«ãŒã«ãå®çŸ©ãããšã³ã³ããã¹ããå§è¿«ããŸããäžæ¹ãPowers ã¯å¿
èŠãªãšãã ãåçã«èªã¿èŸŒãŸãããããã¯ãŒã¯ãããŒåºæã®è©³çްãªã«ãŒã«ïŒæ°åè¡ã«åã¶ã¬ã€ãã©ã€ã³ãªã©ïŒãå®çŸ©ããŠããé¢ä¿ãªãã¿ã¹ã¯ã®éã«ã¯ã³ã³ããã¹ããæ¶è²»ããŸããã é»åICTã»ã³ã¿ãŒã§ã¯ IDE ã§ã®å©çšãå€ããIDE äžã§ Power ãåçã«åŒã³åºãããŠããããšãèŠèŠçã«ç¢ºèªã§ããç¹ã«å®å¿æãæããŠããŸãããã㟠Kiro ãã©ã®ã«ãŒã«ã«åŸã£ãŠåããŠãããããèŠããããšã§ãAI ã®æ¯ãèããå¶åŸ¡ã§ããŠãã宿ãåŸãããŸãã Kiro ãã Power ãåŒã³åºãã€ã¡ãŒãž MCPïŒModel Context ProtocolïŒïŒå€éšããŒã«ãšã®é£æº MCP ã¯ãKiro ãå€éšã®ããŒã«ããµãŒãã¹ãšé£æºããããã®ãããã³ã«ã§ããMCP ãµãŒããŒãå®çŸ©ããããšã§ãKiro ã GitLab API ã®æäœãç¬èªã®ã¹ã¯ãªããå®è¡ãªã©ãIDE ã®å€ã«ããæ©èœãåŒã³åºããããã«ãªããŸãã Power ããšã« mcp.json ãé
眮ã§ããããã ç¹å®ã®ã¯ãŒã¯ãããŒã§ã®ã¿å¿
èŠãª MCP ãµãŒããŒãããã® Power ã«çŽã¥ããŠç®¡ç ã§ããŸããäŸãã°ãStandard Dev Flow Power ã«ã¯ GitLab æäœçšã® MCP ãµãŒããŒããPlaywright Power ã«ã¯ãã¹ãå®è¡çšã® MCP ãµãŒããŒãããšãã£ã䜿ãåããå¯èœã§ãã 3 ã€ã®æ©èœã®é¢ä¿æ§ ãŸãšãããšã以äžã®ãããªåœ¹å²åæ
ã«ãªããŸãã æ©èœ é©çšã¿ã€ãã³ã° çšé Steering åžžæ ãããžã§ã¯ã暪æã®ã°ã©ãŠã³ãã«ãŒã« Powers ããŒã¯ãŒãã«å¿ããŠåç ã¯ãŒã¯ãããŒåºæã®è©³çްã«ãŒã«ã»æé MCP Power ã«çŽã¥ããŠåç å€éšããŒã«ã»API ãšã®é£æº ãã®3å±€æ§é ã«ããããåžžã«å®ãã¹ãã«ãŒã«ããã¿ã¹ã¯ã«å¿ããŠå¿
èŠãªã«ãŒã«ããå€éšããŒã«ãšã®é£æºããæŽçããŠç®¡çã§ããã³ã³ããã¹ããŠã£ã³ããŠãå¹ççã«æŽ»çšããªãã AI ãšãŒãžã§ã³ãã®æ¯ãèããå¶åŸ¡ã§ããŸãã çŸåšã®åãçµã¿ïŒKiro à GitLab ã«ããéçºãã©ãããã©ãŒã å
šäœå çŸåšãCI/CD ãäžå¿ãšãããœãããŠã§ã¢éçºãµã€ã¯ã«å
šäœã®å¹çåã«åãçµãã§ããŸãã éçºã¯ãŒã¯ãããŒã®æŽçïŒãã©ã³ãæŠç¥ã»ãªãªãŒã¹æŠç¥ãå«ã CI/CD ç°å¢ã®æŽåïŒ ã¢ããªã±ãŒã·ã§ã³ã®ãããã€æ¹æ³ã®æ€èšããã¹ãèªååç°å¢ã®æŽå GitLab CI/CD ã«ã¿ãã°ã掻çšãããã€ãã©ã€ã³ã®æšæºå ã¬ã€ãã©ã€ã³ã®æŽå ãããã®åãçµã¿ã«ãããŠãKiro ãš GitLab ãã©ã®ããã«æŽ»çšããŠããããã玹ä»ããŸãã Kiro ã®æŽ»çšïŒPowers ã«ããéçºã¯ãŒã¯ãããŒã®æšæºå Kiro ã§ã¯ 2 ã€ã® Power (Standard Dev Flow Power, Playwright Power) ãå©çšããŠããŸããããããã«ã€ããŠè§£èª¬ããŸãã ãã® 1: Standard Dev Flow Power éçºã¯ãŒã¯ãããŒå
šäœãæšæºåãã Power ãäœæããŸããã以äžã®ã¯ãŒã¯ãããŒã Kiro ã«å®çŸ©ããŠããŸãã 1. Issue äœæ â 2. ãã©ã³ãäœæ â 3. å®è£
â 4. ã³ããã â 5. MR äœæ â 6. ã¬ãã¥ãŒ â 7. ããŒãž ãã® Power ã«ã¯ãåãã§ãŒãºã«å¯Ÿå¿ããã¹ãã¢ãªã³ã°ãã¡ã€ã«ãå«ãŸããŠããŸãã standard-dev-flow/ âââ POWER.md # Power å®çŸ©ïŒã¯ãŒã¯ãããŒå
šäœåïŒ âââ mcp.json # MCP ãµãŒããŒèšå® âââ steering/ âââ issue-management.md # Issue äœæã¬ã€ã âââ branch-commit-mr.md # ãã©ã³ãã»ã³ãããã»MRäœæã¬ã€ã âââ implementation.md # å®è£
äœæ¥ã¬ã€ã âââ gitlab-duo-review.md # GitLab Duo ã¬ãã¥ãŒã¯ãŒã¯ãã㌠âââ pipeline-troubleshooting.md # ãã€ãã©ã€ã³å€±æè§£æã¬ã€ã âââ gitlab-official-mcp-tools.md # GitLab å
¬åŒ MCP ããŒã«ãªãã¡ã¬ã³ã¹ POWER.md ã«ã¯ã¯ãŒã¯ãããŒã®å
šäœåãšåã¹ãã¢ãªã³ã°ãã¡ã€ã«ã®åç
§ã¿ã€ãã³ã°ãèšè¿°ããŠããŸããäŸãã°ããæ°ãã Issue ãäœæããé㯠issue-management.md ãåç
§ãããã€ãã©ã€ã³ã倱æããé㯠pipeline-troubleshooting.md ãåç
§ããšãã£ã圢ã§ãKiro ãã©ã®ãã§ãŒãºã§ã©ã®ã«ãŒã«ãé©çšãã¹ãããæç€ºããŠããŸãã åã¹ãã¢ãªã³ã°ãã¡ã€ã«ã«ã¯ããã®ãã§ãŒãºã§ Kiro ãåŸãã¹ãå
·äœçãªã«ãŒã«ãèšè¿°ãããŠããŸããäŸãã° branch-commit-mr.md ã«ã¯ä»¥äžã®ãããªã«ãŒã«ãå«ãŸããŸãã ãã©ã³ãåœåèŠåïŒ feature/{issue-number}-{brief-description} åœ¢åŒ Conventional Commits 1.0.0 æºæ ã®ã³ãããã¡ãã»ãŒãžïŒtype/scope/description/body ã®æ§é åãæ¥æ¬èªã§ã®èšè¿°ïŒ MR äœææã® squash merge ã«ãã 1 ã³ããããžã®éçŽ MR ãã³ãã¬ãŒãïŒå€æŽå
容/ãã¹ã/ã¬ãã¥ãŒèгç¹/è£è¶³ïŒã«åºã¥ããèšè¿° éçºè
㯠Kiro ã«ãIssue #123 ã®å®è£
ãéå§ããŠãã ããããšäŒããã ãã§ãPower ã«å®çŸ©ãããã¯ãŒã¯ãããŒã«æ²¿ã£ãŠäœæ¥ãé²ã¿ãŸããKiro ã¯èªåçã«ä»¥äžãå®è¡ããŸãã ãã©ã³ãã®ç¢ºèªã»åãæ¿ã Issue ã®å
容確èªãš tmp/{ã¿ã¹ã¯å}-issue-details.md ã®äœæ å®è¡èšç»ã®äœæïŒ tmp/{ã¿ã¹ã¯å}-plan.md ïŒ å®è£
äœæ¥ã®å®æœ äœæ¥ãµããªãŒã®äœæïŒ tmp/{ã¿ã¹ã¯å}-summary.md ïŒ ãã®ããã«ã äœæ¥ã®è¿œè·¡ãã¡ã€ã«ãèªåçæããä»çµã¿ ã Power ã«çµã¿èŸŒãã§ããŸããIssue ã®è©³çްçè§£ããã§ãã¯ãªã¹ã圢åŒã®å®è¡èšç»ãäœæ¥å®äºåŸã®ãµããªãŒã tmp/ ãã£ã¬ã¯ããªã«æ®ãããšã§ãäœæ¥ã®éææ§ã確ä¿ããŠããŸãã Standard Dev Flow Power ã«ã¯ãGitLab å
¬åŒ MCP ãµãŒããŒãšç¬èªã® MCP ãµãŒããŒã®äž¡æ¹ã mcp.json ã§å®çŸ©ããŠããŸãã GitLab å
¬åŒ MCP ãµãŒããŒãæäŸããäž»ãªããŒã«ïŒ create_issue / get_issue ïŒIssue ã®äœæã»ååŸ create_merge_request / get_merge_request ïŒMR ã®äœæã»ååŸ search / semantic_code_search ïŒæ€çŽ¢æ©èœ ç¬èª MCP ãµãŒããŒïŒGitLab MCP EnhancerïŒã§è£å®ããŠããããŒã«ïŒ get_mr_discussions / reply_to_discussion / resolve_all_discussions ïŒMR ãã£ã¹ã«ãã·ã§ã³æäœ list_merge_requests / update_merge_request ïŒMR ã®äžèЧã»ç·šé list_issues / update_issue / add_issue_note ïŒIssue ã®äžèЧã»ç·šé get_latest_pipeline / get_pipeline_jobs / get_job_log ïŒãã€ãã©ã€ã³è§£æ ãã® 2 ã€ã® MCP ãµãŒããŒãçµã¿åãããããšã§ãIssue äœæãã MR ã¬ãã¥ãŒå¯Ÿå¿ããã€ãã©ã€ã³å€±æã®è§£æãŸã§ã GitLab ã®æäœãã»ãŒ Kiro äžã§å®çµ ã§ããããã«ãªããŸããã ãã® 2: Playwright Power 次ã®ã¹ããããšããŠãPlaywright ãæŽ»çšãã E2E ãã¹ãçæã®ããã® Power ãäœæããŠããŸãã playwright/ âââ POWER.md # Powerå®çŸ© âââ steering/ âââ playwright-rule.md # ã³ãŒãã£ã³ã°èŠçŽã»POM倿æé âââ playwright-cli.md # playwright-cli ã®äœ¿ãæ¹ âââ test-best-practices.md # ãã¹ãå®è£
ã®ãã¹ããã©ã¯ãã£ã¹ ãã® Power ã®ãã€ã³ãã¯ã playwright-cli ã®åºåãã Page Object ModelïŒPOMïŒãžã®å€ææé ãã¹ãã¢ãªã³ã°ãã¡ã€ã«ã«è©³çްã«å®çŸ©ããŠããç¹ã§ããplaywright-cli ã¯ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãåãã«èšèšããã CLI ããŒã¹ã®ãã©ãŠã¶èªååããŒã«ã§ãæäœããšã« Playwright ã³ãŒããåºåããŸãã playwright-rule.md ã«ã¯ããã®åºåã³ãŒããã POM ã¯ã©ã¹ãžå€æãã 3 ã¹ãããã®æé ãå®çŸ©ãããŠããŸãã ãã±ãŒã¿ãŒæœåº ïŒåºåã³ãŒãããèŠçŽ ãç¹å® readonly å®çŸ© ïŒã³ã³ã¹ãã©ã¯ã¿ã§ãã±ãŒã¿ãŒãå®£èš ã¢ã¯ã·ã§ã³ã¡ãœãã ïŒæäœãã¡ãœããã«æœè±¡å ããã«ããã±ãŒã¿ãŒæŠç¥ã®åªå
é äœãæç¢ºã«å®çŸ©ããŠããŸãã getByRole() â ãã¿ã³ããªã³ã¯çã®ã»ãã³ãã£ãã¯èŠçŽ getByLabel() â ãã©ãŒã èŠçŽ getByPlaceholder() â ãã¬ãŒã¹ãã«ããŒããã¹ã getByText() â 衚瀺ããã¹ã getByTestId() â ãã¹ãå°çšå±æ§ CSS/XPath â æåŸã®ææ®µ test-best-practices.md ã«ã¯ãAAA ãã¿ãŒã³ïŒArrange/Act/AssertïŒã«ãããã¹ãæ§é åãã¢ãµãŒã·ã§ã³åŒ·åïŒ toBeVisible() ã ãã§ãªã toHaveText() ã§å
容確èªïŒããã¹ãå®å®åãã¯ããã¯ïŒã¹ãããŒåŸ
æ©ãå€ã DOM ã®åé¿ïŒãªã©ãå®è·µçãªãã¹ããã©ã¯ãã£ã¹ãèšè¿°ãããŠããŸãã ãããã®ã«ãŒã«ã Power ã«èœãšã蟌ãããšã§ã 誰ã Kiro ã«ãã¹ãçæãäŸé ŒããŠããçµç¹ã®ãã¹ããã©ã¯ãã£ã¹ã«æ²¿ã£ãäžè²«æ§ã®ãããã¹ãã³ãŒããçæãããŸã ã GitLab ã®æŽ»çš GitLab Pages ã«ããã¬ã€ãã©ã€ã³å
¬é ãã©ãããã©ãŒã ãä» BU ã«å±éããã«ããããã¬ã€ãã©ã€ã³ã®æŽåã¯äžå¯æ¬ ã§ããGitLab Pages ãæŽ»çšããããŒã¯ããŠã³ã§èšè¿°ããã¬ã€ããéç Web ãµã€ãã«å€æããŠå
¬éããŠããŸããã¬ã€ãã«ã¯ãGitLab CI/CD ã«ã¿ãã°ã掻çšããæšæºãã€ãã©ã€ã³ã®èª¬æããGitLab Duo ã Kiro ã®åºæ¬çãªäœ¿ãæ¹ã Tips ãæ²èŒããŠããŸããé¢é£ãããœãŒã¹ã³ãŒãã¯ãã¹ãŠ GitLab ã§ç®¡çããŠããããœãŒã¹ã³ãŒãã®ä¿®æ£ãããã°çæ AI ãæŽ»çšããŠå³æã«ã¬ã€ãã«åæ ã»å
¬éã§ããããã管çã®æéãæããŸããã ããã§éèŠãªã®ã¯ã Powers ã«ã¯åºæ¬çã«ã¬ã€ãã«æžããŠããããšããã®ãŸãŸèœãšã蟌ãã§ãã ãšããç¹ã§ããããã«ãããã¬ã€ãã®å
容㚠AI ã®æ¯ãèããåžžã«äžèŽãããã¬ã€ããèªããããAI ã«èãããã®ã©ã¡ãã§ãåãæ
å ±ã«ãã©ãçããç¶æ
ãå®çŸããŠããŸãã GitLab Pages ã®å©çšã€ã¡ãŒãž CI/CD ã«ã¿ãã°ã«ãããã€ãã©ã€ã³ã®æšæºå GitLab CI/CD ã«ã¿ãã°ãäœæããã¢ãŒãã£ãã¡ã¯ãããã£ãã·ã¥ã®èšå®ãå«ããã€ãã©ã€ã³ãã³ãã¬ãŒããé
åžããŠããŸãããŠãŒã¶ãŒåŽã¯ç°å¢åºæã®ãã©ã¡ãŒã¿å€ã®ã¿ãå
¥åããã°ãå³åº§ã«äœ¿çšå¯èœãªç¶æ
ã§ãã GitLab Duo ã«ãã MR ã¬ãã¥ãŒïŒAI å士ã®åå Kiro ã§ã³ãŒãã£ã³ã°ãè¡ããMR ãäœæããåŸãGitLab Duo ã«ã¬ãã¥ãŒãäŸé Œããã¯ãŒã¯ãããŒãæ§ç¯ããŠããŸãã çæ AI ã¯èªåã§çæããã³ãŒãã«å¯ŸããŠæ£ãããšããèªç¥ãã€ã¢ã¹ããããå¯èœæ§ãããããã ã³ãŒãçæïŒKiroïŒãšã¬ãã¥ãŒïŒGitLab DuoïŒãç°ãªã AI ã«æ
åœããã ããšã§ããã客芳çãªã¬ãã¥ãŒãå®çŸããŠããŸãã GitLab Duo ãžã®ã¬ãã¥ãŒèгç¹ã¯ã瀟å
ã®æèè
ã亀ã㊠mr-review-instructions.yaml ã«å®çŸ©ããŠãããã¬ãã¥ãŒã³ã¡ã³ãã«å¿
ã prefixïŒæ¥é èŸïŒãä»ããã«ãŒã«ãèšããŠããŸãããã® prefix ã«ãããã¬ãã¥ãŒææã®éèŠåºŠãäžç®ã§å€æã§ããããã«ãªããŸãã instructions: - name: Common Review Policy fileFilters: - "**/*" instructions: | - **èšèª**: ãã¹ãŠã®å¿çã¯å¿
ãæ¥æ¬èªã§è¡ã£ãŠãã ãã - ã¬ãã¥ãŒããéã«ã¯ã以äžã®prefix(æ¥é èŸ)ãå¿
ãä»ããŠãã ãã - [must] â å¿
é ä¿®æ£ãä¿®æ£ããªãã®ã§ããã°ä¿®æ£ããªãçç±ãéçºè
ã«æ±ãã - [want] â ã§ããã°å¯Ÿå¿ããŠã»ãããæ¹åãšããŠæãŸããææ¡ - [imo] â å人çæèŠã奜ã¿ããŒã¹ã®ææ¡ - [ask] â 質åãæå³ã»èæ¯ã®ç¢ºèª - [nits] â 现ããææ(nitpicks)ãè¶
軜埮ãªã¹ã¿ã€ã«ä¿®æ£ãªã© - [info] â åèæ
å ±ãå
±æã»è£è¶³ã»é¢é£æ
å ± äžæ¹ãKiro åŽã® PowerïŒ gitlab-duo-review.md ïŒã«ã¯ãGitLab Duo ã®ã¬ãã¥ãŒçµæãã©ãåãåããã©ã察å¿ãããã®ã«ãŒã«ãå®çŸ©ããŠãããGitLab Duo ãä»äžãã prefix ã«å¯ŸããŠãKiro ãã©ã®ããã«å€æã»è¡åãã¹ãããæç€ºããŠããŸãã ã»ã»ã» ### 2. GitLab Duoã«ã¬ãã¥ãŒäŸé Œ **éèŠ**: GitLab Duoã®ã¬ãã¥ãŒã¯**æ°èŠãã£ã¹ã«ãã·ã§ã³**ã§`@GitLabDuo`ãã¡ã³ã·ã§ã³ããããšã§çºåãããMRäœææã®descriptionã«èšèŒããŠãçºåããªãã **ã¬ãã¥ãŒäŸé Œã®ãã€ã³ã**: - æ°èŠãã£ã¹ã«ãã·ã§ã³ãäœæããïŒãããå¿
é ïŒ - `@GitLabDuo`ã¯ã¹ããŒã¹ãªãã§èšèŒ - äŸé Œã¡ãã»ãŒãžã«ã¯ä»¥äžãå«ãããšå¹æçïŒ - å®è£
å
å®¹ã®æŠèŠ - ç¹ã«ç¢ºèªããŠã»ããç¹ - 倿Žçç±ãèæ¯ - åèè³æ: é¢é£ããã¥ã¡ã³ã ### 3. ã¬ãã¥ãŒçµæç¢ºèª **ã¬ãã¥ãŒã³ã¡ã³ãã®prefixïŒéèŠåºŠã®å€æåºæºïŒ**: GitLab Duoã®ã¬ãã¥ãŒã«ã¯ä»¥äžã®prefixãä»äžãããããããåºã«å¯Ÿå¿ã®åªå
床ã倿ããã | Prefix | æå³ | å¯Ÿå¿æ¹é | |--------|------|----------| | `[must]` | å¿
é ä¿®æ£ | ä¿®æ£å¿
é ã察å¿ããªãå Žåã¯çç±ã説æ | | `[want]` | ã§ããã°å¯Ÿå¿ | æ¹åãšããŠæãŸãããå¯èœãªéãå¯Ÿå¿ | | `[imo]` | å人çæèŠ | 奜ã¿ããŒã¹ã®ææ¡ãæ¡çšã¯ä»»æ | | `[ask]` | 質å | æå³ã»èæ¯ã®ç¢ºèªãåçãå¿
èŠ | | `[nits]` | 现ããææ | è¶
軜埮ãªã¹ã¿ã€ã«ä¿®æ£ãäœè£ãããã°å¯Ÿå¿ | | `[info]` | åèæ
å ± | å
±æã»è£è¶³ã»é¢é£æ
å ±ã察å¿äžèŠ | **[ask]ãžã®å¯Ÿå¿**: `[ask]`ãä»ãã質åã«ã¯ã該åœãã£ã¹ã«ãã·ã§ã³ã«`@GitLabDuo`ã¡ã³ã·ã§ã³ä»ãã§è¿ä¿¡ããŠäžæç¹ãè§£æ¶ããã ã»ã»ã» [ask] ãä»ãã質åã«ã¯ã該åœãã£ã¹ã«ãã·ã§ã³ã« @GitLabDuo ã¡ã³ã·ã§ã³ä»ãã§è¿ä¿¡ããŠäžæç¹ãè§£æ¶ããã«ãŒã«ãå®çŸ©ããŠããŸãã ãŸããGitLab Duo ãžã®ã¬ãã¥ãŒäŸé Œæ¹æ³ã«ã€ããŠã Power ã«æèšããŠããŸããGitLab Duo ã®ã¬ãã¥ãŒã¯ MR ã® description ã«èšã®æåŸã« /assign_reviewer @GitLabDuo ãèšèŒããããšã§çºåããŸãããããããç¥ããªããšããããã€ã³ããã Power ã«èœãšã蟌ãããšã§ãéçºè
ã詊è¡é¯èª€ããæéãçããŠããŸãã 以äžãèžãŸãããKiro ãš GitLab Duo ã®ååã¯ãŒã¯ãããŒã¯ä»¥äžã®éãã§ãã Kiro ã§æ©èœãå®è£
ããMR ãäœæ GitLab Duo ã« MR ã¬ãã¥ãŒãäŸé ŒïŒMCP çµç±ïŒ ã¬ãã¥ãŒææã Kiro ãååŸãã察å¿å¯åŠã倿 察å¿ãå¿
èŠãªææã«å¯ŸããŠã³ãŒãä¿®æ£ã宿œ ä¿®æ£ãã³ãããã»ããã·ã¥ããå床 GitLab Duo ã«ã¬ãã¥ãŒãäŸé Œ æ¿èªåŸãå
šãã£ã¹ã«ãã·ã§ã³ãäžæ¬è§£æ±º ãã® AI å士ã®ååã«ããã¬ãã¥ãŒãµã€ã¯ã« ã«ãããããçšåºŠã®ã¯ãªãªãã£ãæ
ä¿ãããç¶æ
ã§äººéã®ã¬ãã¥ã¢ãŒãå
¥ãããšã§ãã¬ãã¥ãŒè² æ
ã®è»œæžãæåŸ
ã§ããŸãã ãã®æ§æã®ã¡ãªãã 1. å°å
¥ããŒãã«ã®å€§å¹
ãªäœäž Power ãæŽ»çšããŠéçºãããŒãå®çŸ©ããŠãããããéçºè
㯠Kiro ã«è³ªåããªããäœæ¥ãé²ããã ãã§ãã¯ãŒã¯ãããŒã«æ²¿ã£ãéçºãè¡ãããšãã§ããŸããåãããªãããšã¯ Kiro ã«è³ªåããŠè§£æ±ºã§ãããããKiro ã®åºæ¬çãªäœ¿ãæ¹ãèŠããã ãã§éçºãå§ããããŸããBU ãžã®å±éæã«ãAI ããµããŒãããŠãããããã¬ã€ããç¹ã«èªãå¿
èŠã¯ãªããããšäŒããã ãã§ããŒãã«ããã£ãšäžãããŸãã 2. éçºã®èšŒè·¡ãšã³ã©ãã¬ãŒã·ã§ã³ Issue ã MR ã§éçºã®èšŒè·¡ãæ®ãããšã§ãä»ã®éçºè
ãšã®ã³ã©ãã¬ãŒã·ã§ã³ã容æã«ãªããŸããIssue ã远ãããšã§ãå¥ã®éçºè
ãäœæ¥ãåŒãç¶ãããšã容æã«ãªããšèããŠããŸãã 3. ã¬ãã¥ãŒè² æ
ã®è»œæž ã³ãŒãéçºã®é床ãäžããäžæ¹ã§ãã¬ãã¥ãŒè
ãžã®è² æ
ãå¢å€§ãããªã¹ã¯ããããŸããGitLab Duo ã§ã®èгç¹ã«åºã¥ããã¬ãã¥ãŒãš CI/CD ãã€ãã©ã€ã³ã®å®è¡çµæã Kiro ã«ãã£ãŒãããã¯ãããŠæ¹åããããšã§ã人éã®ã¬ãã¥ã¢ãŒãå
¥ãåã«ããçšåºŠã®ã¯ãªãªãã£ãæ
ä¿ã§ããŸãã人éã®ã¬ãã¥ãŒç²ããã¬ãã¥ãŒå·¥æ°ã®åæžã«ãå¯äžããããšãæåŸ
ããŠããŸãã 工倫ããç¹ãšèŠåŽããç¹ 1 : Power ã®çºåçãäžãã工倫 Power ã« keywords ãèšå®ããŠåŒã³åºãã®å·¥å€«ãããŸããããæåŸ
éãã«çºåããªãã±ãŒã¹ããããŸãããäŸãã°ãStandard Dev Flow Power ã«ã¯ ["ã€ã·ã¥ãŒ", "ãã©ã³ã", "ã³ããã", "MR", "ããŒãžãªã¯ãšã¹ã", "ã¬ãã¥ãŒ", "ãã€ãã©ã€ã³", "å®è£
"] ãšãã£ãããŒã¯ãŒããèšå®ããŠããŸããããŠãŒã¶ãŒã®çºè©±ããããã®ããŒã¯ãŒãã«å®å
šã«äžèŽããªãå ŽåãPower ãçºåããªãããšããããŸããã 調æ»ã®çµæã Power ãç©æ¥µçã«æŽ»çšããããä¿ã Steering ãã¡ã€ã«ãäœæãã ããšã§ãå©çšçãåäžããŸãããSteering ã¯åžžã«ã³ã³ããã¹ãã«èªã¿èŸŒãŸããããããå©çšå¯èœãª Power ãããå Žåã¯ç©æ¥µçã«æŽ»çšããããšããšããã«ãŒã«ã Steering ã«èšè¿°ããããšã§ãPower ã®çºåçãæ¹åã§ããŸããAI ãšãŒãžã§ã³ãããŒã«ãçµç¹ã§æŽ»çšããéã«ã¯ããããããã¥ãŒãã³ã°ãéèŠã«ãªããŸãã 2: GitLab å
¬åŒ MCP ãµãŒããŒã®è£å® GitLabã®è¯ãã¯ãã®ã«ã¹ã¿ãã€ãºæ§ã®é«ãã«ãããŸãã å
¬åŒ MCP ãµãŒããŒãè£å®ããç¬èªã® MCP ãµãŒããŒïŒGitLab MCP EnhancerïŒãèªäœ ããŸããã gitlab-official-mcp-tools.md ãšããã¹ãã¢ãªã³ã°ãã¡ã€ã«ã« å
¬åŒ MCP ãµãŒã㌠ïŒBeta çïŒã®å
š 14 ããŒã«ã®ãã©ã¡ãŒã¿å®çŸ©ãšäœ¿çšäŸãèšè¿°ããKiro ãæ£ããããŒã«ã䜿ããããã«ã¬ã€ãããŠããŸããããã«ããMR ãã£ã¹ã«ãã·ã§ã³ã®ååŸã»è¿ä¿¡ã»è§£æ±ºãIssue ã®äžèЧã»ç·šéããã€ãã©ã€ã³ã®ãžã§ããã°ååŸãªã©ã GitLab ã®æäœã倧å¹
ã«åäžããã»ãŒ Kiro äžã§æäœãå®çµã§ããããã«ãªããŸããã ä»åŸã®å±æ çŽè¿ã§ã¯ãçŸåšäœæäžã® Playwright Power ã宿ãããE2E ãã¹ãçæã®å¹çåãæšé²ããŠãããŸãããŸããPlaywright Power ãšäžŠè¡ããŠãSonarQube ã® MCP ãµãŒããŒã掻çšããéçè§£æçµæã Kiro ã«ãã£ãŒãããã¯ããä»çµã¿ã®æ§ç¯ãæ€èšãå§ããŸãããããã«ãããã³ãŒãã¬ãã¥ãŒæã ãã§ãªããå®è£
段éããã³ãŒãå質ãé«ããããã®ä»çµã¿äœãã«ãåãçµãã§ããŸãããã®ããã«ãçµç¹ã§æŽ»çšãèŠèŸŒãŸãã OSS ã®æŽ»çšãæšé²ãã Power ãé æ¬¡äœæããAI ãæŽ»çšããŠãœãããŠã§ã¢éçºã楜ã«ãªãåå£ãåºããŠããæ¹éã§ãããŸããGitLab Duo ã®ã¬ãã¥ãŒèгç¹ãç¶ç¶çã«è²ãŠãŠãããé©çšç¯å²ãåºããããšã§ã¬ãã¥ãŒè² æ
ã®ãããªã軜æžãç®æããŸãã 1 : 广ã®å®éåãšç¶ç¶çãªæ¹å AI 掻çšã«ããéçºå¹çåã®å¹æãå¯èŠåãããããå®éçãªè©äŸ¡ææšã®æž¬å®ã«åãçµãã§ãããŸããIssue ããããŒãžãŸã§ã®ãªãŒãã¿ã€ã ãã¬ãã¥ãŒã€ãã¬ãŒã·ã§ã³åæ°ãšãã£ãéçºéåºŠã®ææšãGitLab Duo ã®ã¬ãã¥ãŒææã®ç²ŸåºŠãKiro ã® Playwright Power ã§çæãããã³ãŒãã®å質ãªã©ããå®éã«åããžãã¹ãŠããã (以éãBU)ã§äœ¿çšããŠããã ããªããè©äŸ¡ããŠãããŸãããããã®ãã£ãŒãããã¯ãåºã«ãPower ã®ã«ãŒã«å®çŸ©ã®æ¹åã MCP ãµãŒããŒã®æ©èœæ¡åŒµãªã©ãç¶ç¶çãªæ¹åãµã€ã¯ã«ãåããŠãããŸãã 2 : Power ãšãã€ãã©ã€ã³ã®ãšã³ã·ã¹ãã æ§ç¯ Power ã CI/CD ãã€ãã©ã€ã³ãçµç¹å
šäœã§æŽ»çšããŠãããããããŒãžã§ã³ç®¡çãšé
åžã®ä»çµã¿ãæ§ç¯ããŠãããŸããGitLab ã§ Power/MCP ã CI/CD ãã€ãã©ã€ã³ãã³ãã¬ãŒããäžå
管çããGitLab Pages ã§å°å
¥æ¹æ³ã»ã¢ããã°ã¬ãŒãæ¹æ³ãå
¬éããŸããããŒãžã§ã³æŽæ°æã«ã¯æŽæ°ããã·ã¥ããŒãã§ãŠãŒã¶ãŒã«éç¥ããå BU ããã®èŠæã¯ Issue ããã±ããã§åéããŠç¶ç¶çã«æ¹åããŸãããŸããæ¢åã®ç®¡çã·ã¹ãã ãšã®é£æºãèŠéã«å
¥ããéå®³å ±åããä¿®æ£ããªãªãŒã¹ãŸã§ã®éçºãµã€ã¯ã«å
šäœã®å¹çåãå³ããŸãã 3 : çµç¹å
šäœãžã®å±éãšã³ãã¥ããã£åœ¢æ äžé·æçã«ã¯ãé»åICTã»ã³ã¿ãŒå
ã®å BU ãžã®å±éãå éãããŠãããŸããç©æ¥µçãªæ
å ±çºä¿¡ãéããŠåšå²ãå·»ã蟌ã¿ãªãããå°éã«æŽ»çšã®èŒªãåºããŠãããŸããPower ãã«ãŒã«æŽåã®åãçµã¿ã¯é»åICTã»ã³ã¿ãŒã«éãã話ã§ã¯ãªããããããããã¯äžè±é»æ©å
šç€Ÿçãªåãçµã¿ãšããŠèªç¥ãããæŽ»ç𿹿³ã«ã€ããŠè°è«ã§ããã³ãã¥ããã£ã圢æãããããšãç®æããŠããŸãããŸãã¯è¶³å
ã®é»åICTã»ã³ã¿ãŒã®ãœãããŠã§ã¢éçºå¹çåã«ã€ãªããæŽ»åãã©ãã©ãé²ããŠãããããšèããŠããŸãã ãŸãšã äžè±é»æ© é»åICTã»ã³ã¿ãŒã§ã¯ãKiro ã® Steeringã»Powersã»MCP ãš GitLab ã®åæ©èœãçµã¿åãããããšã§ã ãAI ã«èãã°ã¯ãŒã¯ãããŒã«æ²¿ã£ãéçºãã§ããã ãã©ãããã©ãŒã ã®æ§ç¯ãé²ããŠããŸãã ãã®åãçµã¿ã®æ¬è³ªã¯ãåãªãããŒã«å°å
¥ã§ã¯ãããŸããã Steering ã§ãããžã§ã¯ã暪æã®ã°ã©ãŠã³ãã«ãŒã«ãå®çŸ©ã Powers ã§ã¯ãŒã¯ãããŒåºæã®è©³çްãªã«ãŒã«ã»æé ãåçã«åŒã³åºã MCP ã§ GitLab ãã¯ãããšããå€éšããŒã«ãšã·ãŒã ã¬ã¹ã«é£æºãã ãã® 3 å±€æ§é ã«ãããã¬ã€ãã©ã€ã³ã®å
容ã Powers ã«èœãšã蟌ã¿ãGitLab Pages ã§å
¬éããã¬ã€ããš AI ã®æ¯ãèããäžèŽãããããšã§ã ããã¥ã¡ã³ããèªãã§ã AI ã«èããŠãåãçµæã«ãã©ãçãã ä»çµã¿ãäœã£ãŠããŸããããã«ãKiro ã«ããã³ãŒãçæãš GitLab Duo ã«ããã¬ãã¥ãŒãšãã AI å士ã®ååã«ããã人éã®ã¬ãã¥ãŒè² æ
ã軜æžããªããå質ãæ
ä¿ããã¯ãŒã¯ãããŒãå®çŸããŠããŸãã ãœãããŠã§ã¢éçºã®å¹çåã¯ãããŒã«ã®å°å
¥ã ãã§ã¯å®çµããŸãããéçºã¯ãŒã¯ãããŒã®æšæºåãã¬ã€ãã©ã€ã³ã®æŽåããããŠãããã AI ãšãŒãžã§ã³ãã«èœãšã蟌ãããšã§ãåããŠçµç¹å
šäœã®éçºå¹çãåäžããŸããæ¬ããã°ããåæ§ã®èª²é¡ãæ±ããçæ§ã®åèã«ãªãã°å¹žãã§ãã èè
å°æ£® è£ä¹ é»åã·ã¹ãã è£œäœæ é»åããžã¿ã«ãšããžãŒã·ã¹ãã éçºéš ã·ã¹ãã åºç€èª²æå±ã ã³ãŒããŒãš Kiro ã倧奜ãã§ãïŒ é»åICTã»ã³ã¿ãŒå
ã®å
šããžãã¹ãŠãããã®éçºã»éçšã«è²¢ç®ãããããITIL4 ã«æºæ ããå°çšãã©ãããã©ãŒã ã®éçºã«æºãã£ãŠããã䞻㫠CI/CD ç°å¢ã®æ€èšã»æ§ç¯ã»å°å
¥ã AI ãšãŒãžã§ã³ãããŒã«ã掻çšããéçºã®ä»çµã¿ã¥ãããæ
åœããŠããŸãã çš²ç° å€§éž â ããªãã AWS Japan ã§åã Kiro ããããªãæããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã2022 幎ããäžè±é»æ©ã°ã«ãŒããæ¯æŽããŠããŸãããã®æŽ»åã®åããæè¿ã¯ AI é§åéçºã©ã€ããµã€ã¯ã« (AI-DLC) ã®æ¥æ¬ã®ã客æ§ãžã®åžææŽ»åããã€ã€ã Kiro ã®ããã° ãªã©ãå·çããŠããŸãã å°æŸå ã€ãã GitLab ååäŒç€Ÿ ã·ãã¢ããŒãããŒãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ã é·ãã«æž¡ããœãããŠã§ã¢éçºçµéšãæã¡ãããŒã¿ããŒã¹ãã»ãã¥ãªãã£ãããã°ããŒã¿ã®é åã§ã®æ·±ãå°éç¥èãæã¡ãŸãã2022 幎ã«GitLab ã«åå ããAI é§ååéçºããŒã«ãããããæ°ããéçºãã©ãã€ã ã®æ§ç¯ã«åãçµãã§ããŸãã
ç®æ¬¡ ã¯ããã« éçºç°å¢ äºåæºå ã¡ã€ã³ããŒã¿ã®çšæïŒSample web logsïŒ åœãã¹ã¿ã®ã€ã³ããŒã Lookup Index ãžã®å€æ ãå®è·µãES|QL ã§ã®éèšæ¯èŒ Lookup Join ãªãïŒåœã³ãŒãã®ã¿ïŒ Lookup Join ããïŒåœåãçµåïŒ ãŸãšã åèè³æ æ·»ä»è³æïŒcountry_list.csv ã¯ããã« ãããŸã§ Elasticsearch ã§ãã¡ã€ã³ã®ã€ã³ããã¯ã¹ã«ãå¥ã€ã³ããã¯ã¹ã®æ
å ±ãçŽä»ããŠè¡šç€ºããããå ŽåãEnrich Processor ã䜿çšããŠãåã蟌ã¿ïŒIngestïŒãã§ãŒãºã§ãããããããŒã¿ãçµåããŠããã®ãäžè¬çã§ããã ãããããã®æ¹æ³ã§ã¯ããŒã¿ã®æŽæ°ã®ãã³ã« Enrich Policy ã®åå®è¡ãå¿
èŠã«ãªããªã©ãéçšã®æéããããåŽé¢ããããŸããã ææ°ã® Elasticsearch ã§ã¯ãES|QL ã® LOOKUP JOIN æ©èœãç»å Žããã¯ãšãªå®è¡æã«ãªã¢ã«ã¿ã€ã ã§å¥ã€ã³ããã¯ã¹ã®æ
å ±ãåç
§ã§ããããã«ãªããŸãããæ¬èšäºã§ã¯ããã®äŸ¿å©ãªæ°æ©èœã®äœ¿ãæ¹ã玹ä»ããŸãã éçºç°å¢ Elasticsearch / Kibana: v9.2.4 Chrome â»æ³šæäºé
: LOOKUP JOIN … ON … == … ã®èšæ³ã¯ãElasticsearch 9.2 æç¹ã§ Preview ã§ãã äºåæºå ã¡ã€ã³ããŒã¿ã®çšæïŒSample web logsïŒ ä»å㯠Kibana ã«æšæºã§çšæãããŠãããSample web logsãã䜿çšããŸãã ãŸã åã蟌ãã§ããªãå Žåã¯ãKibana ããŒã ã®ãAdd dataããã Sample web logs ã远å ããŠãã ããã åè: https://elastic.sios.jp/blog/elasticsearch-esql-introduction-log-analysis/ åœãã¹ã¿ã®ã€ã³ããŒã ãã®èšäºã®æ«å°Ÿã«èšèŒããŠãã country_list.csv ã䜿çšããŠããã¹ã¿ããŒã¿ãäœæããŸãã â»çè
ã¯ãWebãã©ãŠã¶ã« Chrome ã䜿çšããŸããã Kibana ã® Home > Upload a file ãéããŸãã country_list.csv ãã¢ããããŒãããèšå®ã以äžã®ããã«å€æŽããŸãã Index name: country_list Advanced options > Data view: offïŒãã¹ã¿ãªã®ã§ Data view ã¯äžèŠã§ãïŒ [Import] ãã¯ãªãã¯ããŸãã Lookup Index ãžã®å€æ ES|QL ã® Lookup Join ãå©çšããã«ã¯ãéåžžã®ã€ã³ããã¯ã¹ããLookup çšãã«å€æããå¿
èŠããããŸãã Stack Management > Index Management ãã country_list ãéžæããŸãã 2. Manage ãã¿ã³ãã Convert to lookup index ãã¯ãªãã¯ããŸãã 3. Lookup index name ã« lookup-country_list ãšå
¥åããConvert ãå®è¡ããŸãã Note: ãã®æäœã«ãããã€ã³ã¡ã¢ãªã§é«éã«çµåå¯èœãªç¹æ®ãªã€ã³ããã¯ã¹ãçæãããŸããå
ã® country_list ããã®ãŸãŸæ®ããŸãã ãå®è·µãES|QL ã§ã®éèšæ¯èŒ Lookup Join ãªãïŒåœã³ãŒãã®ã¿ïŒ ãŸãã¯ãéåžžã®éèšãè¡ã£ãŠã¿ãŸãã Kibana ã® Discover ãéããäžéšã® [Try ES|QL] ãã¯ãªãã¯ããŸãã 以äžã®ã¯ãšãªãå
¥åããŠå®è¡ããŸãã FROM kibana_sample_data_logs | STATS bytes_sum = sum(bytes) BY geo.dest | KEEP geo.dest, bytes_sum | SORT bytes_sum DESC | LIMIT 8 éèšå¯Ÿè±¡ã®æéã¯ãé©åœã«èª¿æŽããŠãã ãããäžèšã®äŸã§ã¯ãLast 24 hours ãæå®ããŠããŸãã çµæ: geo.dest é
ç®ã« CN ã US ãšãã£ã 2 æ¡ã®åœã³ãŒãã衚瀺ãããŸããããã ãã§ã¯ãçŽæçã«ã©ã®åœãåããã«ããã§ãããã Lookup Join ããïŒåœåãçµåïŒ æ¬¡ã«ãLOOKUP JOIN ã䜿ã£ãŠåœãã¹ã¿ããåœåãåŒã£åŒµã£ãŠããŸãã FROM kibana_sample_data_logs | STATS bytes_sum = sum(bytes) BY geo.dest | LOOKUP JOIN lookup-country_list ON geo.dest == country_code | KEEP country_name, bytes_sum | SORT bytes_sum DESC | LIMIT 8 çµæ: country_name ãçµåããããCHINAããUNITED STATESããšãã£ãå
·äœçãªåœåã衚瀺ãããããã«ãªããŸãïŒ ãŸãšã ES|QL ã® LOOKUP JOIN ã䜿ãã¡ãªããã¯ä»¥äžã®éãã§ãã éçšã®ç°¡ç¥å: Enrich Policy ã管çã»æŽæ°ããæéãçããã çŽæçãªèšè¿°: SQL ã® JOIN ã«è¿ãæèŠã§ãã¯ãšãªå
ã§åçã«çµåã§ããã æè»æ§: å¿
èŠãªãšãã ããã¹ã¿æ
å ±ãä»äžã§ããã çŸåšã¯ Preview æ©èœã§ãããå°æ¥çã« Elasticsearch ã§ã®ãã°åæãã¬ããŒãäœæã«ãããŠãæ¬ ãããªãæ©èœã«ãªãã¯ãã§ãã åèè³æ Elasticå
¬åŒ: LOOKUP JOIN command https://www.elastic.co/docs/reference/query-languages/esql/commands/lookup-join æ·»ä»è³æïŒcountry_list.csv åœãã¹ã¿ã®CSVã§ãã â»ãã®ããŒã¿ã¯ã https://www.e-tax.nta.go.jp/toiawase/qa/crs/countrycode.htm ãå
ã«çæãããã®ã§ãã country_code,country_name AF,AFGHANISTAN AX,ALAND ISLANDS AL,ALBANIA DZ,ALGERIA AS,AMERICAN SAMOA AD,ANDORRA AO,ANGOLA AI,ANGUILLA AQ,ANTARCTICA AG,ANTIGUA AND BARBUDA AR,ARGENTINA AM,ARMENIA AW,ARUBA AU,AUSTRALIA AT,AUSTRIA AZ,AZERBAIJAN BS,BAHAMAS BH,BAHRAIN BD,BANGLADESH BB,BARBADOS BY,BELARUS BE,BELGIUM BZ,BELIZE BJ,BENIN BM,BERMUDA BT,BHUTAN BO,"BOLIVIA, PLURINATIONAL STATE OF" BQ,"BONAIRE, SINT EUSTATIUS AND SABA" BA,BOSNIA AND HERZEGOVINA BW,BOTSWANA BV,BOUVET ISLAND BR,BRAZIL IO,BRITISH INDIAN OCEAN TERRITORY BN,BRUNEI DARUSSALAM BG,BULGARIA BF,BURKINA FASO BI,BURUNDI KH,CAMBODIA CM,CAMEROON CA,CANADA CV,CABO VERDE KY,CAYMAN ISLANDS CF,CENTRAL AFRICAN REPUBLIC TD,CHAD CL,CHILE CN,CHINA CX,CHRISTMAS ISLAND CC,COCOS (KEELING) ISLANDS CO,COLOMBIA KM,COMOROS CG,CONGO CD,"CONGO, THE DEMOCRATIC REPUBLIC OF THE" CK,COOK ISLANDS CR,COSTA RICA CI,COTE D'IVOIRE HR,CROATIA CU,CUBA CW,CURACAO CY,CYPRUS CZ,CZECHIA DK,DENMARK DJ,DJIBOUTI DM,DOMINICA DO,DOMINICAN REPUBLIC EC,ECUADOR EG,EGYPT SV,EL SALVADOR GQ,EQUATORIAL GUINEA ER,ERITREA EE,ESTONIA ET,ETHIOPIA FK,FALKLAND ISLANDS (MALVINAS) FO,FAROE ISLANDS FJ,FIJI FI,FINLAND FR,FRANCE GF,FRENCH GUIANA PF,FRENCH POLYNESIA TF,FRENCH SOUTHERN TERRITORIES GA,GABON GM,GAMBIA GE,GEORGIA DE,GERMANY GH,GHANA GI,GIBRALTAR GR,GREECE GL,GREENLAND GD,GRENADA GP,GUADELOUPE GU,GUAM GT,GUATEMALA GG,GUERNSEY GN,GUINEA GW,GUINEA-BISSAU GY,GUYANA HT,HAITI HM,HEARD ISLAND AND MCDONALD ISLANDS VA,HOLY SEE (VATICAN CITY STATE) HN,HONDURAS HK,HONG KONG HU,HUNGARY IS,ICELAND IN,INDIA ID,INDONESIA IR,"IRAN, ISLAMIC REPUBLIC OF" IQ,IRAQ IE,IRELAND IM,ISLE OF MAN IL,ISRAEL IT,ITALY JM,JAMAICA JP,JAPAN JE,JERSEY JO,JORDAN KZ,KAZAKHSTAN KE,KENYA KI,KIRIBATI KP,"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF" KR,"KOREA, REPUBLIC OF" KW,KUWAIT KG,KYRGYZSTAN LA,LAO PEOPLE'S DEMOCRATIC REPUBLIC LV,LATVIA LB,LEBANON LS,LESOTHO LR,LIBERIA LY,LIBYA LI,LIECHTENSTEIN LT,LITHUANIA LU,LUXEMBOURG MO,MACAO MK,NORTH MACEDONIA MG,MADAGASCAR MW,MALAWI MY,MALAYSIA MV,MALDIVES ML,MALI MT,MALTA MH,MARSHALL ISLANDS MQ,MARTINIQUE MR,MAURITANIA MU,MAURITIUS YT,MAYOTTE MX,MEXICO FM,"MICRONESIA, FEDERATED STATES OF" MD,"MOLDOVA, REPUBLIC OF" MC,MONACO MN,MONGOLIA ME,MONTENEGRO MS,MONTSERRAT MA,MOROCCO MZ,MOZAMBIQUE MM,MYANMAR NA,NAMIBIA NR,NAURU NP,NEPAL NL,NETHERLANDS NC,NEW CALEDONIA NZ,NEW ZEALAND NI,NICARAGUA NE,NIGER NG,NIGERIA NU,NIUE NF,NORFOLK ISLAND MP,NORTHERN MARIANA ISLANDS NO,NORWAY OM,OMAN PK,PAKISTAN PW,PALAU PS,"PALESTINE, STATE OF" PA,PANAMA PG,PAPUA NEW GUINEA PY,PARAGUAY PE,PERU PH,PHILIPPINES PN,PITCAIRN PL,POLAND PT,PORTUGAL PR,PUERTO RICO QA,QATAR RE,REUNION RO,ROMANIA RU,RUSSIAN FEDERATION RW,RWANDA BL,SAINT BARTHELEMY SH,"SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA" KN,SAINT KITTS AND NEVIS LC,SAINT LUCIA MF,SAINT MARTIN (FRENCH PART) PM,SAINT PIERRE AND MIQUELON VC,SAINT VINCENT AND THE GRENADINES WS,SAMOA SM,SAN MARINO ST,SAO TOME AND PRINCIPE SA,SAUDI ARABIA SN,SENEGAL RS,SERBIA SC,SEYCHELLES SL,SIERRA LEONE SG,SINGAPORE SX,SINT MAARTEN (DUTCH PART) SK,SLOVAKIA SI,SLOVENIA SB,SOLOMON ISLANDS SO,SOMALIA ZA,SOUTH AFRICA GS,SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS SS,SOUTH SUDAN ES,SPAIN LK,SRI LANKA SD,SUDAN SR,SURINAME SJ,SVALBARD AND JAN MAYEN SZ,ESWATINI SE,SWEDEN CH,SWITZERLAND SY,SYRIAN ARAB REPUBLIC TW,"TAIWAN, PROVINCE OF CHINA" TJ,TAJIKISTAN TZ,"TANZANIA, UNITED REPUBLIC OF" TH,THAILAND TL,TIMOR-LESTE TG,TOGO TK,TOKELAU TO,TONGA TT,TRINIDAD AND TOBAGO TN,TUNISIA TR,TURKEY TM,TURKMENISTAN TC,TURKS AND CAICOS ISLANDS TV,TUVALU UG,UGANDA UA,UKRAINE AE,UNITED ARAB EMIRATES GB,UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND US,UNITED STATES UM,UNITED STATES MINOR OUTLYING ISLANDS UY,URUGUAY UZ,UZBEKISTAN VU,VANUATU VE,"VENEZUELA, BOLIVARIAN REPUBLIC OF" VN,VIET NAM VG,"VIRGIN ISLANDS, BRITISH" VI,"VIRGIN ISLANDS, U.S." WF,WALLIS AND FUTUNA EH,WESTERN SAHARA YE,YEMEN ZM,ZAMBIA ZW,ZIMBABWE XK,KOSOVO The post ES|QL ã® Lookup Join ã§ã€ã³ããã¯ã¹çµåãé©ãã»ã©ç°¡åã« first appeared on Elastic Portal .



















