Major Changes: - Add StreamingService with OpenAI Compatible format - Upgrade Chat component V2 with Ant Design X integration - Implement AIA module with 12 intelligent agents - Update API routes to unified /api/v1 prefix - Update system documentation Backend (~1300 lines): - common/streaming: OpenAI Compatible adapter - modules/aia: 12 agents, conversation service, streaming integration - Update route versions (RVW, PKB to v1) Frontend (~3500 lines): - modules/aia: AgentHub + ChatWorkspace (100% prototype restoration) - shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook - Update API endpoints to v1 Documentation: - AIA module status guide - Universal capabilities catalog - System overview updates - All module documentation sync Tested: Stream response verified, authentication working Status: AIA V2.0 core completed (85%)
17 KiB
MSE荳拶RMS驥<EFBFBD>エュ蜀ウ遲門<EFBFBD>譫<EFBFBD>
*蛻<EFBFBD>梵譌・譛滂シ? 2025-11-18
*鬘ケ逶ョ髦カ谿オ<EFBFBD>? 蛻帑ク壼<EFBDB8>譛滂シ窟SL讓。蝮怜セ<E6809C>シ蜿? *髣ョ鬚假シ? 譏ッ蜷ヲ髴隕∬エュ荵ー髦ソ驥御コ閃SE<53>亥セョ譛榊苅蠑墓梼<E5A293>牙柱ARMS<4D>亥コ皮畑逶第而<E7ACAC>会シ? *扈楢ョコ<EFBFBD>? 蛻帑ク壼<EFBFBD>譛滉ク埼怙隕<EFBFBD>シ檎鴫譛牙渕遑隶セ譁ス雜ウ螟<EFBFBD> 笨?
<EFBFBD>投 蜉溯<E89C89>蟇ケ豈泌<E8B188>譫<EFBFBD>
1<EFBFBD>鞘Ε 髦ソ驥御コ閃SE vs 謌台サャ逧<EFBDAC>渕遑隶セ譁ス
| MSE蜉溯<EFBFBD> | 謌台サャ逧<EFBFBD>ョ樒<EFBFBD>? | 譏ッ蜷ヲ髴隕`SE | 逅<EFBFBD>罰 |
|---|---|---|---|
| 豕ィ蜀碁<EFBFBD>鄂ョ荳ュ蠢<EFBFBD> (Nacos/ZooKeeper) | config/env.ts 邇ッ蠅<EFBDAF>序驥<E5BA8F> |
笶?*荳埼怙隕? | 謌台サャ譏?蜊穂ス鉄erverless蠎皮畑*<2A>御ク肴弍蠕ョ譛榊苅譫カ譫<EFBDB6>シ御ク埼怙隕∵恪蜉。豕ィ蜀? |
| *蠕ョ譛榊苅豐サ逅? (Spring Cloud/Dubbo) | 荳埼ら畑 | 笶?*荳埼怙隕? | 謌台サャ譏ッNode.js蜊穂ス灘コ皮畑<E79AAE>御ク堺スソ逕ィSpring Cloud謌縫ubbo |
| *莠大次逕溽ス大<EFBFBD>? (Ingress) | SAE閾ェ蟶ヲ鄂大<EFBFBD> | 笶?*荳埼怙隕? | SAE蟾イ謠蝉セ姨TTP霍ッ逕ア蜥瑚エ溯スス蝮<EFBFBD>。? |
| *蛻<EFBFBD>ク<EFBFBD>シ丈ササ蜉。隹<EFBFBD>コ? (XXL-JOB) | common/jobs/ (MemoryQueue/DatabaseQueue) |
笞<EFBFBD><EFBFBD><EFBFBD> *證ゆク埼怙隕? | 蛻帑ク壼<EFBFBD>譛滓<EFBFBD>莉ャ逧<EFBFBD>obQueue螟溽畑<EFBFBD>悟錘扈ュ蜿ッ蜊<EFBFBD>コァ |
*譬ク蠢<EFBFBD>キョ蠑ゑシ?
MSE騾ら畑蝨コ譎ッ<EFBFBD>?
笏娯楳笏笏笏笏笏笏笏笏笏? 笏娯楳笏笏笏笏笏笏笏笏笏? 笏娯楳笏笏笏笏笏笏笏笏笏?
笏?譛榊苅A 笏や楳笏笏笏?譛榊苅B 笏や楳笏笏笏?譛榊苅C 笏? 竊?髴隕∵ウィ蜀御クュ蠢?
笏披楳笏笏笏笏笏笏笏笏笏? 笏披楳笏笏笏笏笏笏笏笏笏? 笏披楳笏笏笏笏笏笏笏笏笏?
謌台サャ逧<EFBDAC>楔譫<E6A594>シ<EFBFBD>
笏娯楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
笏? 蜊穂ス鉄erverless蠎皮畑<E79AAE><E79591>astify<66>? 笏? 竊?荳埼怙隕∵ウィ蜀御クュ蠢?
笏? - legacy讓。蝮暦シ<E69AA6>IA/PKB/RVW<56>? 笏?
笏? - ASL讓。蝮暦シ亥セ<E4BAA5>シ蜿托シ<E68998> 笏?
笏? - 蟷ウ蜿ー蝓コ遑隶セ譁ス<E8AD81>?荳ェ蜀<EFBDAA>Κ讓。蝮暦シ<E69AA6> 笏?
笏披楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
2<EFBFBD>鞘Ε 髦ソ驥御コ羨RMS vs 謌台サャ逧<EFBDAC>尅謗ァ譁ケ譯?
| ARMS蜉溯<EFBFBD> | 謌台サャ逧<EFBFBD>ョ樒<EFBFBD>? | 譏ッ蜷ヲ髴隕、RMS | 逅<EFBFBD>罰 |
|---|---|---|---|
| 蠎皮畑逶第而 | common/monitoring/metrics.ts |
笞<EFBFBD><EFBFBD><EFBFBD> *證ゆク埼怙隕? | 謌台サャ譛牙渕遑逶第而<EFBFBD>悟<EFBFBD>荳壼<EFBFBD>譛溷、溽<EFBFBD>? |
| 謗・蜿」隹<EFBFBD>畑逶第而 | common/logging/logger.ts |
笞<EFBFBD><EFBFBD><EFBFBD> *證ゆク埼怙隕? | Winston扈捺桷蛹匁律蠢怜庄霑ス雕ェ |
| 諤ァ閭ス蛻<EFBFBD>梵 | /health + Metrics |
笞<EFBFBD><EFBFBD><EFBFBD> *證ゆク埼怙隕? | 邂蜊募惻譎ッ螟溽<EFBFBD>? |
| 髞呵ッッ隸頑妙 | 扈捺桷蛹匁律蠢?+ SLS | 笞<EFBFBD><EFBFBD><EFBFBD> *證ゆク埼怙隕? | 譌・蠢礼ウサ扈溷庄霑ス雕ェ髞呵ッ? |
| *隹<EFBFBD>畑體セ霑ス雕? | 譌? | 笞<EFBFBD><EFBFBD><EFBFBD> *蛻晄悄荳埼怙隕? | 蜊穂ス灘コ皮畑隹<EFBFBD>畑體セ邂蜊? |
*譬ク蠢<EFBFBD>キョ蠑ゑシ?
ARMS騾ら畑蝨コ譎ッ<EFBFBD>?
- 螟肴揩逧<E68FA9>セョ譛榊苅隹<E88B85>畑體?
- 髴隕∵キア蠎ヲ諤ァ閭ス蛻<EFBDBD>梵
- 螟ァ隗<EFBDA7>ィ。逕滉コァ邇ッ蠅<EFBDAF>シ域律豢サ>10荳<30>シ<EFBFBD>
謌台サャ逧<EFBDAC>惻譎ッ<E8AD8E><EFBDAF>
- 蜊穂ス灘コ皮畑<E79AAE>瑚ー<E7919A>畑體セ貂<EFBDBE>匆
- 蛻帑ク壼<EFBDB8>譛滂シ梧オ<E6A2A7>㍼蟆<E38DBC>
- 蝓コ遑逶第而 + 譌・蠢苓カウ螟<EFBDB3>
<EFBFBD>腸 謌先悽謨育寢蛻<E5AFA2>梵
MSE謌先悽<EFBFBD>井シー邂暦シ<EFBFBD>
| 鬘ケ逶ョ | 驟咲スョ | 莉キ譬シ/譛? | 隸エ譏<EFBFBD> |
|---|---|---|---|
| 豕ィ蜀碁<EFBFBD>鄂ョ荳ュ蠢<EFBFBD> | 譛蟆剰ァ<EFBFBD><EFBFBD>? | ~ツ・200 | Nacos荳謎ク夂<EFBFBD>? |
| 莠大次逕溽ス大<EFBFBD>? | 譛蟆剰ァ<EFBFBD><EFBFBD>? | ~ツ・300 | 荳埼怙隕<EFBFBD>シ<EFBFBD>AE蟾イ謠蝉セ幢シ<EFBFBD> |
| 諤サ隶。 | - | ~ツ・500 | 蛻帑ク壼<EFBFBD>譛滉ク榊ソ<EFBFBD>ヲ? |
ARMS謌先悽<EFBFBD>井シー邂暦シ<EFBFBD>
| 鬘ケ逶ョ | 驟咲スョ | 莉キ譬シ/譛? | 隸エ譏<EFBFBD> |
|---|---|---|---|
| 蠎皮畑逶第而 | 謖芽ー<EFBFBD>畑驥<EFBFBD> | ~ツ・300-1000 | 蜿門<EFBFBD>莠手ー<EFBFBD>畑驥<EFBFBD> |
| 諤サ隶。 | - | ~ツ・300-1000 | 譛牙<EFBFBD>雍ケ鬚晏コヲ<EFBFBD>御ス<EFBFBD>怏髯? |
謌台サャ逧<EFBFBD>尅謗ァ謌先<EFBFBD>?
| 鬘ケ逶ョ | 驟咲スョ | 莉キ譬シ/譛? | 隸エ譏<EFBFBD> |
|---|---|---|---|
| 扈捺桷蛹匁律蠢? | Winston 竊?stdout | ツ・0 | 蜈崎エケ |
| 譌・蠢怜ュ伜お | 髦ソ驥御コ全LS | ツ・0-50 | 蟆乗オ<EFBFBD>㍼蜈崎エケ鬚晏コヲ蜀<EFBFBD> |
| 蛛・蠎キ譽譟? | 閾ェ螳樒<EFBFBD>? | ツ・0 | 蜈崎エケ |
| 諤サ隶。 | - | ツ・0-50 | 蛻帑ク壼<EFBFBD>譛溷、溽畑 |
*謌先悽蟇ケ豈費シ?
雍ュ荵ーMSE + ARMS<4D>嘸ツ・800-1500/譛?
謌台サャ逧<EFBDAC>婿譯茨シ<E88CA8> ~ツ・0-50/譛?
闃ら怐謌先悽<E58588>嘸ツ・800-1500/譛?= ~ツ・10,000-18,000/蟷?
笨?謌台サャ逧<EFBDAC>渕遑隶セ譁ス vs MSE/ARMS
謌台サャ蟾イ扈乗怏逧<EFBFBD><EFBFBD>蜉<EFBFBD>
1. 驟咲スョ邂。逅<EFBDA1>シ域崛莉」MSE驟咲スョ荳ュ蠢<EFBDAD>シ?
謌台サャ逧<EFBFBD>婿譯茨シ<EFBFBD>
// config/env.ts - 扈滉ク驟咲スョ邂。逅<EFBDA1>
export const config = {
storageType: process.env.STORAGE_TYPE || 'local',
cacheType: process.env.CACHE_TYPE || 'memory',
queueType: process.env.QUEUE_TYPE || 'memory',
// ... 40+荳ェ驟咲スョ鬘ケ
}
// SAE邇ッ蠅<EFBDAF>序驥擾シ井コ醍ォッ驟咲スョ<EFBDBD><EFBDAE>
STORAGE_TYPE=oss
CACHE_TYPE=redis
QUEUE_TYPE=database
*莨伜漢<EFBFBD>?
- 笨?髮カ謌先<E8AC8C>?
- 笨?邂蜊慕峩謗?
- 笨?騾ょ粋蜊穂ス灘コ皮畑
- 笨?SAE蜴溽函謾ッ謖<EFBDAF>
*MSE驟咲スョ荳ュ蠢<EFBFBD>噪莨伜漢<EFBFBD>域<EFBFBD>莉ャ證ゆク埼怙隕<EFBFBD>シ会シ?
- 蜉ィ諤<EFBFBD><EFBFBD>鄂ョ譖エ譁ー<EFBFBD>域<EFBFBD>莉ャ驥榊星蜊ウ蜿ッ<EFBFBD>?
- 螟壼コ皮畑驟咲スョ蜈ア莠ォ<EFBFBD>域<EFBFBD>莉ャ蜿ェ譛<EFBFBD>1荳ェ蠎皮畑<EFBFBD><EFBFBD>
- 迚域悽邂。逅<EFBFBD>シ域<EFBFBD>莉ャ逕ィGit + 邇ッ蠅<EFBDAF>序驥擾シ?
2. 莉サ蜉。隹<EFBDA1>コヲ<EFBDBA>域崛莉」MSE蛻<45>ク<EFBFBD>シ丈ササ蜉。隹<EFBDA1>コヲ<EFBDBA><EFBDA6>
謌台サャ逧<EFBFBD>婿譯茨シ<EFBFBD>
// common/jobs/ - 邂蜊穂ササ蜉。髦溷<E9ABA6>?
import { jobQueue } from '@/common/jobs'
const job = await jobQueue.push('asl:screening', data)
// 蠖灘燕螳樒鴫<E6A892>哺emoryQueue<75>域悽蝨ー<E89DA8><EFBDB0>
// 蜷守サュ蜊<EFBDAD>コァ<EFBDBA>咼atabaseQueue<75>井コ醍ォッ<EFBDAB><EFBDAF>
*莨伜漢<EFBFBD>?
- 笨?髮カ謌先<E8AC8C>?
- 笨?莉」遐∫ョ蜊?
- 笨?貊。雜ウ蝓コ譛ャ髴豎?
- 笨?蜿ッ蜷守サュ蜊<EFBDAD>コ?
*MSE莉サ蜉。隹<EFBFBD>コヲ逧<EFBFBD>シ伜漢<EFBFBD>域<EFBFBD>莉ャ證ゆク埼怙隕<EFBFBD>シ会シ?
- 螟肴揩逧Гron陦ィ霎セ蠑擾シ域<EFBFBD>莉ャ逕ィ邂蜊暮弌蛻暦シ<EFBFBD>
- 莉サ蜉。蛻<EFBFBD>援<EFBFBD>域<EFBFBD>莉ャ豬<EFBFBD>㍼蟆擾シ御ク埼怙隕<EFBFBD>シ<EFBFBD>
- 蜿ッ隗<EFBFBD>喧邂。逅<EFBFBD>シ域<EFBFBD>莉ャ莉」遐∫ョ。逅<EFBFBD>叉蜿ッ<EFBFBD>?
- 莉サ蜉。螟ア雍・驥崎ッ包シ域<EFBFBD>莉ャ蜿ッ莉・邂蜊募ョ樒鴫<EFBFBD><EFBFBD>
*蟇ケ豈費シ?
MSE XXL-JOB<4F>? ツ・200+/譛茨シ悟、肴揩驟咲スョ<EFBDBD>碁ょ粋螟ァ隗<EFBDA7>ィ?
謌台サャ逧<EFBDAC>obQueue<75>? ツ・0<EFBDA5>檎ョ蜊慕峩謗・<E8AC97>悟<EFBFBD>荳夐亳谿オ螟溽畑
3. 蠎皮畑逶第而<E7ACAC>域崛莉」ARMS<4D>?
謌台サャ逧<EFBFBD>婿譯茨シ<EFBFBD>
// common/logging/logger.ts - 扈捺桷蛹匁律蠢?
import { logger } from '@/common/logging'
logger.info('API called', {
path, method, latencyMs, statusCode, userId
})
// common/monitoring/metrics.ts - 蜈ウ髞ョ謖<EFBDAE><E8AC96><EFBFBD>
Metrics.recordDBConnectionCount()
Metrics.recordMemoryUsage()
Metrics.recordApiLatency(path, method, latency, statusCode)
// common/health/ - 蛛・蠎キ譽譟?
GET /health/liveness - SAE蟄俶エサ譽譟?
GET /health/readiness - 蟆ア扈ェ譽譟・<EFBFBD>亥性謨ー謐ョ蠎<EFBFBD>/蜀<EFBFBD>ュ<EFBFBD>/郛灘ュ假シ?
譌・蠢苓セ灘<EFBFBD>蛻ー髦ソ驥御コ全LS<EFBFBD>亥<EFBFBD>雍ケ鬚晏コヲ蜀<EFBFBD>シ会シ<EFBFBD>
Winston<EFBFBD><EFBFBD>tdout<EFBFBD>繰SON譬シ蠑擾シ俄<EFBFBD> SAE驥<45>寔 竊?髦ソ驥御コ全LS蟄伜お
蟆乗オ<E4B997>㍼蝨コ譎ッ<E8AD8E>壼<EFBFBD>雍ケ鬚晏コヲ螟溽畑<E6BABD>域ッ乗<EFBDAF>?00MB譌・蠢暦シ?
*莨伜漢<EFBFBD>?
- 笨?蝓コ譛ャ逶第而閭ス蜉帛ョ梧紛
- 笨?譌・蠢怜庄霑ス貅?
- 笨?蛛・蠎キ譽譟・螳悟<E89EB3>?
- 笨?謌先悽譫∽ス趣シ<E8B6A3>LS蜈崎エケ鬚晏コヲ<EFBDBA>?
*ARMS逧<EFBFBD>シ伜漢<EFBFBD>域<EFBFBD>莉ャ證ゆク埼怙隕<EFBFBD>シ会シ?
- 蜿ッ隗<EFBFBD>喧Dashboard<EFBFBD>域<EFBFBD>莉ャ蜿ッ莉・譟・譌・蠢暦シ?
- 隹<EFBFBD>畑體セ霑ス雕ェ<EFBFBD>亥黒菴灘コ皮畑荳埼怙隕<EFBFBD>シ<EFBFBD>
- 閾ェ蜉ィ蜻願ュヲ<EFBFBD>域<EFBFBD>莉ャ蜿ッ莉・邂蜊募ョ樒鴫<EFBFBD><EFBFBD>
- 豺ア蠎ヲ諤ァ閭ス蛻<EFBFBD>梵<EFBFBD>亥<EFBFBD>荳壼<EFBFBD>譛滉ク埼怙隕<EFBFBD>シ<EFBFBD>
<EFBFBD>嶋 莉荵域慮蛟咎怙隕`SE蜥窟RMS<4D>?
蜊<EFBFBD>コァ隗ヲ蜿第擅莉カ
閠<EFBFBD>剔雍ュ荵ーMSE逧<EFBFBD>慮譛コ<EFBFBD><EFBFBD>
-
譫カ譫<EFBFBD>シ碑ソ帑クコ蠕ョ譛榊苅
- 蠖灘燕<EFBFBD>壼黒菴鉄erverless蠎皮畑
- 譛ェ譚・<EFBFBD>壽究蛻<EFBFBD>クコ5+荳ェ迢ャ遶区恪蜉?
- 隗ヲ蜿第擅莉カ<EFBFBD>壽ィ。蝮礼峡遶矩Κ鄂イ縲∝屬髦?10莠?
-
*莉サ蜉。隹<EFBFBD>コヲ螟肴揩蛹?
- 蠖灘燕<EFBFBD>夂ョ蜊暮弌蛻暦シ<EFBFBD><1000荳ェ莉サ蜉?螟ゥ<E89E9F><EFBDA9>
- 譛ェ譚・<EFBFBD>壼、肴揩螳壽慮莉サ蜉。縲∽ササ蜉。蛻<EFBFBD><EFBFBD>?
- 隗ヲ蜿第擅莉カ<EFBFBD>壻ササ蜉。驥<EFBFBD>>10,000/螟?
-
*驟咲スョ邂。逅<EFBFBD>、肴揩蛹?
- 蠖灘燕<EFBFBD>夂識蠅<EFBFBD>序驥擾シ<EFBFBD><50荳ェ驟咲スョ鬘ケ<E9AC98>?
- 譛ェ譚・<EFBFBD>壼勘諤<EFBFBD><EFBFBD>鄂ョ縲、/B豬玖ッ<E78E96>
- 隗ヲ蜿第擅莉カ<EFBFBD>夐<EFBFBD>鄂ョ鬘ケ>200荳ェ<E88DB3>碁怙隕∝勘諤∵峩譁?
*莨ー邂玲慮髣エ<EFBFBD>? 1-2蟷エ蜷趣シ亥ケエ謾カ蜈・>1000荳<30>シ檎畑謌キ>10荳<30>シ<EFBFBD>
閠<EFBFBD>剔雍ュ荵ーARMS逧<EFBFBD>慮譛コ<EFBFBD><EFBFBD>
-
豬<EFBFBD>㍼隗<EFBFBD>ィ。蜿伜、ァ
- 蠖灘燕<EFBFBD>夐「<EFBFBD>シー譌・豢?1000<30>悟ケカ蜿?100
- 譛ェ譚・<EFBFBD>壽律豢?10荳<30>シ悟ケカ蜿<EFBDB6>>1000
- 隗ヲ蜿第擅莉カ<EFBFBD>壽ァ閭ス逑カ鬚磯「醍ケ∝<EFBFBD>邇ー
-
謨<EFBFBD>囿螳壻ス榊峅髫セ
- 蠖灘燕<EFBFBD>壽律蠢怜庄霑ス雕ェ<EFBFBD>瑚ー<EFBFBD>畑體セ邂蜊?
- 譛ェ譚・<EFBFBD>壼、肴揩隹<EFBFBD>畑體セ<EFBFBD>碁埓莉・螳壻ス埼琉鬚?
- 隗ヲ蜿第擅莉カ<EFBFBD>壽腐髫懈賜譟・閠玲慮>1蟆乗慮
-
髴隕∵キア蠎ヲ諤ァ閭ス莨伜喧
- 蠖灘燕<EFBFBD>壼渕遑逶第而螟溽畑
- 譛ェ譚・<EFBFBD>夐怙隕∫サ<EFBFBD>イ貞コヲ諤ァ閭ス蛻<EFBFBD>梵
- 隗ヲ蜿第擅莉カ<EFBFBD>夂畑謌キ蜿埼ヲ域ァ閭ス髣ョ鬚<EFBFBD>
*莨ー邂玲慮髣エ<EFBFBD>? 6荳ェ譛<EFBDAA>-1蟷エ蜷趣シ域オ<E59F9F>㍼蠢ォ騾溷「樣柄譛滂シ?
<EFBFBD>庁 蜀ウ遲門サコ隶ョ<E99AB6>亥<EFBFBD>荳壼<E88DB3>譛滂シ<E6BB82>
笨?謗ィ闕先婿譯茨シ壻ク崎エュ荵ーMSE蜥窟RMS
*逅<EFBFBD>罰<EFBFBD>?譚。<E8AD9A>会シ?
1. *譫カ譫<EFBFBD>ク榊源驟?
MSE騾ら畑<EFBFBD>壼セョ譛榊苅譫カ譫<EFBFBD>シ亥、壻クェ迢ャ遶区恪蜉。<EFBFBD><EFBFBD>
謌台サャ譫カ譫<EFBDB6>シ壼黒菴鉄erverless蠎皮畑<E79AAE>井ク荳ェFastify蠎皮畑<E79AAE>?
扈楢ョコ<EFBDAE>壻ク埼怙隕`SE
2. *謌台サャ逧<EFBFBD>渕遑隶セ譁ス蟾イ雜ウ螟?
笨?驟咲スョ邂。逅<EFBDA1>シ啼nv.ts + SAE邇ッ蠅<EFBDAF>序驥<E5BA8F>
笨?莉サ蜉。隹<EFBDA1>コヲ<EFBDBA>嗚obQueue<75>育ョ蜊暮弌蛻暦シ<E69AA6>
笨?譌・蠢礼尅謗ァ<E8AC97>啗inston + 髦ソ驥御コ全LS<4C>亥<EFBFBD>雍ケ<E99B8D><EFBDB9>
笨?蛛・蠎キ譽譟・<E8AD9F><EFBDA5>/health 遶ッ轤ケ
笨?諤ァ閭ス逶第而<E7ACAC>哺etrics邀?
3. 謌先悽闃ら怐譏セ闡<EFBFBD>
荳崎エュ荵ー<EFBFBD>堋・0-50/譛茨シ亥宵逕ィSLS蜈崎エケ鬚晏コヲ<EFBDBA>?
雍ュ荵ー<E88DB5>? ツ・800-1500/譛?
蟷エ闃ら怐<E38289>嘸ツ・10,000-18,000
4. *豬<EFBFBD>㍼隗<EFBFBD>ィ。蟆?
鬚<EFBFBD>シー<EFBFBD>?
- 蛻晄悄譌・豢サ<E8B1A2>?1000莠?
- 蟷カ蜿題ッキ豎ゑシ?100
- 譌・蠢鈴㍼<E988B4><E38DBC><100MB/螟?
蜈崎エケ鬚晏コヲ雜ウ螟滂シ?
- SLS<4C>?00MB/譛亥<E8AD9B>雍?
- SAE<41>夊<EFBFBD>蟶ヲ蝓コ遑逶第而
5. *蜿ッ蜷守サュ蜊<EFBFBD>コ?
邇ー蝨ィ<EFBFBD>壻スソ逕ィ蜈崎エケ譁ケ譯?
6荳ェ譛亥錘<E4BAA5>壽オ<E5A3BD>㍼蠅樣柄<E6A8A3>瑚ッ<E7919A>シー譏ッ蜷ヲ髴隕?
1蟷エ蜷趣シ壽<EFBDBC>ケ謐ョ螳樣刔諠<E58894><E8ABA0>蜀ウ螳?
<EFBFBD>識 蠖灘燕謗ィ闕先婿譯茨シ磯峺鬚晏、匁<EFBDA4>譛ャ<E8AD9B>?
譁ケ譯<EFBFBD>1<EFBFBD>壽律蠢礼尅謗ァ<EFBFBD>亥キイ螳樒鴫<EFBFBD>俄<EFBFBD>?
// Winston扈捺桷蛹匁律蠢?竊?stdout 竊?SAE驥<45>寔 竊?髦ソ驥御コ全LS
// 1. 驟咲スョWinston霎灘<E99C8E>JSON<4F>亥キイ螳樒鴫<E6A892>?
logger.info('API called', {
path: '/api/v1/asl/screening',
method: 'POST',
latencyMs: 120,
statusCode: 200,
userId: 123,
projectId: 456
})
// 2. SAE閾ェ蜉ィ驥<EFBDA8>寔stdout譌・蠢<EFBDA5>
// 3. 髦ソ驥御コ全LS譟・隸「譌・蠢暦シ亥<EFBDBC>雍ケ鬚晏コヲ<EFBDBA><EFBDA6>
// 蜿ッ莉・謖疫serId縲}ath縲《tatusCode遲牙ュ玲ョオ譟・隸?
*謌先悽<EFBFBD>? ツ・0<EFBDA5><30>LS蜈崎エケ鬚晏コヲ蜀<EFBDA6>シ<EFBFBD>
*閭ス蜉幢シ?
- 笨?謇譛陰PI隹<49>畑隶ー蠖<EFBDB0>
- 笨?諤ァ閭ス謖<EFBDBD><E8AC96><EFBFBD>シ亥桃蠎疲慮髣エ<E9ABA3><EFBDB4>
- 笨?髞呵ッッ霑ス雕ェ<E99B95><EFBDAA>rror譌・蠢暦シ?
- 笨?逕ィ謌キ陦御クコ霑ス雕ェ
譁ケ譯<EFBFBD>2<EFBFBD>壼▼蠎キ譽譟・荳守尅謗ァ<EFBFBD>亥キイ螳樒鴫<EFBFBD>俄怛
// 1. SAE蛛・蠎キ譽譟・遶ッ轤ケ<E8BDA4>亥キイ螳樒鴫<E6A892><E9B4AB>
GET /health/liveness - 蟄俶エサ譽譟・<EFBFBD><EFBFBD><10ms<EFBFBD>?
GET /health/readiness - 蟆ア扈ェ譽譟・<EFBFBD>亥性DB/蜀<EFBFBD>ュ<EFBFBD>/郛灘ュ假シ?
// 2. 蜈ウ髞ョ謖<EFBDAE><E8AC96><EFBFBD>尅謗ァ<E8AC97>亥キイ螳樒鴫<E6A892>?
Metrics.recordDBConnectionCount() // 謨ー謐ョ蠎楢ソ樊磁謨ー
Metrics.recordMemoryUsage() // 蜀<>ュ倅スソ逕ィ
Metrics.recordApiLatency(...) // API蟒カ霑<EFBDB6>
// 3. SAE謗ァ蛻カ蜿ー譟・逵?
- CPU菴ソ逕ィ邇?
- 蜀<EFBFBD>ュ倅スソ逕ィ邇?
- 螳樔セ区焚驥<EFBFBD>
- HTTP隸キ豎らサ溯ョ。
*謌先悽<EFBFBD>? ツ・0<EFBDA5><30>AE閾ェ蟶ヲ<E89FB6>?
*閭ス蜉幢シ?
- 笨?螳樊慮逶第而CPU/蜀<>ュ<EFBFBD>
- 笨?螳樔セ句▼蠎キ迥カ諤?
- 笨?HTTP隸キ豎らサ溯ョ。
- 笨?閾ェ蜉ィ驥榊星謨<E6989F>囿螳樔セ<E6A894>
譁ケ譯<EFBFBD>3<EFBFBD>壻ササ蜉。隹<EFBFBD>コヲ<EFBFBD>亥キイ螳樒鴫<EFBFBD>悟庄蜊<EFBFBD>コァ<EFBFBD>俄<EFBFBD>?
蠖灘燕螳樒鴫<EFBFBD><EFBFBD>hase 1<>会シ<E4BC9A>
// MemoryQueue - 譛ャ蝨ー蠑蜿?
QUEUE_TYPE=memory
// 蜉溯<E89C89><E6BAAF>?
- 笨?蛻帛サコ莉サ蜉。
- 笨?譟・隸「莉サ蜉。迥カ諤?
- 笨?霑帛コヲ霍溯クェ
蜷守サュ蜊<EFBFBD>コァ<EFBFBD><EFBFBD>hase 2<>会シ<E4BC9A>
// DatabaseQueue - 逕滉コァ邇ッ蠅<EFBDAF>
QUEUE_TYPE=database
// 蜊<>コァ蜀<EFBDA7>ョケ<EFBDAE>?
- 笨?莉サ蜉。謖∽ケ<EFBFBD>喧<EFBFBD>亥ュ伜お蛻ーPostgreSQL<EFBFBD>?
- 笨?螟壼ョ樔セ句<EFBFBD>莠ォ<EFBFBD><EFBFBD>AE螟壼ョ樔セ狗識蠅<EFBFBD>シ<EFBFBD>
- 笨?螟ア雍・驥崎ッ包シ?谺。驥崎ッ墓惻蛻カ<EFBFBD><EFBFBD>
- 笨?螳壽慮莉サ蜉。<EFBFBD>育ョ蜊匹ron謾ッ謖<EFBFBD>シ?
*謌先悽<EFBFBD>? ツ・0<EFBDA5>井スソ逕ィ邇ー譛臼ostgreSQL<51>?
*莉荵域慮蛟咎怙隕`SE XXL-JOB<4F>?
- 莉サ蜉。驥?> 10,000/螟?
- 髴隕∝、肴揩逧<EFBFBD>ササ蜉。蛻<EFBFBD>援
- 髴隕∝庄隗<EFBFBD>喧邂。逅<EFBFBD>阜髱「
- 髴隕∬キィ譛榊苅莉サ蜉。郛匁賜
譁ケ譯<EFBFBD>4<EFBFBD>夐漠隸ッ蜻願ュヲ<EFBFBD>郁。・蜈<EFBFBD>ョ樒鴫<EFBFBD>?0蛻<30>帖<EFBFBD>?
*邂蜊募相隴ヲ譁ケ譯茨シ亥庄騾牙ョ樒鴫<EFBFBD>会シ?
// common/monitoring/alerting.ts<74>域眠蠅橸シ<E6A9B8>
import { logger } from '../logging/logger.js'
export class Alerting {
/**
* 蜿鷹<E9B7B9>忠髓牙相隴ヲ<E99AB4>亥<EFBFBD>荳壼<E88DB3>譛滓耳闕撰シ?
*/
static async sendDingTalkAlert(message: string, level: 'info' | 'warn' | 'error') {
if (process.env.NODE_ENV !== 'production') return
const webhook = process.env.DINGTALK_WEBHOOK_URL
if (!webhook) return
// 蜿鷹∝芦髓蛾忠鄒?
await fetch(webhook, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
msgtype: 'text',
text: { content: `[${level.toUpperCase()}] ${message}` }
})
})
}
/**
* 謨ー謐ョ蠎楢ソ樊磁蜻願ュヲ<EFBDAD><EFBDA6>80%髦亥シ<C280><EFBDBC>
*/
static async checkAndAlertDBConnection() {
const current = await getDatabaseConnectionCount()
const max = config.dbMaxConnections
const usage = (current / max) * 100
if (usage > 80) {
await this.sendDingTalkAlert(
`笞<><E7AC9E><EFBFBD> 謨ー謐ョ蠎楢ソ樊磁謨ー蜻願ュヲ<EFBDAD>?{current}/${max} (${usage.toFixed(1)}%)`,
'warn'
)
}
}
}
*謌先悽<EFBFBD>? ツ・0<EFBDA5>磯忠髓牙<E9AB93>雍ケ<E99B8D><EFBDB9>
<EFBFBD>搭 蛻帑ク壼<EFBDB8>譛滓耳闕先婿譯茨シ域サ扈難シ?
笨?菴ソ逕ィ<E98095>磯峺謌先悽<E58588>?
| 譛榊苅 | 螳樒鴫譁ケ蠑<EFBFBD> | 謌先悽 | 迥カ諤? |
|---|---|---|---|
| 譌・蠢礼尅謗ァ | Winston + 髦ソ驥御コ全LS<4C>亥<EFBFBD>雍ケ鬚晏コヲ<EFBDBA><EFBDA6> | ツ・0 | 笨?蟾イ螳樒<E89EB3>? |
| *蛛・蠎キ譽譟? | /health 遶ッ轤ケ + SAE閾ェ蟶ヲ逶第而 | ツ・0 | 笨?蟾イ螳樒<E89EB3>? |
| 莉サ蜉。髦溷<EFBFBD> | MemoryQueue<EFBFBD>域悽蝨ー<EFBFBD><EFBFBD>/DatabaseQueue<75>井コ醍ォッ<EFBDAB><EFBDAF> | ツ・0 | 笨?蟾イ螳樒<E89EB3>? |
| 驟咲スョ邂。逅<EFBFBD> | env.ts + SAE邇ッ蠅<EFBDAF>序驥<E5BA8F> | ツ・0 | 笨?蟾イ螳樒<E89EB3>? |
| 髞呵ッッ蜻願ュヲ | 髓蛾忠Webhook<EFBFBD>亥庄騾会シ<EFBFBD> | ツ・0 | <EFBFBD>搭 蜿ッ騾牙ョ樒<EFBDAE>? |
諤サ謌先悽<EFBFBD><EFBFBD> ツ・0-50/譛?
笶?證ゆク崎エュ荵ー
| 譛榊苅 | 蜴溷屏 | 菴墓慮髴隕? |
|---|---|---|
| 髦ソ驥御コ閃SE | 謌台サャ譏ッ蜊穂ス灘コ皮畑<EFBFBD>御ク肴弍蠕ョ譛榊<EFBFBD>? | 1-2蟷エ蜷趣シ域楔譫<E6A594>合郤ァ荳コ蠕ョ譛榊苅<E6A68A><E88B85> |
| 髦ソ驥御コ羨RMS | 蝓コ遑逶第而雜ウ螟滂シ梧オ<EFBFBD>㍼蟆<EFBFBD> | 6荳ェ譛<EFBFBD>-1蟷エ蜷趣シ域オ<E59F9F><EFBDB5>?10荳?螟ゥ<E89E9F><EFBDA9> |
<EFBFBD>売 蜊<>コァ霍ッ蠕<EFBDAF>ァ<EFBFBD><EFBDA7>
Phase 1<>壼ス灘燕髦カ谿オ<E8B0BF><EFBDB5>0-6荳ェ譛茨シ俄ュ<E4BF84> 邇ー蝨ィ
*豬<EFBFBD>㍼隗<EFBFBD>ィ。<EFBFBD>? 譌・豢サ<1000<30>悟ケカ蜿?100
*謗ィ闕先婿譯茨シ?
笨?Winston譌・蠢<EFBDA5> + 髦ソ驥御コ全LS<4C>亥<EFBFBD>雍ケ鬚晏コヲ<EFBDBA><EFBDA6>
笨?/health蛛・蠎キ譽譟?
笨?MemoryQueue莉サ蜉。髦溷<E9ABA6>
笨?邂蜊慕噪Metrics逶第而
笨?髓蛾忠蜻願ュヲ<EFBDAD>亥庄騾会シ<E4BC9A>
*謌先悽<EFBFBD>? ツ・0-50/譛?
Phase 2<>壼ソォ騾溷「樣柄譛滂シ?荳ェ譛<EFBDAA>-1蟷エ<E89FB7><EFBDB4>
*豬<EFBFBD>㍼隗<EFBFBD>ィ。<EFBFBD>? 譌・豢サ1000-10000<30>悟ケカ蜿?00-500
*蜊<EFBFBD>コァ蟒コ隶ョ<EFBFBD>?
笨?蜊<>コァ蛻ーDatabaseQueue<75>井ササ蜉。謖∽ケ<E288BD>喧<EFBFBD>?
笞<><E7AC9E><EFBFBD> 閠<>剔ARMS蝓コ遑迚茨シ域潔驥丈サ倩エケ<EFBDB4>?
笞<><E7AC9E><EFBFBD> 蠅槫刈Redis郛灘ュ假シ磯剄菴札B蜴句鴨<E58FA5>?
笞<><E7AC9E><EFBFBD> 蠅槫刈CDN<44>亥刈騾滄撕諤∬オ<E288AC>コ撰シ<E692B0>
*謌先悽<EFBFBD>? ツ・500-1000/譛?
Phase 3<>壽<EFBFBD>辭滓悄<E6BB93>?蟷?<3F>?
*豬<EFBFBD>㍼隗<EFBFBD>ィ。<EFBFBD>? 譌・豢サ>10荳<30>シ悟ケカ蜿<EFBDB6>>1000
*蜊<EFBFBD>コァ蟒コ隶ョ<EFBFBD>?
笞<EFBFBD><EFBFBD><EFBFBD> 閠<>剔MSE<53>亥ヲよ棡諡<E6A3A1><E8ABA1>荳コ蠕ョ譛榊苅<E6A68A><E88B85>
笨?雍ュ荵ーARMS荳謎ク夂沿<E5A482>域キア蠎ヲ諤ァ閭ス蛻<EFBDBD>梵<EFBFBD>?
笨?蠅槫刈Redis髮<73>セ、<EFBDBE>磯ォ伜庄逕ィ<E98095>?
笨?蠅槫刈RDS蜿ェ隸サ螳樔セ具シ郁ッサ蜀吝<E89C80>遖サ<E98196><EFBDBB>
*謌先悽<EFBFBD>? ツ・2000-5000/譛?
<EFBFBD>識 譛扈亥サコ隶?
笨?蛻帑ク壼<EFBDB8>譛滂シ育鴫蝨ィ<E89DA8><EFBDA8>
荳埼怙隕∬エュ荵ーMSE蜥窟RMS<EFBFBD>悟次蝗<EFBFBD><EFBFBD><EFBFBD>
-
*譫カ譫<EFBFBD>ク榊源驟?
- MSE髱「蜷大セョ譛榊苅<EFBFBD>梧<EFBFBD>莉ャ譏ッ蜊穂ス灘コ皮<EFBFBD>?
- ARMS髱「蜷大、ァ豬<EFBFBD>㍼<EFBFBD>梧<EFBFBD>莉ャ豬<EFBFBD>㍼蟆?
-
謌先悽莨伜<EFBFBD>
- 闃ら怐<EFBFBD>堋?00-1500/譛?
- 邏ッ隶。<EFBFBD>堋?0,000-18,000/蟷?
-
邇ー譛画婿譯郁カウ螟<EFBFBD>
- 謌台サャ逧?荳ェ蝓コ遑隶セ譁ス讓。蝮<EFBDA1>
- Winston譌・蠢<EFBFBD> + SLS
- 蛛・蠎キ譽譟?+ 邂蜊慕尅謗?
-
*蜿ッ蜷守サュ蜊<EFBFBD>コ?
- 髫冗捩豬<EFBFBD>㍼蠅樣柄蜀崎ッ<EFBFBD>シ?
- 譫カ譫<EFBFBD>合郤ァ譌カ蜀崎<EFBFBD>剔
<EFBFBD>売 譖ソ莉」譁ケ譯茨シ域耳闕撰シ<E692B0>
遶句叉菴ソ逕ィ<EFBFBD>亥<EFBFBD>雍ケ<EFBFBD>会シ?
-
髦ソ驥御コ全LS<EFBFBD>域律蠢玲恪蜉。<EFBFBD><EFBFBD> - 蜈崎エケ鬚晏コヲ蜀?
- 謾カ髮<EFBFBD>inston譌・蠢<EFBFBD>
- 譌・蠢玲衍隸「蜥悟<EFBFBD>譫?
- 邂蜊慕噪蜻願ュヲ隗<EFBFBD><EFBFBD>
-
SAE閾ェ蟶ヲ逶第而 - 蜈崎エケ
- CPU/蜀<>ュ倡尅謗ァ
- HTTP隸キ豎らサ溯ョ。
- 螳樔セ句▼蠎キ迥カ諤?
-
髓蛾忠蜻願ュヲ<EFBFBD>亥庄騾会シ<EFBFBD> - 蜈崎エケ
- 蜈ウ髞ョ髞呵ッッ騾夂衍
- 謨ー謐ョ蠎楢ソ樊磁蜻願ュ?
- 莉サ蜉。螟ア雍・騾夂衍
6荳ェ譛亥錘隸<EFBFBD>シー<EFBFBD><EFBFBD>
-
*螯よ棡豬<EFBFBD>㍼>1荳?螟?
- 閠<EFBFBD>剔ARMS蝓コ遑迚茨シ域潔驥丈サ倩エケ<EFBFBD>?
-
螯よ棡髴隕∵究蛻<EFBFBD>セョ譛榊苅
- 閠<EFBFBD>剔MSE豕ィ蜀御クュ蠢<EFBFBD>
<EFBFBD>投 蟇ケ豈疲サ扈楢。?
| 扈エ蠎ヲ | 謌台サャ逧<EFBFBD>婿譯? | MSE + ARMS | 扈楢ョコ |
|---|---|---|---|
| *譫カ譫<EFBFBD>源驟榊コ? | 笨?螳檎セ趣シ亥黒菴灘コ皮畑<E79AAE><E79591> | 笶?荳榊源驟搾シ亥セョ譛榊苅<E6A68A><E88B85> | 謌台サャ閭懷<EFBFBD> |
| *蜉溯<EFBFBD>螳梧紛諤? | 笨?蝓コ遑螳梧紛 | 笨?蜉溯<E89C89>蠑コ螟ァ | 蝓コ遑螟溽畑 |
| 謌先悽 | 笨?ツ・0-50/譛? | 笶?ツ・800-1500/譛? | 謌台サャ閭懷<EFBFBD> |
| 螳樊命髫セ蠎ヲ | 笨?邂蜊? | 笞<EFBFBD><EFBFBD><EFBFBD> 髴隕∝ュヲ荵? | 謌台サャ閭懷<EFBFBD> |
| *蜿ッ謇ゥ螻墓? | 笨?蜿ッ蜊<EFBDAF>コ? | 笨?蠑? | 蟷ウ謇<EFBFBD> |
| 蛻帑ク壼<EFBFBD>譛滄ら畑 | 笨?螳檎セ<E6AA8E> | 笶?荳埼ょ粋 | 謌台サャ閭懷<EFBFBD> |
<EFBFBD>汐 陦悟勘蟒コ隶ョ
笨?遶句叉謇ァ陦鯉シ亥<EFBDBC>雍ケ莨伜喧<E4BC9C><E596A7>
-
驟咲スョ髦ソ驥御コ全LS譌・蠢玲恪蜉。<EFBFBD>?0蛻<30>帖<EFBFBD>?
- SAE謗ァ蛻カ蜿ー蠑蜷ッ譌・蠢鈴㊦髮?
- 驟咲スョ譌・蠢玲衍隸「
- 隶セ鄂ョ邂蜊募相隴ヲ<EFBFBD>亥ヲる漠隸ッ謨ー>10/蛻<>帖<EFBFBD>?
-
*豺サ蜉<EFBFBD>髓蛾忠蜻願ュヲ<EFBFBD>亥庄騾会シ<EFBFBD>30蛻<EFBFBD>帖<EFBFBD>?
- 蛻帛サコ髓蛾忠鄒、譛コ蝎ィ莠コ
- 豺サ蜉<EFBFBD>
common/monitoring/alerting.ts - 蜈ウ髞ョ髞呵ッッ蜿鷹∝芦髓蛾忠
-
*莨伜喧逶第而謖<EFBFBD><EFBFBD><EFBFBD>シ?0蛻<30>帖<EFBFBD>?
- 螳悟埋
Metrics.recordApiLatency() - 螳壽悄隶ー蠖募<EFBFBD>髞ョ謖<EFBFBD><EFBFBD><EFBFBD>
- 譌・蠢苓セ灘<EFBFBD>萓ソ莠惨LS蛻<EFBFBD>梵
- 螳悟埋
笶?證ゆク肴鴬陦鯉シ郁鰍逵∵<E980B5>譛ャ<E8AD9B><EFBDAC>
- 笶?雍ュ荵ー髦ソ驥御コ閃SE<53>郁鰍逵<E9B08D>?00/譛茨シ<E88CA8>
- 笶?雍ュ荵ー髦ソ驥御コ羨RMS<4D>郁鰍逵<E9B08D>?00-1000/譛茨シ<E88CA8>
<EFBFBD>套 6荳ェ譛亥錘螟崎ッ?
- 隸<EFBFBD>シー豬<EFBFBD>㍼蠅樣柄諠<EFBFBD><EFBFBD>
- 隸<EFBFBD>シー逶第而髴豎ょ序蛹?
- 蜀ウ螳壽弍蜷ヲ雍ュ荵ーARMS
- 隸<EFBFBD>シー譏ッ蜷ヲ髴隕∝セョ譛榊苅譫カ譫<EFBFBD>シ<EFBFBD>SE<EFBFBD>?
<EFBFBD>直 扈吝<E68988>遲冶<E586B6>噪荳蜿・隸<EFBDA5>
*蛻帑ク壼<EFBFBD>譛滂シ御ク埼怙隕∬エュ荵ーMSE蜥窟RMS縲?
*逅<EFBFBD>罰<EFBFBD>?
- 謌台サャ逧<EFBFBD>渕遑隶セ譁ス蟾イ扈剰ヲ<EFBFBD>尠莠<EFBFBD><EFBFBD>ク蠢<EFBFBD>怙豎?
- 闃ら怐ツ・10,000-18,000/蟷エ逧<EFBDB4><E980A7>譛ャ
- 豬<EFBFBD>㍼隗<EFBFBD>ィ。荳埼怙隕∽シ∽ク夂コァ逶第而
- 蜿ッ莉・蝨ィ謌宣柄蜷主<EFBFBD>蜊<EFBFBD>コ?
*鬟朱勦<EFBFBD>? 譫∽ス趣シ域<EFBDBC>莉ャ譛牙ョ梧紛逧<E7B49B>尅謗ァ蜥梧律蠢嶺ス鍋ウサ<EFBDB3>?
*蟒コ隶ョ<EFBFBD>? 謚願鰍逵∫噪雍ケ逕ィ謚募<E8AC9A>蛻ーLLM隹<4D>畑謌先悽蜥悟クょ惻謗ィ蟷?
*譁<EFBFBD>。」霍ッ蠕<EFBFBD>シ? docs/08-鬘ケ逶ョ邂。逅<EFBDA1>/04-謚譛ッ蜀ウ遲?2025-11-18-MSE荳拶RMS驥<53>エュ蜀ウ遲門<E981B2>譫<EFBFBD>.md
*蜀ウ遲也サ楢ョコ<EFBFBD>? 蛻帑ク壼<EFBDB8>譛滉ク崎エュ荵ーMSE蜥窟RMS<4D>御スソ逕ィ邇ー譛牙<E8AD9B>雍ケ譁ケ譯?
*螟崎ッ<EFBFBD>慮髣エ<EFBFBD>? 6荳ェ譛亥錘<E4BAA5><E98C98>2025蟷?譛茨シ画<EFBDBC>豬<EFBFBD>㍼遯∫<E981AF>?荳?螟ゥ譌カ
扈エ謚、閠<EFBFBD>シ<EFBFBD> 謚譛ッ蝗「髦?