Botframework-solutions: TypeScript Skill์—์„œ ์ธ์ฆ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 07์›” 20์ผ  ยท  38์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/botframework-solutions

์–ด๋–ค ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›๋‚˜์š”?

TypeScript ๊ฐ€์ƒ ๋น„์„œ ๋ฐ ๊ธฐ์ˆ 

์ด๊ฒƒ์€ ์–ด๋–ค ์–ธ์–ด๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ

๋ฌด์Šจ ์ผ์ด์•ผ?

์ธ์ฆ์„ ์‹œ๋„ํ•  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜: DialogContext.beginDialog(): ID๊ฐ€ 'AuthPrompt'์ธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
WaterfallStepContext์—์„œ.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:123:23)
Generator.next์—์„œ ()
D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:7:71
์ƒˆ๋กœ์šด ์•ฝ์†์—์„œ ()
__awaiter์—์„œ (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:3:12)
WaterfallStepContext.beginDialog(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:119:16)
MultiProviderAuthDialog.firstStep์—์„œ (D:\home\site\wwwroot\node_modules\bot-solutions\lib\authentication\multiProviderAuthDialog.js:75:34)
WaterfallDialog์—์„œ.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:192:48)
Generator.next์—์„œ ()
D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:7:71

์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ฐ€์ƒ ์–ด์‹œ์Šคํ„ดํŠธ ๋ฐ ๊ธฐ์ˆ ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ฌ์—์„œ MultiProviderAuthDialog ํ™œ์„ฑํ™”
์ธ์ฆ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Azure Active Directory v2๋กœ ์ธ์ฆ

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ?

๋กœ๊ทธ์ธ์„ ์œ„ํ•œ ๋กœ๊ทธ์ธ ์นด๋“œ ๋ฐ›๊ธฐ

๋กœ๊ทธ, ์˜ค๋ฅ˜ ์ถœ๋ ฅ ๋“ฑ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ค๋ฅ˜: DialogContext.beginDialog(): ID๊ฐ€ 'AuthPrompt'์ธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
WaterfallStepContext์—์„œ.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:123:23)
Generator.next์—์„œ ()
D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:7:71
์ƒˆ๋กœ์šด ์•ฝ์†์—์„œ ()
__awaiter์—์„œ (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:3:12)
WaterfallStepContext.beginDialog(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:119:16)
MultiProviderAuthDialog.firstStep์—์„œ (D:\home\site\wwwroot\node_modules\bot-solutions\lib\authentication\multiProviderAuthDialog.js:75:34)
WaterfallDialog์—์„œ.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:192:48)
Generator.next์—์„œ ()
D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:7:71

์Šคํฌ๋ฆฐ์ƒท์ด๋‚˜ ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

Skills Bot Services Kobuk bug customer-replied-to customer-reported in-progress

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@Batta32 ๋‹ค์‹œํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด 1.0 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ์Šคํ‚ฌ์—์„œ ์—ฐ๊ฒฐ ์„ค์ •์„ ์œ ์ง€ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ธ์ฆ์ด ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VA๊ฐ€ ํ† ํฐ ์‘๋‹ต์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์Šคํ‚ฌ์— ์ „๋‹ฌํ•˜๋Š” ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  38 ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @tomSauret847 ! ์—…๋ฐ์ดํŠธ๋˜๋Š” ๋Œ€๋กœ ๋ฐ”๋กœ ์—ฐ๋ฝ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š.

์•ˆ๋…•ํ•˜์„ธ์š” @tomSauret847 - ์ง€์—ฐ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ TypeScript ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์žฌํ˜„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ธ์ฆ์šฉ์œผ๋กœ ํ‘œ์‹œ๋œ ๊ธฐ์ˆ  ๋Œ€ํ™” ์ƒ์ž ์˜ ์ค„ ์ฃผ์„์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  2. OAuthPromptSettings ๋ฐฐ์—ด์„ MultiProviderAuthDialog ์ƒ์„ฑ์ž์— ์ „๋‹ฌ
  3. appsettings.oauthConnections ์˜ ์†์„ฑ ์— botSettings
  4. AADv2 ์—ฐ๊ฒฐ ์ถ”๊ฐ€
  5. Azure์—์„œ ๋“ฑ๋ก์— ๋Œ€ํ•œ AADv2 ์—ฐ๊ฒฐ ์„ค์ •

์—…๋ฐ์ดํŠธ๋˜๋Š” ๋Œ€๋กœ ๋ฐ”๋กœ ์—ฐ๋ฝ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š.

image

์•ˆ๋…•ํ•˜์„ธ์š” @tomSauret847 - ์ด ์ปค๋ฐ‹ ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ • ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ bot-solutions ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฌธ์ œ์˜€์œผ๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„์ „ 1.0 ๊ณผ ํ•จ๊ป˜ ๋ฆด๋ฆฌ์Šค๋  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์˜ˆ์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋™์•ˆ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด

  1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ 0.8์— ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋œ ์ด ๋ถ„๊ธฐ๋ฅผ ํ™•์ธ ํ•˜์„ธ์š”.
  2. ๋ด‡ ์†”๋ฃจ์…˜ ํด๋”๋กœ ์ด๋™
  3. npm install ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  4. npm run build ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†”๋ฃจ์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
  5. npm pack ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ .tgz ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์œ„์น˜์— bot-solutions-version.tgz๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  6. Skill ๋ด‡์—์„œ ์ƒ์„ฑ๋œ tgz๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ๋ด‡์˜ package.json์— ์žˆ๋Š” bot-solutions ์ฐธ์กฐ๋ฅผ "bot-solutions": "^1.0.0" ์—์„œ "bot-solutions": "<PATH_TO_TGZ>" ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  7. ์Šคํ‚ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ํ™•์ธ

