How to deploy PolicyRecordingBot to a virtual machine?
Microsoft documentation says that application-hosted media bots can be deployed to one of the following:
- Cloud Service.
- Service Fabric with Virtual Machine Scale Sets (VMSS).
- Infrastructure as a Service (IaaS) Virtual Machine (VM).
I suppose PolicyRecordingBot is a kind of an application-hosted media bot and the documentation is applicable to it. The bot's solution contains CRFrontEnd, CRWorkerRole, and PolicyRecordingBot projects. As I understand, CRFrontEnd is basically a business logic that I'm supposed to implement. And PolicyRecordingBot and CRWorkerRole are projects targeted to Azure Cloud Service (extended support). Cloud Service (extended support) deployment works fine for me.
Also, documentation says:
An application-hosted media bot requires the Microsoft.Graph.Communications.Calls.Media .NET library to access the audio and video media streams. The bot must be deployed on a Windows Server on-premises machine or a Windows Server guest Operating System (OS) in Azure.
I'm interested in this particular part here "Windows Server on-premises machine".
Questions:
- If I want to deploy my bot to Azure VM and host it as a service, does it mean I have to create a service or a console .NET Framework 4.7.2 project and write all the necessary code? And the code will be very similar to CRWorkerRole?
- As documentation states that media bots may be hosted on Windows Sever on-premises machine, does it mean I can host PolicyRecordingBot on my company's hardware?
Unfortunately, the statement in the documentation about deploying to an on-premises machine is misleading. Production application-hosted media bots must be deployed in Microsoft Azure. Deploying application-hosted media bots outside of Azure is not supported. However, it is often convenient during development to run a bot locally, behind a reverse TCP proxy like ngrok, to ease debugging.
cc: @rahulva-msft
@ssulzer I think @kokosda in his first question, he is asking about "1. If I want to deploy my bot to Azure VM and host it as a service, does it mean I have to create a service or a console" In Azure VM it is is possible, we did it, with some changes in the AzureConfiguration ( creating another configuration class) to run it without the Azure emulator. We use it mostly for testing.