All container services and Function-As-a-Service services of the big cloud providers, such as Amazon ECS, Lambda and Azure cloud functions run on actual virtual machines of these providers. Normally they only take a small number of milliseconds to start up, but when your container or function has not run for a certain amount of time, they will take a couple of seconds to actually start up the virtualization environment for your container or function. These startup times improve all the time, but you still get better startup time results by calling your functions or a request in your container in regular intervals.
A typical interval could be every minute, so that you can be sure that the virtual environment the container or function runs on has likely not been shut down, as it just was in use in the past 60 seconds.
In relation to an auto scaling group, I would say that "warm up" is a bit of a mis-nomer. Either there are enough instances provisioned to handle the traffic you expect, or you may need to make a 'scheduled change' to the number of instances, but there is actually nothing to warm the instances up.
One edge-case would be if instances have disk contents restored from backup. On AWS, there is some delay in getting the contents on these disk from snapshot and the disk can be warmed up by reading all blocks on it