image

์—ฌ๋Ÿฌ๋ถ„์˜ ๋‹ต๋ณ€์— ๊ท€๊ธฐ์šธ์ด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š.

@Batta32 ๋ฅผ ์ฐพ์•„์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค์—์„œ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š”
์˜ค๋ฅ˜: ์ด๋ฆ„์ด {connection name}์ธ ์—ฐ๊ฒฐ ์„ค์ •์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์Šคํ‚ฌ์— ๋Œ€ํ•œ SSO๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ typescript ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ธฐ์ˆ ์—์„œ ์ธ์ฆ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?
์•„๋‹ˆ๋ฉด C# ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์„ค๋ช…๋œ ๋Œ€๋กœ ๋‹จ์ผ SSO๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ธฐ์ˆ ์— ์—ฐ๊ฒฐ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋กœ๊ทธ์ธ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋กœ๊ทธ์ธ์„ ์™„๋ฃŒํ•œ ํ›„ ํ† ํฐ์„ ๋‹ค์‹œ ๋ฐ›์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. VA์—์„œ ๋‹จ์ผ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋˜๋Š” ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฐ ๊ธฐ์ˆ ์— ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@tomSauret847 ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋˜๋Š” ๋Œ€๋กœ ๋ฐ”๋กœ ์—ฐ๋ฝ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š!

์•ˆ๋…•ํ•˜์„ธ์š” @tomSauret847 - ๋ฌธ์ œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์žฌํ˜„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€์ด๊ธฐ ๋•Œ๋ฌธ์— name ์žฌ์‚ฐ oauthConnections ์˜ appsettings.json ๋ฐ›๋Š” ๋‹ค๋ฅด๋‹ค connectionName ์žฌ์‚ฐ OAuthPromptSettings ๋‹น์‹ ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ณ„์† ๊ฒ€ํ† ํ•˜๊ณ  ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์งˆ๋ฌธ์„ ๋ถ„์„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋˜๋Š” ๋Œ€๋กœ ๋ฐ”๋กœ ์—ฐ๋ฝ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š.

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•œ ๋‹จ๊ณ„ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ด ๋Œ“๊ธ€ ์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด
  2. ๊ทธ๋Ÿฐ ๋‹ค์Œ์ด ์ฃผ์„ ์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค
  3. ํ™•์ธ ๊ทธ name ์žฌ์‚ฐ oauthConnections ์˜ appsettings.json ๋ฐ›๋Š” ๋‹ค๋ฅด๋‹ค connectionName ์žฌ์‚ฐ OAuthPromptSettings ์‚ฌ์šฉํ•˜๋Š”
  4. ์Šคํ‚ฌ์„ ์‹œ์ž‘ํ•˜๊ณ  "์ƒ˜ํ”Œ ๋Œ€ํ™” ์ƒ์ž ์‹คํ–‰"์„ ์ž…๋ ฅํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

_connectionName๊ณผ ์ด๋ฆ„์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์žฌํ˜„๋ฉ๋‹ˆ๋‹ค_
image

_๋ฌธ์ œ ์žฌํ˜„_
image

์•ˆ๋…•ํ•˜์„ธ์š” @tomSauret847

์—ฌ์ „ํžˆ typescript ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ธฐ์ˆ ์—์„œ ์ธ์ฆ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ?

TypeScript Skill ๋ฒ„์ „ 1.0 ์ด ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ ๊ฐ TypeScript Skill์—์„œ ์ธ์ฆ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ๋ฉด C# ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์„ค๋ช…๋œ ๋Œ€๋กœ ๋‹จ์ผ SSO๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

TypeScript์šฉ SSO๋Š” TypeScript ๋ฒ„์ „ 1.0์ด ์•„์ง ์ถœ์‹œ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— C# Skills์— ๋Œ€ํ•ด ์„ค๋ช…๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” ๐Ÿ˜Š.

@ tomSauret847 - ์—๋Ÿฌ Error: Could not find Connection Setting with name {connection name} ๋˜๊ธฐ ๋•Œ๋ฌธ์— name ์žฌ์‚ฐ oauthConnections ์˜ appsettings ๋ฐ›๋Š” ์ƒ์ด connectionName ์žฌ์‚ฐ OAuthPromptSettings ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‘ ์†์„ฑ์ด ๋™์ผํ•œ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์‚ฌํ•ญ ์€ ์œ„์˜

@Batta32 ์ด ๋ฌธ์ œ ๋ฅผ

์ธ์ฆ์— ๋Œ€ํ•œ ์ด ์ˆ˜์ • ์‚ฌํ•ญ์€ 1.0 ๋ฆด๋ฆฌ์Šค ์ด์ „์— NPM์— ๊ฒŒ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ ๊ฒŒ์‹œ๋œ NPM ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ด VA๋ฅผ ํ”„๋กœ๋•์…˜์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์ „์— ์ด ์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ฒŒ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋Œ€๋‹ต์—์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tomSauret847 - ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! TypeScript ๋ฒ„์ „ 1.0์˜ PR์— ๋‹ค์Œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ํ™๋ณด #3583: [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • ํ™๋ณด #3584: [TypeScript][Virtual Assistant] Implement changes in Virtual Assistant to 1.0 release
  • ํ™๋ณด #3585: [TypeScript][Skill] Implement changes in Skill to 1.0 release

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋Š” ๋Œ€๋กœ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ TypeScript์—์„œ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@tomSauret847 - ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ์ค‘์— Skill State ๋ณ€์ˆ˜๊ฐ€ _undefined_๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ปค๋ฐ‹์— ํ†ตํ•ฉํ•œ Skill State ์ ‘๊ทผ์ž์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” PR #3561์„ ๊ฐ€์ด๋“œ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋ฉด ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” TypeScript v1.0์ด ๋ณ‘ํ•ฉ๋˜๋Š” ์ฆ‰์‹œ ์ˆ˜์ •๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. feature/southworks/test-fix-auth-skill :

