I need to deploy a number of chatbots in Azure.
I made the botcode for the chatbots and tested them in the Bot Framework Emulator. Now I am ready to deploy them to Azure.
I haven't done this for a while. In the past, I used to create a resource called Web App Bot for this and deploy the botcode via Github.
This would give me a webapp bot resource and an app service that I could deploy my botcode to. Worked like a charm. This resource is not available anymore.
I did find a resource called Azure Bot. There is however no option to deploy any botcode to that resource.
I tried to create all resources via composer -> error and the request to file this in github
I tried to use Azure Cli -> error without any clear explanation.
Is it possible to just manually create all resources to host a Bot Framework chatbot on Azure and what are these steps?
Update 13 feb
I Created a Webapp for my botcode by just cloning a Webapp (from an earlier Web App Bot deployment) and changed the github repositiy. That works.
Next I created a Azure Bot. Changed the url to the url of the app and added api\messages to it.
Testing the bot results in:
Azure bot Webchat channel status overview:
"There was an error sending this message to your bot: HTTP status code InternalServerError"
Web App console:
"Error: Unauthorized. Invalid AppId passed on token"
So I added the Azure Bot's AppId (MicrosoftAppId) to the configuration of the WebApp.
Azure bot Webchat channel status overview:
"There was an error sending this message to your bot: HTTP status code InternalServerError"
Web App console:
"Failed to query knowledgebase: object Object UnhandledPromiseRejectionWarning: Error: BotFrameworkAdapter.processActivity(): 500 ERRORError: The clientSecret parameter is required" I guess I also need to add the MicrosoftAppPassword.
Press Manage Password in the configuration blade of the Azure bot -> Insufficient privileges to complete the operation.
Update 15 feb
6. I managed to create a new secret by visiting the Appregistration itself. Not being able to click Manager Passwords is a bug (I think)
I added to 2 application settings in the Web Appp. One for MicrosoftAppId and one for MicrosoftAppPassword (the secret). As value For the first setting I used Application (client) ID from the app registration
For the second I used the value of the secret I created in the app registration
Done. A working bot deployment
My organization Bot which was developed some time ago requires some changes and need to send an video to user. Bot uses teams channel & developed in SDK 3. Bot is deployed in IIS in one of the hosted server and uses Azure Bot channel in Azure subscription.
I was following this document to send video to user : https://learn.microsoft.com/en-us/microsoftteams/platform/resources/bot-v3/bots-files
I am little confused with Manifest reference here. Where can I configure this "supportsFiles property in the manifest to true. " In my Visual studio app or in Azure Bot channel in Azure . Any help here is appreciated.
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.
I have created an azure bot using Bot framework composer. When I tried to deploy the bot in azure I ran Into an issue {"name":"CREATE_LUIS_AUTHORING_RESOURCE_ERROR","message":"Error - The subscription is not registered to use namespace 'Microsoft.CognitiveServices'. See https://aka.ms/rps-not-found for how to register subscriptions.","stack":"Error\n at new CustomizeError (/Applications/Bot Framework Composer.app/Contents/Resources/app.asar.unpacked/extensions/azurePublish/dist/extension.js:269072:25)\n at createCustomizeError (/Applications/Bot Framework Composer.app/Contents/Resources/app.asar.unpacked/extensions/azurePublish/dist/extension.js:269077:10)\n at AzureResourceMananger.deployLuisAuthoringResource (/Applications/Bot Framework Composer.app/Contents/Resources/app.asar.unpacked/extensions/azurePublish/dist/extension.js:269865:13)"}. See provision.Azure Bot.log in your bot folder
What should I do to deploy this bot in azure?
To overcome this issue we need to select an S1 subscription while creating an azure bot from pricing section.
I am working on Microsoft Bot Framework, I am created the bot through Azure Bot Service in Azure Portal. When I am running my bot application in local emulator its working fine after that published into Azure Bot service.
Here my issue is whenever to test my application in in Azure Portal at Test In Web Chat option the test window will showing like this below.
Added the same bot to Skype channel there also I am not getting any response.
How can I resolve the problem?
Please check your MicrosoftAppID and MicrosoftAppPassword are correctly mentioned in both your BotApplication as well as in Azure Bot Service. Also do check if the same is deployed properly and the MessagingEndpoint is correctly mentioned.
If this was just an issue with the channel your Test in WebChat could have worked properly.
From my experience, it is happen to me with the same situation. I think you select publish as Website. You should select publish as Deployment Script.