如何使用ARM創建Teams Bot所需要的Azure資源

相信很多devops已經全面開始使用ARM來創建azure資源了,ARM有很多方便的地方,比如簡單易學,Infrastructure as Code,但是深入使用ARM開始會發現一些有待改進的方面。這篇文章主要是分享一下我在做Teams app的時候使用ARM來創建資源的經驗,以及遇到的一些問題。希望大家以后遇到類似問題可以少走彎路。

在一個teams bot中有一個比較特殊的azure資源需要創建,就是Bot service,一年多前你還可以在另一個微軟的獨立網站上創建bot,但是現在已經全部整合到azure的大旗下了。

?

這個資源主要用來干什么?它主要是用來作為Teams和你的api service的通訊橋梁。它會從Teams(也可以是其他,比如skype)里接受消息,然后抽象成一個統一的bot通信數據模型后,傳遞給你的api service,當你的api service完成處理后,它又將返回的信息,發送回Teams。所以這個資源必不可少。

BotService

我們先看看它長什么樣子,注意一點:目前在azure上這個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]"}
},

有幾點需要注意:

  • apiVersion目前最新是2018-07-12,我就使用了這個版本。Microsoft.BotService botServices template reference
  • location是global,這個和一般的azure resource不同,需要特別注意
  • endpoint就是你的api服務的endpoint
  • msaAppId是你的Microsoft application的id,這個需要另外申請,我這里是作為外部參數傳入的
  • developerAppInsightKey,為了以后調試方便,所以創建了一個application insight,然后把key配置到這里

大家需要注意一點,當使用ARM創建完bot service后,默認情況下沒有打開Teams通道。這點我研究了很久也沒有找到答案,可能在以后版本中會支持這個,如果大家知道如何做,也請留言告訴我。我有幾次忘記打開這個,然后就發現teams發送不了消息到我的api服務,而且也沒有詳細的出錯信息。

所以我們需要登入azure portal,然后手動打開teams通道,完成后就一切就緒,可以和你的api服務進行通信了。

BotService

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278024.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278024.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278024.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Bot Service自帶的數據分析統計功能

每個產品上線后都希望自己能實時看到多少用戶在使用我的產品,我的服務,有多少使用量,有沒有遇到問題。市面上做用戶數據、行為分析的公司也不少,但是大多數都需要我們修改一些代碼來集成第三方的sdk庫。 我的teams app上線后也急…

LuckyDraw bot有幸被提名為微軟2019的People's Choice app

上個月微軟進行了一個全世界提名活動,目標是選出微軟2019年度People’s Choice app。 很幸運,我的LuckyDraw bot得到了來自世界各地使用者的投票,其中也包含Teams中國社區和很多朋友的支持。 https://developer.microsoft.com/en-us/microso…

圖靈社區 和 大家網

http://www.ituring.com.cn/ http://club.topsage.com/ 大家論壇 http://www.topsage.com/ http://www.dxbbba.com/ 大學生必備吧 轉載于:https://www.cnblogs.com/onelikeone/p/9023267.html

Teams內嵌的卡片image的限制

我的LuckyDraw上線后收到了不少有價值的反饋,其中有一部分是針對圖片的,有一些用戶說他們填寫了image的url,但是圖片顯示不出來。 實際上這個問題在我提交這個應用到微軟審核團隊的時候,審核團隊也提出了類似問題。但這個是Teams本…

Python 面向對象編程(進階部分)

靜態方法: 通過 staticmethod 裝飾器即可把其裝飾的方法變為一個靜態方法。普通的方法,可以在實例化后直接調用,并且在方法里可以通過self.調用實例變量或類變量,但靜態方法是不可以訪問實例變量或類變量的,一個不能訪…

分享實錄|爭議不斷地EOS,我們如何才能理性看待?

1 EOS基本介紹 EOS是Block.One公司正在研發的一個區塊鏈底層公鏈系統,目的是解決現有的區塊鏈應用性能低、安全性差、開發難度高以及過度依賴手續費的問題,實現分布式應用的性能擴展。EOS提供帳戶,身份驗證,數據庫,異步…

Teams的Incoming Webhook

我在去年的一篇文章里介紹過Teams的outgoing webhook,這個可以用來實現一個簡單的用戶和service對話機制。 Teams除了outgoing webhook以外,還有一個incoming webhook,從名字上我們也可以立刻知道,這個webhook是用來處理進入Team…

Comet OJ - Contest #0題解