๊ทธ๋™์•ˆ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋ด‡ ์†”๋ฃจ์…˜ ํด๋”๋กœ ์ด๋™
  2. npm install ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  3. npm run build ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†”๋ฃจ์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
  4. npm pack ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ .tgz ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์œ„์น˜์— bot-solutions-version.tgz๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  5. ์Šคํ‚ฌ ์ƒ˜ํ”Œ ํด๋”๋กœ ์ด๋™
  6. Skill Sample ๋ด‡์—์„œ ์ƒ์„ฑ๋œ tgz๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ๋ด‡์˜ package.json์— ์žˆ๋Š” bot-solutions ์ฐธ์กฐ๋ฅผ "bot-solutions": "^1.0.0" ์—์„œ "bot-solutions": "<PATH_TO_TGZ>" ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  7. npm install ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  8. npm run build ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†”๋ฃจ์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
  9. ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ํ™•์ธ

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์˜ ๋Œ€๋‹ต์—์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜Š

_์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” SkillState ๋ณ€์ˆ˜_
image

_์ธ์ฆ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ ์ค‘_
image

@Batta32 ๋‹ค์‹œํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด 1.0 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ์Šคํ‚ฌ์—์„œ ์—ฐ๊ฒฐ ์„ค์ •์„ ์œ ์ง€ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ธ์ฆ์ด ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VA๊ฐ€ ํ† ํฐ ์‘๋‹ต์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์Šคํ‚ฌ์— ์ „๋‹ฌํ•˜๋Š” ์œ„์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@Batta32 ์šฐ๋ฆฌ๋Š” 2๊ฐ€์ง€ ๊ธฐ์ˆ ์— ์ธ์ฆ์„ ์„ค์ •ํ–ˆ์œผ๋ฉฐ Teams ์ฑ„๋„์—์„œ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์งํ†ต ์ฑ„๋„์ด ์ธ์ฆ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šคํ‚ฌ์€ ๋กœ๊ทธ์ธ ์„ฑ๊ณต ํ›„ ํ† ํฐ์„ ๋‹ค์‹œ ๋ฐ›์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์งํ†ต ์ฑ„๋„์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” "๋งค์ง ์ฝ”๋“œ"๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๋„๋ก ํ–ฅ์ƒ๋œ ์ธ์ฆ ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ณ  ํ™œ์„ฑํ™”ํ•œ ์ƒ˜ํ”Œ ์ง์ ‘ ํšŒ์„  ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์—๋Š” ์ž‘๋™ํ–ˆ์ง€๋งŒ ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ํ›„์—๋Š” ์Šคํ‚ฌ์ด ๋” ์ด์ƒ ํ† ํฐ ์‘๋‹ต์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์„ ์ทจ์†Œํ•˜๊ณ  ํ•ด๋‹น ๋Œ€ํ™” ์ƒ์ž๋กœ ๋Œ์•„๊ฐ€๋ฉด ํ† ํฐ์ด ํ‘œ์‹œ๋˜๊ณ  ๋Œ€ํ™”๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ๋Š” ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@tomSauret847 ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์—ฐ๋ฝ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

์‹œ๋‚˜๋ฆฌ์˜ค ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด:

  1. "์ƒ˜ํ”Œ ์งํ†ต ๊ณ ๊ฐ"์ด๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?
  2. ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  3. "๋งค์ง ์ฝ”๋“œ"๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

@Batta32 ์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์žˆ๋Š” botbuilder-solutions ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ง์ ‘ ๋ผ์ธ ์ƒ˜ํ”Œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
"๋งˆ๋ฒ•์˜ ์ฝ”๋“œ"๋Š” ์ด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ ์งˆ๋ฌธ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ด‡ ์‚ฌ์šฉ์ž๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ธ์ฆํ•œ ํ›„ ๋Œ€ํ™”์— ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฝ”๋“œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋ด‡ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ด ๋‹จ๊ณ„๋ฅผ ์ œ๊ฑฐํ•˜๋ฏ€๋กœ ์ธ์ฆ๋งŒ ํ•„์š”ํ•˜๊ณ  ํ† ํฐ์ด ๋ฐฐํ›„์—์„œ ๋ด‡์œผ๋กœ ๋‹ค์‹œ ์ „๋‹ฌ๋  ๋•Œ ๋Œ€ํ™”๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

@tomSauret847์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์—ฌ๊ธฐ์—์„œ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š!

