With the move of Microsoft to disable the App Registration on the legacy portal we created the Bot for our MSTeams APP in Azure portal that is part of the 'Renewable E5 subscription'.But we could not able to set the Bot messaging end point url. Earlier we can able to set that from the MSTeams' App Studio's Bot section but now it is not there. https://dev.botframework.com/ asks us to create a Azure Bot service.
Is it necessary to create a Azure Bot service in order to use and set the Bot message End point ?
If not how can we set the Bot messaging End point without Azure Bot service?
It does seem, now that the functionality is removed from App Studio, that you need to work in the Azure Portal directly (that's all it was doing behind the scenes). This would require an Azure subscription, but you can use any one, so you don't necessarily require an Azure subscription for each team member.
It is important to note though, that the only thing you really need in Azure is a bot "registration". There are two options when creating a bot resource in Azure - one includes a full hosting option ("web app bot"), and associated costs (based on the options selected), and the other is just a "channel registration", which has no cost at all.
When the bot is created, you need to go to it's "Settings" screen, as shown here, where you set the messaging endpoint, but you also need to make sure to go to the "Channels" option on the left menu, and make sure Teams is added as a channel ("channel" here means a platform you want to use your bot on, like Teams, facebook, slack etc.). If your bot had been created in App Studio previously, it would not need the Teams channel added manually, but for new bots it will.
Yes, You need azure subscription. Now you can not create bot from botframework.com. Everything is moved to Azure.
Related
Currently there are two portal options to update the endpoint for a Teams Bot:
https://dev.teams.microsoft.com/bots (works intermittently)
https://dev.botframework.com/bots
How can we update this from the command line / with code?
I'm aware of the az bot commands (https://learn.microsoft.com/en-us/cli/azure/bot?view=azure-cli-latest) but this appears to be for managing resources deployed under 'Bot Services', and not bots created via the 'Bot Framework'.
Thanks.
I had a chat just last week with someone else about this - see How to add authentication to a Bot Framework v4 project without Azure Bot Service?
In essence, the "bot portal" is basically just provisioning things for you behind the scenes in the Azure portal in any case - I'd suggest rather just doing everything in Azure directly. In any, the Microsoft Bot "Framework" conceptually consists of two pieces - code samples + SDKs, and a backend core service that underlies every bot. As a result, bot "Framework" bots also have a "Bot Service" backend. Note that, by itself, this does not include hosting for the bot, just a central service registration to handle the traffic routing, security, etc.
Please have a read of the blog post I refer in that other question - it (hopefully) gives a good overview.
In answer to your question directly - az bot should be fine to use, specifically https://learn.microsoft.com/en-us/cli/azure/bot?view=azure-cli-latest#az-bot-update
Bot Framework SDK documentation says that Web App Bot is deprecated. But there is no information about the difference between development with Azure Bot and (deprecated) Web App Bot. What exact changes should be done if we migrate form one service (Web App Bot) to another (Azure Bot)?
In regards of other contributor's answer, I think main concept and
queries has not explained accordingly, so I felt it requires more
explanation in addition to clear the OP's main concern.
Questions: But there is no information about the difference between development with Azure Bot and (deprecated) Web App Bot.
The Bot Service behind Azure Bot and Web App Bot/Bot Channels Registration is the same; the change is in how the resources are
created that you use in your bot such as web apps, language
understanding, and more.
Rather than the one size fits all templates that the Web App Bot used,
Bot Framework Composer can be used to create resources for the Bot
with much more flexibility than the Web App Bot templates allowed.
Bot Channels Registration and Azure Bot are basically the same
capabilities renamed. The UX is slightly different in the Azure Portal
to help customers connect to the Bot Framework Composer.
Its clearly documented here in the official document you can get here
Questions: What exact changes should be done if we migrate form one service (Web App Bot) to another (Azure Bot)?
Currently migration from Web App BottoAzure Bot isn't supported.
If your Web App Bot isn't being used in production, you can delete
your old Web App Bot resource and reuse the bot name and app ID in a
new bot resource (after some time for the old record to get deleted).
The new Azure Bot is designed around creating your bot using
Composer, Bot Framework SDK, and so the gains from such a migration
would be minimal. You can get the official explanation here
Note:
Now you might be wondering, what about your existing Web app bot. Your bot and other resources will continue to work without any problem and you don't need to migrate your old web app bot in this aspect.
One question may arise,then why its been depricated or no longer be used?
The answer would be, Functionally though Azure Bot, Web App Bot, and
Bot Channels Registration all utilize the Bot Service in the same way
"under the hood". The Azure Bot path is easier, and more
configurable for developers in comparison of Web app bot
Hope above explanation will redeem your concern.
The Azure Bot is like the Bot Channel Registration. It is a global resource that identifies your bot to toher Azure resources and contains configurations and settings for the bot's external messaging endpoint, channels (Teams, Web Chat, Email, etc.), Exposing APIs, OAuth settings, and more.
To actually host the bot, you would use an Azure App Service. You would create one during the deployment process.
As the stated in the linked docs, existing resources will continue to work. Note that the docs specify that migration is not supported. Moving forward, when you build a new bot, you should use a combination of an Azure Bot for identity and configuration and an App Service to host and run the bot.
When I setup a Bot service on Azure, an end point was automatically setup. I then wanted to debug locally so I used ngrok and copied this URL into the messaging endpoint. Stupidly, I didn't save a copy of the auto generated end point Azure provided. Now I'd like to go back to an Azure auto generated messaging endpoint however I'm unsure how to regenerate one to use. I've been informed that this is likely a security feature and to setup a new bot service again. Do I need to setup a new bot service or is there a way of regenerating a key in azure?
This depends on which type of Bot Service you created on Azure - there are two: Web App Bot and Bot Channels Registration. The latter is basically just a "registration" of a Bot in Azure + Bot Framework Services, and it's -intended- for you to host your bot wherever you like (Azure or otherwise). If you created a "Web App Bot" then it will create an Azure Web app at the same time, and the address will be based on that resource, plus an extra bit (see in a moment). To get the first part, the base address, check for the web app resource in Azure, and find it's regular Azure-generated address (I think it's like https://[whateverBotname].azurewebsites.net/). You should be able to visit that in the browser. Next is the "extra bit", which is simply the endpoint inside the app that the bot itself runs on (basically where the bot POST messages must go). By default its "/api/messages".
So, the full address would be https://[whateverBotname].azurewebsites.net/api/messages.
As an extra tip, if you want to change it again to test with NGrok, just paste the address in the Description field - it'll get Saved when you click the Save button.
As an extra extra tip - you can create the OTHER type of Bot - a "Bot Channels Registration" in Azure, which is JUST the registration, that you can use JUST for local development (you'll basically change the address every few hours, as your NGrok endpoint resets).
Hope that helps,
I deployed my QnAmaker chatbot using the new GA QnAmaker portal today. But after creating the knowledge base, i can't find the channels tab in Azure anymore.
In the channels tab, you could deploy the chatbot to different channels like Microsoft Teams or the Webchat.
Has anyone found this tab in Azure?
You just created your QnAMaker knowledge base and all the necessary items to use it (web app to host the service, Azure Search for the search part).
Now the next step is to create a bot by doing the following:
On Azure, create a Web App Bot
Use Question And Answer bot template in order to have the basic code to call QnAMaker already implemented
Once it is created, you will have at least the following resources: one Web App bot (to manage channels) and one App Service (hosting your bot code)
Go to the Web App Bot item
Select Application Settings menu, you will found several settings: QnAKnowledgebaseId, QnAAuthKey and QnAEndpointHostName
Fill those values with your QnA settings:
QnAKnowledgebaseId: it's your knowledge base Id on QnaMaker.ai website
QnAAuthKey: it's the Authorization EndpointKey value on QnaMaker.ai website (check https://www.qnamaker.ai/UserSettings)
QnAEndpointHostName: the endpoint location where you published your KB (also visible on https://www.qnamaker.ai/UserSettings)
Save
Then it's working ;-) and you can set the channels you want on the Channels menu of this Web App Bot item
Yes! It's still there. QnA MAker going GA has no impact on its functionalities but the way of implementation to some extent, which is of course in a good sense.
You Can find it on Azure Portal => Web App Bot => Bot Management section
Happy Coding!
Given a VS web app project that has an existing Azure publish profile is there a way to tell what subscription the selected publish profile will publish the app to? We have such so many subscriptions it's quite time consuming to to use the portals poor blade interface to locate which subscription the app is in. Even opening the SCM site it seems apps know nothing about it's subscription.
As I know, we don't need Azure subscription information to publish our project. What we need is contentPath, ComputerName, UserName& Password when you use msdeploy. The following is the parameters that used to deploy:
.\msdeploy.exe -verb:sync -source:contentPath='E:\code' -dest:contentPath='sub2',ComputerName='https://waws-prod-sn1-047.ftp.azurewebsites.windows.net/msdeploy.axd?site=sub2',UserName='$sub2',Password='key',AuthType='Basic'
If we published project to Azure, we have no easy way to see which subscription it belongs to. I suggest you submit a voice at Azure feedback forum.