傳送門 菜爆了……總共只有一道題會做的……而且也沒有短裙好難過 為啥必須得有手機才能注冊賬號啊喂……歧視么…… \(A\) 解方程 推一下柿子大概就是 \[x-\sqrt{n}yz2\sqrt{yz}\] 如果\(\sqrt{n}\)是無理數,那么就是 \[xyz,{n\over 4}yz\] 那么要滿足\(n\)必須是\…

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊

tornado 08 數據庫-ORM-SQLAlchemy-表關系和簡單登錄注冊 引言 #在數據庫,所謂表關系,只是人為認為的添加上去的表與表之間的關系,只是邏輯上認為的關系,實際上數據庫里面的表之間并沒有所謂的表關系 一、一對一表關系 Module #需…

Teams的manifest文件開始支持多語言

Teams發展速度飛快,Teams app的manifest文件schema也迎來了版本1.5,在這個版本里,很大的一個改進是支持多語言。 讓我們一起來看看,如何在manifest文件里配置多語言。 1,我們需要先把manifest文件設置成v1.5 {"…

白白的(baibaide)

白白的(baibaide) 有一個長度為 $n$ 的序列 $a_1, a_2, \dots, a_n$,一開始每個位置都是白色。如果一個區間中每個位置都是白色,則稱這是一個白白的區間。如果一個白白的區間向左或向右延長后都不是白白的區間了,則稱這…

如何利用Python網絡爬蟲爬取微信朋友圈動態--附代碼(下)

前天給大家分享了如何利用Python網絡爬蟲爬取微信朋友圈數據的上篇(理論篇),今天給大家分享一下代碼實現(實戰篇),接著上篇往下繼續深入。一、代碼實現1、修改Scrapy項目中的items.py文件。我們需要獲取的數…

使用Adaptive cards來構建Teams app的界面

Teams app的task module十分好用,當用戶點擊了一個卡片上的按鈕是可以在Teams里彈出一個對話框,對話框的內容可以是開發人員自己的一個網頁頁面,或者是adaptive card。 在我的LuckyDraw bot里,我比較了這兩種的優勢和劣勢&#xf…

Boosting(提升方法)之GBDT

一、GBDT的通俗理解 提升方法采用的是加法模型和前向分步算法來解決分類和回歸問題,而以決策樹作為基函數的提升方法稱為提升樹(boosting tree)。GBDT(Gradient Boosting Decision Tree)就是提升樹算法的一種,它使用的基學習器是C…

CC攻擊原理及防范方法

一、 CC攻擊的原理: CC攻擊的原理就是攻擊者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。CC主要是用來消耗服務器資源的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候&#xff0c…

Team photo的新api

Graph API的更新速度真是快,今年9月中旬又增加了關于Team photo的兩個新的api。 https://docs.microsoft.com/en-us/graph/api/team-get-photohttps://docs.microsoft.com/en-us/graph/api/team-update-photo 今天就給大家介紹一下如何使用這兩個新的api。 實際上說…

BZOJ 1047: [HAOI2007]理想的正方形 單調隊列瞎搞

題意很簡明吧? 枚舉的矩形下邊界和右端點即右下角,來確定矩形位置; 每一個縱列開一個單調隊列,記錄從 i-n1 行到 i 行每列的最大值和最小值,矩形下邊界向下推移的時候維護一下; 然后在記錄的每一列的最大值…

分享到Teams

在今年三月份末,Teams的官方文檔推出了一個新功能:將網頁(一個URL)分享到Teams里。 也就是說開發人員現在可以很方便的開發一個頁面,頁面里有一個Teams的圖標,當訪問此頁面的最終用戶點擊這個圖標后可以將…

xshell使用xftp傳輸文件和使用pure-ftpd搭建ftp服務

xshell使用xftp傳輸文件 首先安裝xftp,然后建立會話,步驟和xshell一樣,在使用的時候用CtrlALTf呼出,左邊是windows桌面,右面是linux,雙擊或拖拽都可以實現命令互傳。 使用pure-ftpd搭建ftp服務 首先安裝yum…

MySQL命令行查詢亂碼解決方法

轉自Agoly的博客,原文鏈接https://www.cnblogs.com/qmfsun/p/4846467.html 感謝博主Agoly這篇文章說的很詳細很透徹。 MySQL會出現中文亂碼的原因不外乎下列幾點:1.server本身設定問題,例如還停留在latin1 2.table的語系設定問題(包含charact…