@tomSauret847 ๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”, ์ธ์ฆ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ ํ• 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Virtual Assistant์— ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ  Skill๊ณผ ์ง์ ‘ ๋Œ€ํ™”ํ•˜๋ฉด์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•˜์…จ๋‚˜์š”?
  2. VA๋ฅผ ํ†ตํ•ด Skill์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ VA์—์„œ๋„ Directline ์ฑ„๋„์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๊นŒ? Azure AD v2 ์ธ์ฆ, ํ–ฅ์ƒ๋œ ์ธ์ฆ์— ๋˜ ๋ฌด์—‡์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?
  3. "์Šคํ‚ฌ์„ ์ทจ์†Œํ•˜๊ณ  ํ•ด๋‹น ๋Œ€ํ™” ์ƒ์ž๋กœ ๋Œ์•„๊ฐ€๋ฉด ํ† ํฐ์ด ํ‘œ์‹œ๋˜๊ณ  ๋Œ€ํ™”๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"์€(๋Š”) ๋ฌด์Šจ ๋œป์ธ๊ฐ€์š”?

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•œ ์„ค์ •์ž…๋‹ˆ๋‹ค:

  • [email protected]๋กœ ์ƒ์„ฑ๋œ TypeScript ์Šคํ‚ฌ
  • ํ•ด๋‹น ์Šคํ‚ฌ์— ๋Œ€ํ•œ Azure AD v2 ์œ ํ˜• ์ธ์ฆ ์„ค์ •
  • ์Šคํ‚ฌ์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์ธ์ฆ์œผ๋กœ ํ™œ์„ฑํ™”๋œ ์งํ†ต ์ฑ„๋„
  • ํŠน์ • ์‚ฌ์šฉ์ž ID("dl_xxxx")๋กœ ์„ค์ •๋œ ์ €์žฅ์†Œ์˜ Directline ์›น ์ƒ˜ํ”Œ
  • Directline ํด๋ผ์ด์–ธํŠธ์˜ appsettings.json์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "BotName": "skillbot-name",
    "DirectLineSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "EnableDirectLineEnhancedAuthentication": true,
    "SpeechServiceRegionIdentifier": "",
    "SpeechServiceSubscriptionKey": ""
}

์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ํ•œ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Directline ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•ด Skill์— ์—ฐ๋ฝํ•˜๊ธฐ
  2. ๋กœ๊ทธ์ธ ๋Œ€ํ™” ์ƒ์ž ํ˜ธ์ถœ("์ƒ˜ํ”Œ ๋Œ€ํ™” ์ƒ์ž ์‹คํ–‰")
  3. ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ("๋งค์ง ์ฝ”๋“œ" ํ•„์š” ์—†์Œ)
  4. ์šฐ๋ฆฌ๋Š” ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๊ณ  ๋ด‡์ด ์šฐ๋ฆฌ๋ฅผ ๋งž์ดํ•ฉ๋‹ˆ๋‹ค
  5. ๊ทธ ์ดํ›„๋กœ 1๋‹จ๊ณ„์™€ 2๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋กœ๊ทธ์ธ๋˜๊ณ  ๋ด‡์ด ์ธ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์˜ ๋Œ€๋‹ต์—์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@matiasroldan6 ์ด ๋ฌธ์ œ ๋ฅผ

  1. VNET ๋‚ด๋ถ€์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ธฐ์ˆ ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ฑ„๋„์—์„œ ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  2. ์šฐ๋ฆฌ๋Š” VA๋ฅผ ํ†ตํ•ด ๊ธฐ์ˆ ์— ๋„๋‹ฌํ•˜๊ณ  VA์—๋งŒ ์ง์ ‘ ๋ผ์ธ ์ฑ„๋„์„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. Skill ๋ฐ VA์˜ ์—ฐ๊ฒฐ ์†์„ฑ์—์„œ Azure AD V2 ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. VA์— ํ–ฅ์ƒ๋œ ์ธ์ฆ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋กœ๊ทธ์ธ ์นด๋“œ๊ฐ€ ์ œ์‹œ๋˜๋ฉด ๋กœ๊ทธ์ธ์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๋ด‡์ด ๋ฉˆ์ถ”๊ณ  ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ทจ์†Œํ•˜๋ฉด ํ† ํฐ์ด ์žˆ๋Š” ์ธ์ฆ์ด ์žˆ๋Š” ์Šคํ‚ฌ๋กœ ๋Œ์•„๊ฐ€ ๋กœ๊ทธ์ธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์—๋Š” 2๊ฐœ์˜ ์Šคํ‚ฌ์ด ์žˆ์œผ๋ฉฐ ํ•˜๋‚˜์—์„œ ์ธ์ฆํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ ์Šคํ‚ฌ์—์„œ๋„ ์ธ์ฆ๋ฉ๋‹ˆ๋‹ค.
    ๋‹ค์Œ์€ VA์˜ ์งํ†ต ์ฑ„๋„ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์Šคํฌ๋ฆฐ์ƒท์ž…๋‹ˆ๋‹ค.
    image

์ง์ ‘ ํšŒ์„  ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉ์ž ID๊ฐ€ "dl_xxxx"๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Skill ๋ฐ VA์˜ ์—ฐ๊ฒฐ์— Azure AD v2 ์ธ์ฆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์งํ†ต ํด๋ผ์ด์–ธํŠธ์˜ appsettings.json์€ ์œ„์™€ ๋™์ผํ•˜๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํ‚ฌ์— ์งํ†ต ์ฑ„๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ VA์—์„œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๋Œ€ํ™” ๋ฉ”์‹œ์ง€๊ฐ€ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ๋ฟ์ธ ํŒ€ ์ฑ„๋„์—์„œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€ํ™˜์—์„œ 1๋ถ„ ํ›„๊นŒ์ง€ ์ฒซ ๋ฒˆ์งธ stepContext.context.sendActivity('message') ์ „์†ก์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ธ์ฆ์ด ํฌํ•จ๋œ ๋Œ€ํ™” ์ƒ์ž์™€ Teams ์ฑ„๋„์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์— ์žˆ๋Š” bot-solutions 1.0์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค .

์Šคํ‚ฌ๊ณผ VA์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋” ํ•„์š”ํ•˜์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

์•ˆ๋…•ํ•˜์„ธ์š” @tomSauret847๋‹˜ , ์ด ๋ฌธ์ œ์˜ ๋ฐœ์ƒ์„ ์žฌํ˜„ ํ• 
์šฐ๋ฆฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋ฌธ์ œ๋Š” Directline ์ฑ„๋„์— ์„ค์ •๋œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜ ์ฃผ์†Œ ์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Directline ํŒ์—…์—๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜ ๊ฐ€ _https_ ๋˜๋Š” _localhost_์˜ ๊ฒฝ์šฐ _http_์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹น์‹ ์—๊ฒŒ ์‹คํŒจํ•œ ์œ ์ผํ•œ ์ฑ„๋„๋กœ Directline์„ ์„ค๋ช…ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ท€ํ•˜์˜ ๋ฌธ์ œ์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜๋กœ ์„ค์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค.
๋ด‡ ์ฃผ์†Œ(๋กœ์ปฌ๋กœ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒฝ์šฐ https://xxxxx.azurewebsites.net ๋˜๋Š” https://xxxx.ngrok.io)
ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ(์˜ˆ: http://localhost)
image

์ด๊ฒƒ์„ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • 1.0 ๊ฐ€์ƒ ๋„์šฐ๋ฏธ

    • ์ข…์†์„ฑ์—์„œ Bot-Solutions 1.0

    • Azure AD v2 ์ธ์ฆ ์‚ฌ์šฉ

    • ํ–ฅ์ƒ๋œ ์ธ์ฆ์œผ๋กœ ํ™œ์„ฑํ™”๋œ ์งํ†ต ์ฑ„๋„

    • Directline ์ฑ„๋„์˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์›๋ณธ์€ https://localhost :xxxx(_xxxx_๋Š” Directline ํด๋ผ์ด์–ธํŠธ ์ฃผ์†Œ์ž„) ๋ฐ ๋ด‡ ์ฃผ์†Œ(https://xxxxx.azurewebsites.net ๋˜๋Š” https://xxxx.ngrok.io(๋กœ์ปฌ ์—ฐ๊ฒฐ์šฉ))๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ). ๋งˆ์ง€๋ง‰ ๋ฉ”์‹œ์ง€์— ์ฒจ๋ถ€ํ•œ ์‚ฌ์ง„์˜ ์„ค์ •์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

  • 1.0 ์Šคํ‚ฌ

    • ์ข…์†์„ฑ์—์„œ Bot-Solutions 1.0

    • Azure AD v2 ์ธ์ฆ ์‚ฌ์šฉ

    • ๊ฐ€์ƒ ๋„์šฐ๋ฏธ์— ์—ฐ๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์ „ ๋ฉ”์‹œ์ง€์™€ ๋™์ผํ•œ ๊ตฌ์„ฑ์œผ๋กœ ์‚ฌ์šฉ์ž ID ๋ฐ ํ–ฅ์ƒ๋œ ์ธ์ฆ์œผ๋กœ ์„ค์ •๋œ Directline ์›น ํด๋ผ์ด์–ธํŠธ .

์šฐ๋ฆฌ์˜ ์žฌํ˜„ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Directline ์ƒ˜ํ”Œ์„ ๋„์šฐ๋ฏธ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค("์ƒ˜ํ”Œ ๋Œ€ํ™” ์ƒ์ž ์‹คํ–‰").
  3. ์ธ์ฆ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„์—๋Š” ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์œผ๋ฉฐ ์ธ์ฆ์„ ์ถ”๊ฐ€๋กœ ํ˜ธ์ถœํ•˜๋ ค๊ณ  ํ•ด๋„ ๋ด‡์ด ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    image
  1. ํ๋ฆ„์„ ์ทจ์†Œํ•˜๊ณ  1๋‹จ๊ณ„์™€ 2๋‹จ๊ณ„๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ธ์ฆ๋˜๊ณ  ๋ด‡์ด ์ธ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์— ๊ท€๋ฅผ ๊ธฐ์šธ์ด๊ฒ ์Šต๋‹ˆ๋‹ค.

@matiasroldan6 ์ด ๋ฌธ์ œ ๋ฅผ

@tomSauret847์— ๋‹ต์žฅ์„ ๋ณด๋‚ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ„์† ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š.

๋ด‡ ์†”๋ฃจ์…˜(PR #3583) ๋ฒ„์ „ 1.0์„ ๊ณ ๋ คํ•˜์—ฌ azurewebsites.net ์—”๋“œํฌ์ธํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์งˆ๋ฌธ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฒŒ์‹œ๋œ ์›น ์•ฑ ๋ด‡(๊ฐ€์ƒ ๋„์šฐ๋ฏธ)์˜ Messaging endpoint ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  2. ๊ฒŒ์‹œ๋œ ๊ฐ€์ƒ ๋„์šฐ๋ฏธ ๋ฐ ๊ธฐ์ˆ ์— ๋ด‡ ์†”๋ฃจ์…˜ ๋ฒ„์ „ 1.0์„ ์–ด๋–ป๊ฒŒ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๊นŒ? ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ .tgz ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ฌ๋ฐ”๋ฅธ์ง€?
  3. ์ง์ ‘ ํšŒ์„  ์ฑ„๋„ ๊ตฌ์„ฑ์—์„œ ์œ„์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋Š” localhost ๋์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@Batta32 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

  1. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ˜ธ์ŠคํŠธ ๊ตฌ์„ฑ์—์„œ VA์˜ ๋ฉ”์‹œ์ง• ๋์ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์šฐ๋ฆฌ๋Š” 1.0 ๋ฆด๋ฆฌ์Šค์—์„œ ๋ณต์ œ๋œ .tgz ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. .tgz ํŒจํ‚ค์ง€๋กœ ์ด๋™ํ•˜๊ธฐ ์ „์— node_modules ํด๋”์™€ package-lock.json ํŒŒ์ผ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ package.json ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•œ ๋‹ค์Œ npm install์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. ์šฐ๋ฆฌ๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์™€ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ๋™์ผํ•œ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ํ† ํฐ์ด ๋Œ€ํ™”๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋Œ€ํ™”๊ฐ€ ์ทจ์†Œ๋˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘๋˜๋ฉด ํ† ํฐ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

@tomSauret847๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@tomSauret847๋‹˜ , ์ด ๋ฌธ์ œ์˜ ๋ฐœ์ƒ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์žฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ์‘๋‹ต ์—์„œ ๋ฐœ๊ฒฌํ•œ ํ•œ ๊ฐ€์ง€๋Š” ๋ด‡ URL์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ฃผ์„ ๋ฐ ์ด ๋ฌธ์„œ ์— ๋”ฐ๋ฅด๋ฉด ์ฑ„ํŒ… ํด๋ผ์ด์–ธํŠธ์˜ URL์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
image

์šฐ๋ฆฌ์˜ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„:

  1. Directline ์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Virtual Assistant์— ๋ฌธ์˜
  2. ๊ธฐ์ˆ  ํ˜ธ์ถœ("์ƒ˜ํ”Œ ๋Œ€ํ™” ์ƒ์ž ์‹คํ–‰")
  3. ์Šคํ‚ฌ์— ์˜ํ•ด ์ธ์ฆ ๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋˜๋ฉด ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค(์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Œ)
  4. 2๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ์ธ์ฆ ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  ์ž๋™์œผ๋กœ ์ธ์ฆ๋ฉ๋‹ˆ๋‹ค.

Microsoft ํŒ€ ๋ฐ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•˜๊ณ  ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๊ณ„์† ๊ฒ€ํ† ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
image

@tomSauret847 ์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ•ํ™”๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ €ํฌ ์ธก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. Kudu(https://.scm.azurewebsites.net/ZipDeployUI) <WEB_APP_BOT_NAME> ๋ฅผ ๋ด‡ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พธ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? node_modules , lib ๋ฐ ๋‚˜๋จธ์ง€ ํด๋”๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  2. ๋ด‡์˜ ๋ฉ”์‹œ์ง• ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํ”„๋กœ๋•์…˜ ์—”๋“œํฌ์ธํŠธ(azurewebsites.net)์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
  3. ํ”„๋กœ๋•์…˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Virtual Assistant๋ฅผ Skills์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๊นŒ?
  4. ๊ฒŒ์‹œ๋œ Skill์˜ Skill Manifest์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ PR #3601 ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ์šฐ๋ฆฌ์˜ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค :

  • 1.0 TypeScript ๊ฐ€์ƒ ๋„์šฐ๋ฏธ ์ƒ˜ํ”Œ(PR #3584 )
  • 1.0 TypeScript ๊ธฐ์ˆ  ์ƒ˜ํ”Œ(PR #3585 )
  • 1.0 ๋ด‡ ์†”๋ฃจ์…˜(PR #3583 )
  • ์ƒ˜ํ”Œ ์งํ†ต ์ฑ„๋„
  • ๊ฐ€์ƒ ๋„์šฐ๋ฏธ์—์„œ ๊ตฌ์„ฑ๋œ ํ–ฅ์ƒ๋œ ์ธ์ฆ

์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

  1. PR #3601 ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ‚ฌ์— ์ ์šฉ
  2. ๋‘ ์ƒ˜ํ”Œ์— Bot-Solutions 1.0 .tgz ํŒŒ์ผ์„ ์ €์žฅํ•  ํด๋”๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. ๋ด‡์˜ "bot-solutions":ย ".//TGZ//bot-solutions-1.0.0.tgz" ์™€ ๊ฐ™์€ ๋กœ์ปฌ tgz์— ๋Œ€ํ•œ ๋ด‡ ์†”๋ฃจ์…˜ ์ฐธ์กฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
  4. deploy.ps1 ์‚ฌ์šฉํ•˜์—ฌ ๋ด‡ ๋ฐฐํฌ
  5. remoteManifest๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์ƒ˜ํ”Œ์„ Botskills์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  6. AADv2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์ƒ˜ํ”Œ์˜ OAuth ์—ฐ๊ฒฐ ์„ค์ • ๊ตฌ์„ฑ
  7. ๊ฐ ์ƒ˜ํ”Œ์˜ ์•ฑ ์„ค์ •์—์„œ oauthConnections ๊ตฌ์„ฑ
  8. publish.ps1 ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์ƒ˜ํ”Œ ๋ชจ๋‘ ๊ฒŒ์‹œ
  9. Virtual Assistant์—์„œ Directline ์ฑ„๋„ ํ™œ์„ฑํ™”
  10. ๊ฐ€์ƒ ๋„์šฐ๋ฏธ์˜ ์ง์ ‘ ํšŒ์„ ์—์„œ ํ–ฅ์ƒ๋œ ์ธ์ฆ ํ™œ์„ฑํ™”
  11. Directline ์ƒ˜ํ”Œ์„ Virtual Assistant์— ์—ฐ๊ฒฐ

    1. ์ฐธ๊ณ  : ๋Œ€ํ™”๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ์ด ํ–‰ ์„ ์ •์  GUID๋กœ ํ•˜์‹ญ์‹œ์˜ค .

  12. ๋งˆ์ง€๋ง‰์œผ๋กœ run sample dialog ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  13. ๋กœ๊ทธ์ธ ํ›„ Skill์—์„œ ์ด๋ฆ„์„ ๋ฌป์Šต๋‹ˆ๋‹ค.
  14. ํ–ฅ์ƒ๋œ ์ธ์ฆ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์šฐ๋ฆฌ๋Š” C #์„ ๋ด‡์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋‹จ๊ณ„๋ฅผ ํ™•์ธํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋„ˆ๋ฌด ์ž‘๋™ ํ™•์ธ.

์„ฑ์‹ฌ์„ฑ์˜๊ป ๋‹ต๋ณ€ํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š

_ํ–ฅ์ƒ๋œ ์ธ์ฆ ๊ตฌ์„ฑ_
image

_ํ–ฅ์ƒ๋œ ์ธ์ฆ ๋ฐ TypeScript ๋ด‡์„ ์‚ฌ์šฉํ•œ ์„ฑ๊ณต์ ์ธ ํ†ต์‹ _
auth fixed

_ํ–ฅ์ƒ๋œ ์ธ์ฆ ๋ฐ C# ๋ด‡์„ ์‚ฌ์šฉํ•œ ์„ฑ๊ณต์ ์ธ ํ†ต์‹ _
image

@VictorGrycuk ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‘๋‹ต์ด ๋Šฆ์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ธ์Šคํ„ด์Šค์—์„œ ์ธ์ฆ์ด ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ณณ์„ ์ขํ˜”์Šต๋‹ˆ๋‹ค.

VA /Skills์˜ ๊ฒฝ์šฐ ๋ฐฉํ™”๋ฒฝ์ด ์žˆ๋Š” ์•ฑ ๊ฒŒ์ดํŠธ์›จ์ด ๋’ค์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ•ํ™”๋œ ์ธ์ฆ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. VA ๋ฐ ํ•ด๋‹น ๊ตฌ์„ฑ ์™ธ๋ถ€์˜ ๊ธฐ์ˆ ์—์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ฑ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํ˜ผํ•ฉ์— ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ  ์ด๊ฒƒ์ด ํ† ํฐ์„ ์ฐจ๋‹จํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

App Gateway ๋’ค์— ์žˆ๋Š” ๋ด‡๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฉ‹์ง€๋‹ค @tomSauret847! App Gateway ๋’ค์— ์žˆ๋Š” ๋ด‡๊ณผ ํ•จ๊ป˜ ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒ€ํ† ํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ตฌ์™€ ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋Š” ์ฆ‰์‹œ ์—ฌ๊ธฐ์—์„œ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š.

์•ˆ๋…•ํ•˜์„ธ์š” @tomSauret847 , ์šฐ๋ฆฌ๋Š” ์•ฝ๊ฐ„์˜ ์กฐ์‚ฌ๋ฅผ ํ–ˆ๊ณ  ๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ์„ ์ƒ๊ฐํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค.

  1. Azure ๋˜๋Š” promise์˜ ์„œ๋ฒ„์— ๋ฐฐํฌ๋œ ๋ด‡์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ Azure ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒŒ์ดํŠธ์›จ์ด ์ž…๋‹ˆ๊นŒ?
  3. TypeScript ๋˜๋Š” C# ๋ด‡์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์ด์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด C# ๋ด‡์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์˜ ๋Œ€๋‹ต์—์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ™‚

@VictorGrycuk ์— ์‘๋‹ต

  1. Azure์— ๋ฐฐํฌ๋œ ๋ด‡์œผ๋กœ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•  ํ„ฐ๋„์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  2. ์˜ˆ, ๊ท€ํ•˜์˜ ๋งํฌ์— ์„ค๋ช…๋œ ๋Œ€๋กœ WAF์™€ ํ•จ๊ป˜ Azure ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ์ด๋“ค์€ TypeScript ๋ด‡(์ธ์ฆ์ด ์žˆ๋Š” VA ๋ฐ 2๊ฐœ์˜ ๊ธฐ์ˆ )์ž…๋‹ˆ๋‹ค. ๋™๊ธฐ ๋ฃจํ”„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•˜๊ธฐ ์œ„ํ•ด 1๊ฐœ์˜ C# ๊ธฐ์ˆ ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—๋Š” ์ธ์ฆ์ด ์—†์Šต๋‹ˆ๋‹ค.

@tomSauret847๋‹˜ , ์ง€์—ฐ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋’ค์— ๋ด‡์ด ์žˆ๋Š” Azure App Gateway์—์„œ ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์งˆ๋ฌธ :

  1. ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๊ณต๊ฐœ IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ Virtual Assistant์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ์˜ ํ…Œ์ŠคํŠธ์—์„œ ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค
  2. ํ–ฅ์ƒ๋œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์—†์ด VA

๊ตฌ์„ฑ ์š”์†Œ :

๊ตฌ์„ฑ :

  • ์ด ์ฃผ์„์— ์„ค๋ช…๋œ ๋Œ€๋กœ ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ƒ ๋„์šฐ๋ฏธ
  • ์ธ์ฆ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ€์ƒ ๋„์šฐ๋ฏธ์— ์—ฐ๊ฒฐ๋œ ๊ธฐ์ˆ 
  • ์œ„์™€ ๊ฐ™์€ ์ฃผ์„์— ๊ตฌ์„ฑ๋œ Direct Line
  • ์ด ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ๋ฐฐํฌ๋œ ๋ด‡์„ ๊ฐ€๋ฆฌํ‚ค๋Š” Application Gateway

์šฐ๋ฆฌ๋Š” ์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ณต์ œํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @VictorGrycuk ๊ท€ํ•˜์˜ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์€
๊ฒŒ์ดํŠธ์›จ์ด์˜ ๊ณต๊ฐœ IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ Virtual Assistant์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ์˜ ํ…Œ์ŠคํŠธ์—์„œ ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค

  • ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ VA์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ํ„ฐ๋„๋ง์ด ์—†์ง€๋งŒ ์›น ์ฑ„ํŒ…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VA๊ฐ€ ์Šคํ‚ฌ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋Œ€ํ™”๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

ํ–ฅ์ƒ๋œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์—†์ด VA๋ฅผ ํ†ตํ•ด ์Šคํ‚ฌ๊ณผ ์—ฐ๊ฒฐํ•˜๊ณ  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  • ์˜ˆ, ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ฆ์€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ–ฅ์ƒ๋œ ์ธ์ฆ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์›ํ™œํ•œ ํ†ตํ•ฉ์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

@tomSauret847 ๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ•ํ™”๋œ ์ธ์ฆ ์ด Azure Application Gateway ๋’ค์— ์žˆ๋Š” ๋ด‡์—์„œ ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ๋œ ๋ด‡์œผ๋กœ Azure Application Gateway๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ƒˆ ์„ค๋ช…์„œ๊ฐ€ ํฌํ•จ๋œ PR #3694 ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„ ์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ๋ฅผ

  1. ํ–ฅ์ƒ๋œ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ด‡์„ ๋ฐฐํฌํ•˜๋ ค๋ฉด ์ด ์„ค๋ช…์— ์„ค๋ช…๋œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.
  2. TypeScript ๋ด‡ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ ์—”๋“œ ํ’€์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  3. Directline ์ƒ˜ํ”Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋œ ์Šคํ‚ฌ์˜ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ
  4. ํ–ฅ์ƒ๋œ ์ธ์ฆ์ด ์ž‘๋™ํ•˜๊ณ  ์Šคํ‚ฌ ์ƒ˜ํ”Œ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Azure Application Gateway์˜ ๊ตฌ์„ฑ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ https://stackoverflow.com/questions/tagged/botframework ์—์„œ ์ œ์•ˆ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์œผ์‹œ๋‹ค๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‚.

@VictorGrycuk ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๊ฒŒ์‹œํ•œ ์ •๋ณด๋ฅผ ํ†ตํ•ด ์ž‘์—…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ ์ด ๋งํฌ ๊ฐ€ ๊นจ์กŒ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ธ๋‹ค.

tomSauret847 @ ๋•๋ถ„์—, ๊ทธ ๋งํฌ๋กœ ์ด์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค ํƒ€์ดํ”„ ๋ด‡๊ณผ ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๊ฑด๊ฐ• ํ”„๋กœ๋ธŒ๋ฅผ ๊ตฌ์„ฑ (๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด ์ด๋ฏธ์ง€ ๋ฌธ์„œ๊ฐ€ ๋ณ‘ํ•ฉ๋˜๋ฉด) master ์ง€์  ์„ค๋ช…์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, {{site.baseurl}} ์— URL์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

@peterinnesmsft - ํ™œ๋™์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @tomSauret847 ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•ด

๋˜ํ•œ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ๋ฉด https://stackoverflow.com/questions/tagged/botframework ์—์„œ ์งˆ๋ฌธํ•ด ์ฃผ์„ธ์š”

TypeScript ๋ฒ„์ „ 1.0์— ๋Œ€ํ•ด ๋‹ค์Œ PR์ด ๋ณ‘ํ•ฉ๋˜๋Š” ์ฆ‰์‹œ ์ „์ฒด ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

  • ํ™๋ณด #3583: [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • ํ™๋ณด #3584: [TypeScript][Virtual Assistant] Implement changes in Virtual Assistant to 1.0 release
  • ํ™๋ณด #3585: [TypeScript][Skill] Implement changes in Skill to 1.0 release

๋„์›€์„ ์ฃผ์‹  @Batta32๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ์„น์…˜์„ ์ž ์‹œ ๋ณด๋ฅ˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ์—ด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ Batta32 ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. typescript์šฉ SSO๋ฅผ ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ ๊ธฐ์ˆ ์ด ๋ฐฉํ™”๋ฒฝ ๋’ค์— ์žˆ๊ณ  ํ† ํฐ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. VA์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ „๋‹ฌํ•˜๋ฉด ํ† ํฐ์„ ์Šคํ‚ฌ์— ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ๋Œ€ํ™”๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. typescript์šฉ SSO๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์–ธ์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋„์›€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@tomSauret847๋‹˜ , SSO๋Š” ํ˜„์žฌ TypeScript 1.0 ๋ฒ„์ „์— ๋„์ž…๋˜์—ˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. TypeScript ๋ฒ„์ „ 1.0์˜ PR์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๋ ค๋ฉด ์Šน์ธ ๋ฐ ๋ณ‘ํ•ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ˜Š ์—…๋ฐ์ดํŠธ๋˜๋Š” ๋Œ€๋กœ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