microsoftgraph / microsoft-graph-comms-samples

Microsoft Graph Communications Samples
MIT License
211 stars 237 forks source link

Echobot - Changing from VMSS to VM or Similar #672

Open jamil-z opened 1 year ago

jamil-z commented 1 year ago

Describe the issue The VMSS instances shut down, and this cannot be controlled.

Expected behavior To prevent them from shutting down, but according to documentation, this cannot be controlled, so I want to switch to a different type of VM.

Additional context Echobot - Changing from VMSS to VM or Similar

Hello, I'm using EchoBot, and I would like to switch from Virtual Machine Scale Sets (VMSS) to a different type, presumably regular VMs. This is because there are many instances where VMSS instances shut down, typically one every few days, and there have been cases where both instances shut down.

I would like to gain control over this or switch to another type of VM without affecting the structure in which EchoBot runs.

Please I'm not sure if you could provide advice on how to get started with this since everything is configured to work with VMSS.

I appreciate any help or advice you can provide.

InDieTasten commented 1 year ago

VMSS refers to Virtual Machine Scaling Set, which can be controlled entirely by yourself.

The screenshot refers to Azure Spot. This offer by Azure allows you to rent otherwise un-rented VMs for a lower cost, but at the expense, that the VM will be pulled from under your feet, should the spot price rise above the price you are willing to pay.

If you use normal VMSS or VM, that doesn't happen.

jamil-z commented 1 year ago

Thanks, you're right; I'll rephrase the question to make it clearer

in summary, I'm using the Virtual Machine Scale Set (VMSS) because these are created when deploying EchoBot the issue I'm encountering is that they often shut down automatically, I want to address this without affecting the EchoBot's structure

InDieTasten commented 1 year ago

@jamil-z A VMSS is just a management layer for a set of VMs. It defines the template and rules for networking, scaling and so on for the individual VMs that can be allocated through the VMSS.

Normally, when you set up a VMSS, the machines created will not "often shut down automatically", unless you have some kind of configuration that would cause this. That isn't obvious from the details you provided. This repository is also not the best place to discuss general Azure issues. If you have trouble with your VMSS, you should contact Azure support through the Azure portal, as it would be quite off-topic in this.

Depending on the root cause, migrating your bot from a VMSS to regular VMs might not solve your problem.

jamil-z commented 1 year ago

@InDieTasten thank you for the response. I also believe that here it should be mentioned that I tried to deploy EchoBot again with the original script and also by changing the VM type configurations that are created, and I got this error message. It indicates that the 2019 image is no longer available

Line | 308 | … $global:r = New-AzDeployment @Common @TemplateArgs @OptionalParameter … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 5:11:41 PM - The deployment 'ACU1-EBMBTY4-BOT-D1-EchoBot' failed with error(s). Showing 3 out of 3 error(s). Status Message: The platform image 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter-with-Containers:latest' | is not available. Verify that all fields in the storage profile are correct. For more details about storage profile information, please refer to https://aka.ms/storageprofile (Code:PlatformImageNotFound) Status Message: At | least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details. (Code: DeploymentFailed) - { "error": { "code": | "PlatformImageNotFound", "message": "The platform image 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter-with-Containers:latest' is not available. Verify that all fields in the storage profile are correct. For more | details about storage profile information, please refer to https://aka.ms/storageprofile", "target": "imageReference" } } (Code:NotFound) Status Message: At least one resource deployment operation failed. Please | list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details. (Code: DeploymentFailed) - { "status": "Failed", "error": { "code": "ResourceDeploymentFailure", | "message": "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.", "details": [ { "code": "DeploymentFailed", "message": "At least | one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.", "details": [ { "code": | "Conflict", "message": "{\r\n \"status\": \"Failed\",\r\n \"error\": {\r\n \"code\": \"ResourceDeploymentFailure\",\r\n \"message\": \"The resource write operation failed to complete successfully, | because it reached terminal provisioning state 'Failed'.\",\r\n \"details\": [\r\n {\r\n \"code\": \"DeploymentFailed\",\r\n \"message\": \"At least one resource deployment operation failed. Please | list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.\",\r\n \"details\": [\r\n {\r\n \"code\": \"NotFound\",\r\n \"message\": | \"{\\r\\n \\\"error\\\": {\\r\\n \\\"code\\\": \\\"PlatformImageNotFound\\\",\\r\\n \\\"message\\\": \\\"The platform image 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter-with-Containers:latest' is not | available. Verify that all fields in the storage profile are correct. For more details about storage profile information, please refer to https://aka.ms/storageprofile\\\",\\r\\n \\\"target\\\": | \\\"imageReference\\\"\\r\\n }\\r\\n}\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}" } ] } ] } } (Code:Conflict) CorrelationId: e54f4d59-a8a6-41d1-84de-74f082d4a2d8

bcage29 commented 5 months ago

@jamil-z In the VMSS-VM.bicep file the VM profile is set to use (Spot VMs)[https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/use-spot]. This was done because spot VMs have a cheaper cost and this project is a sample. In a production environment, you would want to change the VMs to be Regular and not use Spot.