Amazon ConnectãšLambdaãçµã¿åãããŠãåŸ ã¡æéãé³å£°ã¡ãã»ãŒãžã§è¿ãâã³ãŒã«ããã¯
ããã«ã¡ã¯ãä»åãååã«åŒãç¶ãAmazon Connectã«ã€ããŠã§ãã
ååãç°¡åãªã³ãŒã«ã»ã³ã¿ãŒãããŒãäœæãããªãã¬ãŒã¿ã«å€éšããã®çä¿¡ãç¹ããããã«èšå®ããŸããã
ä»åã¯ãã®ãããŒãç·šéããLambdaãšçµã¿åãããŠæ··éæã«ãªãã¬ãŒã¿ã«ã€ãªãããŸã§ã®åŸ ã¡æéãé³å£°ã¡ãã»ãŒãžã§è¿ããããã³ãŒã«ããã¯ãããããä»çµã¿ãäœã£ãŠããããšæããŸãã
Lambdaãšã¯
ä»ååŸ ã¡æéãé³å£°ã¡ãã»ãŒãžã§è¿ãåŠçãè¡ãã«ããã£ãŠãLambdaã䜿ããŸãã
Lambdaãšã¯ãAWSãæäŸãããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãµãŒãã¹ã§ãã管çäžèŠã§ãä»»æã®ã¢ããªãããã¯ãšã³ããµãŒãã¹ã§ä»®æ³çã«ã³ãŒããå®è¡ããããšãå¯èœã§ãã
äŸãã°Lambdaã¯ãããªæãã®ããšãåºæ¥ãŸãã
ã»ã€ãã³ããããªã¬ãŒã«ãã¡ã€ã«åŠç(S3ãªã©)
ã»ãã°ã®ç£èŠ
ã»ããŒã¿ã®æœåºã倿
ã»å¥ã®AWSãµãŒãã¹ãèµ·åããã
ã»APIãªã¯ãšã¹ãã«ããããã¯ãšã³ãåŠç
ãµãŒããŒã¬ã¹ãªã®ã§ããããã®åŠçãå®éã«åããããããã°ã©ã ã ããéçºããã°è¯ãããã¡ãã¡ç°å¢ãæ§ç¯ããå¿ èŠããªãã®ãç¹åŸŽã§ãã
ç¡ææ ã§å©çšã§ãããµãŒãã¹ã«ã€ããŠã¯ãå ¬åŒãµã€ãã§æ¬¡ã®ããã«èšèŒãããŠããŸããã
AWS Lambda ã®ç¡æå©çšæ ã«ã¯ãïŒãæããšã« 100 äžä»¶ã®ç¡æãªã¯ãšã¹ããããã³ 40 äž GB-ç§ã®ã³ã³ãã¥ãŒãã£ã³ã°æéããããããå«ãŸããŸãã
100äžä»¶ãŠåãŸããã§ããã(ç¬)
ãªã®ã§å人å©çšçã§ããã°ãç¡ææ ã§ãååããããããã®ãµãŒãã¹ãæäŸãããŠããŸãã
åŸ ã¡æéãé³å£°ã¡ãã»ãŒãžã§è¿ãèšå®
ããã§ã¯ãèšå®ããŠãããŸããããè¿ã£ãŠããé³å£°ã¡ãã»ãŒãžã®ã€ã¡ãŒãžã¯ãããªæãã§ãã
ã»åŸ ã¡äººæ°ïŒäºº(ãã¥ãŒã空)ã®å Žå
åªä»ãªãã¬ãŒã¿ã«ãç¹ãããŸãããã®ãŸãŸã§ãåŸ ã¡ãã ããã
ã»åŸ ã¡äººæ°ãïŒäººã®å Žå(ãã¥ãŒã®äžã«ïŒäººãã)
èª ã«ç³ãèš³ããããŸãããåªä»æ··ã¿åã£ãŠãããŸãã
çŽ10ååŸã«ãªãã¬ãŒã¿ã«ãç¹ãããŸãããã®ãŸãŸã§ãåŸ ã¡ãã ããã
ã³ãŒã«ããã¯ãåžæãããæ¹ã¯ïŒãæŒããŠãã ããã
ãã¥ãŒã«ããåŸ ã¡äººæ°ã«å¿ããŠãé³å£°ã¡ãã»ãŒãžãåŸ ã¡æéãæ¡å ããŠãããŸãã
Lambdaã®èšå®
ãŸãLambdaã§é¢æ°ãäœæããŸãã
AWS管çã³ã³ãœãŒã«ã«ãã°ã€ã³ãããµãŒãã¹äžèЧãããLambdaããéžæããã颿°ã®äœæããã¯ãªãã¯ããŸãããã®åŸãäžããäœæããæŒããä»»æã®é¢æ°ã®ååãå ¥åããŠèšèªã¯ãNode.js 12.xããéžæããŸãã
èšèªéžæãŸã§åºæ¥ãããã颿°ã®äœæããæŒããŸãã
äœæã§ãããã以äžã®ãããªç»é¢ã«ãªããšæããŸãã
èµ€æ ã®éšåã«ä»¥äžã®ã³ãŒããèšå ¥ããŸãã
exports.handler = async (event) => {
const busyTime = 5; // ïŒä»¶ã®å¯Ÿå¿æéã5åãšä»®å®ãã
const agentsStaffedCount = event['Details']['Parameters']['Metrics.Agents.Staffed.Count']; // 察å¿å¯èœãªãšãŒãžã§ã³ãæ°
const queueCount = event['Details']['Parameters']['Metrics.Queue.Size']; // çŸåšãã¥ãŒã§åŸ
æ©äžã®åŒæ°
let message = 'åªä»ããªãã¬ãŒã¿ã«ãç¹ãããŸãããã®ãŸãŸã§ãåŸ
ã¡äžããã'
if (queueSize != 0) {
const waitTime = queueCount*busyTime / agentsStaffedCount; //äºæ³åŸ
ã¡æé
message = "ç³ãèš³ããããŸãããåªä»æ··ã¿ãã£ãŠãããŸããçŽ" + waitTime + "ååŸã«ãªãã¬ãŒã¿ã«ãç¹ãããŸããã³ãŒã«ããã¯ãåžæãããå Žåã¯1ãæŒããŠãã ããã"
}
return {message: message};
};ã³ãŒãã®ïŒè¡ç®ã«eventãšæžããŠãããŸãããAmazon Connectã§ã¯ãeventã®äžã«é話å 容ã«é¢ããæ å ±ãå ¥ã£ãŠããŠãLambdaã«JSONã§éãããŠããŸãã
äŸãã°äžèšã¿ãããªæãã§ããAdreessã®éšåã«çºä¿¡å ã®ãŠãŒã¶ã®é»è©±çªå·ãèšèŒãããŠããŸãã
{
'Details': {
'ContactData': {
'Attributes': {},
'Channel': 'VOICE',
'ContactId': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'CustomerEndpoint': {
'Address': '8190012345678',
'Type': 'TELEPHONE_NUMBER'
},
'InitialContactId': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'InitiationMethod': 'INBOUND',
'InstanceARN': 'arn:aws:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'MediaStreams': {
'Customer': {
'Audio': None
}
},
'PreviousContactId': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'Queue': {
'ARN': 'arn:aws:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'Name': 'test-queue',
'OutboundCallerId': {
'Address': '+8190012345678',
'Type': 'TELEPHONE_NUMBER'
}
},
'SystemEndpoint': {
'Address': '+8190012345678',
'Type': 'TELEPHONE_NUMBER'
}
},
'Parameters': {}
},
'Name': 'ContactFlowEvent'
}å ã»ã©èµ€æ ã®äžã«æžããã³ãŒãã§ã¯ããã®eventã®äžã®ã察å¿å¯èœãªãšãŒãžã§ã³ãããã¥ãŒã®åŸ ã¡äººæ°ã衚ãéšåãåç §ããåŸ ã¡æéãèšç®ããŠããŸãã
ãããŠmesssageã«ãé³å£°ã¡ãã»ãŒãžã§è¿ãããå
容ãå®çŸ©ããŠããŸããåŸ
ã¡äººæ°ãïŒäººã§ããã°ãã®ãŸãŸé»è©±ãç¹ãæšãè¿ããåŸ
ã¡äººæ°ãïŒäººä»¥äžããå Žåã¯ããã«å¿ããåŸ
ã¡æéãè¿ããŸããã³ãŒã«ããã¯åžæã®å Žåã®ãã€ã€ã«æäœæç€ºãè¿ããŸãã
ã³ãŒããèšå
¥ããããç»é¢å³äžã«ãããä¿åããæŒããŸãã
ããã§Lambdaäžã§è¡ãèšå®ã¯å®äºã§ãã
åãåãããããŒèšå®
次ã«åãåãããããŒã§èšå®ãè¡ããŸãã
ãŸããã¥ãŒã®ã¡ããªã¯ã¹ãååŸããããã«ãããã¥ãŒã¡ããªã¯ã¹ã®ååŸããããã¯ãé 眮ããŸããäžèº«ã¯ãããªæãã§èšå®ããŠãã ããã
次ã«å
ã»ã©äœæããLambda颿°ãåãåãããããŒã«çµã¿èŸŒã¿ãŸãã
ãLambda颿°ãåŒã³åºãããããã¯ãé
眮ããã颿°ãéžæãããã®é
ç®ããå
ã»ã©äœæãã颿°ãéžæãããã以éã¯ä»¥äžã®ããã«èšå®ããŸãã
æåŸã«ã³ãŒã«ããã¯ã®èšå®ãããŸãã
ä»åã¯ããŠãŒã¶ãåžæããå Žåã«ã®ã¿ã³ãŒã«ããã¯ãããåŠçã«ããŠããŸãã(åžæããå Žåã¯ãã€ã€ã«ã®ïŒãæŒã)
ãŠãŒã¶ã®Pushæäœã§åŠçãåå²ãããããã«ã¯ãã顧客ã®å ¥åãååŸããããããã¯ã䜿çšããŸããäžèº«ã¯ä»¥äžã®ããã«èšå®ããŠãã ããã
ãããã¹ãèªã¿äžããŸãã¯ãã£ããããã¹ããã®éšåã«ãå ã»ã©Lambdaã®ã³ãŒãã®äžã§åºãŠãã倿°ã®ãmessageããèšå®ããŸãããã®èšå®ã«ãã£ãŠãLambdaã§å®çŸ©ããã¡ãã»ãŒãžå 容ãé³å£°ãèªã¿äžããŠãããããã«ãªããŸãã
ãããŠãªãã·ã§ã³ã«ãïŒããèšå®ããŸãããŠãŒã¶ããïŒããæŒããå Žåã®åŠçã®åå²ãè¡ãããã§ãã
ãããŠãã³ãŒã«ããã¯çªå·ãèšå®ããããããã¯ãé 眮ãã以äžã®ããã«èšå®ããŸãã
ãããŠæåŸã«ããã¥ãŒãžè»¢éããããã¯ãé 眮ããäžèº«ã§ãã³ãŒã«ããã¯ãã¥ãŒãžã®è»¢éããéžæããã°å®äºã§ãã
åãåãããããŒå šäœå³
ãããŒã®å
šäœå³ã¯äžèšã®éãã§ãã
ã¡ããªã¯ã¹ã®å€ã«å¿ããŠåŸ
ã¡æéæ¡å
ãªã©ã®ã¡ãã»ãŒãžãLambdaã§äœæããã¢ããŠã³ã¹ããŸãããããŠãŠãŒã¶ã®æäœã«åãããŠåŠçãåå²ããããã¥ãŒã«å
¥ãããã«ãªã£ãŠããŸãã
ãŸãšã
ä»åã¯åŸ ã¡æéãé³å£°ã¡ãã»ãŒãžã§è¿ããããã³ãŒã«ããã¯èšå®ããããããŸãããä»åã¯ïŒäººãããã®åŸ ã¡æéãïŒåãšä»®å®ããŸãããããããªæãã§å€§ãŸãã«ã§ãåŸ ã¡æéãæ¡å ããŠãããããšãã客ããã«ãšã£ãŠã¯ã¡ãã£ãšããããããããããªãã§ããã
ãŸãã³ãŒã«ããã¯ãåºæ¥ãã®ã§ãåŸ ã¡æéãé·ãã£ãå Žåã«ã¯ã³ãŒã«ããã¯ãåžæããããšããéžæè¢ãåºæ¥ãã®ãè¯ãã§ããã
ãã®ãããªèšå®ãç°¡åã«åºæ¥ãŠããŸãã®ããAmazon Connectã®å€§ããªé åã ãšæããŸãããã£ãšäžæã掻çšã§ããã°ãåŸæ¥å¡ã«ãšã£ãŠãã客æ§ã«ãšã£ãŠã䟿å©ãªã³ãŒã«ã»ã³ã¿ãŒãæ§ç¯ã§ãããããããŸãããã
ä»åãæåŸãŸã§èªãã§ããã ããŠããããšãããããŸããã





