如何使用ARM创建Teams Bot所需要的Azure资源
相信很多devops已經(jīng)全面開始使用ARM來創(chuàng)建azure資源了,ARM有很多方便的地方,比如簡單易學(xué),Infrastructure as Code,但是深入使用ARM開始會發(fā)現(xiàn)一些有待改進(jìn)的方面。這篇文章主要是分享一下我在做Teams app的時(shí)候使用ARM來創(chuàng)建資源的經(jīng)驗(yàn),以及遇到的一些問題。希望大家以后遇到類似問題可以少走彎路。
在一個(gè)teams bot中有一個(gè)比較特殊的azure資源需要?jiǎng)?chuàng)建,就是Bot service,一年多前你還可以在另一個(gè)微軟的獨(dú)立網(wǎng)站上創(chuàng)建bot,但是現(xiàn)在已經(jīng)全部整合到azure的大旗下了。
?
這個(gè)資源主要用來干什么?它主要是用來作為Teams和你的api service的通訊橋梁。它會從Teams(也可以是其他,比如skype)里接受消息,然后抽象成一個(gè)統(tǒng)一的bot通信數(shù)據(jù)模型后,傳遞給你的api service,當(dāng)你的api service完成處理后,它又將返回的信息,發(fā)送回Teams。所以這個(gè)資源必不可少。
我們先看看它長什么樣子,注意一點(diǎn):目前在azure上這個(gè)Bot Channels Registration還不支持Export Template,所以還不能反向工程成ARM
{"name": "YourBotServiceName","type": "Microsoft.BotService/botServices","apiVersion": "2018-07-12","location": "global","tags": {"displayName": "Bot Service"},"sku": {"name": "F0"},"kind": "bot","dependsOn": ["[resourceId('Microsoft.Insights/components/', variables('appInsightsName'))]"],"properties": {"displayName": "LuckyDraw","endpoint": "https://api.yourapiservice.com/messages","msaAppId": "[parameters('microsoftAppId')]","developerAppInsightKey": "[reference(resourceId('Microsoft.Insights/components', variables('appInsightsName')), '2015-05-01').InstrumentationKey]"} },有幾點(diǎn)需要注意:
- apiVersion目前最新是2018-07-12,我就使用了這個(gè)版本。Microsoft.BotService botServices template reference
- location是global,這個(gè)和一般的azure resource不同,需要特別注意
- endpoint就是你的api服務(wù)的endpoint
- msaAppId是你的Microsoft application的id,這個(gè)需要另外申請,我這里是作為外部參數(shù)傳入的
- developerAppInsightKey,為了以后調(diào)試方便,所以創(chuàng)建了一個(gè)application insight,然后把key配置到這里
大家需要注意一點(diǎn),當(dāng)使用ARM創(chuàng)建完bot service后,默認(rèn)情況下沒有打開Teams通道。這點(diǎn)我研究了很久也沒有找到答案,可能在以后版本中會支持這個(gè),如果大家知道如何做,也請留言告訴我。我有幾次忘記打開這個(gè),然后就發(fā)現(xiàn)teams發(fā)送不了消息到我的api服務(wù),而且也沒有詳細(xì)的出錯(cuò)信息。
所以我們需要登入azure portal,然后手動(dòng)打開teams通道,完成后就一切就緒,可以和你的api服務(wù)進(jìn)行通信了。
總結(jié)
以上是生活随笔為你收集整理的如何使用ARM创建Teams Bot所需要的Azure资源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vary设置
- 下一篇: springboot 整合Oracle