Last week I was trying to write an Amazon Alexa Skills (Earlier I had created Google Assitant App using dialogue flow ) and found creating Alexa app was not as intuitive as dialogue flow as a beginner. Probably it's just the UI/UX. There are much more incentives of creating Google assistant apps as it can be accessed via android phones right from your lock screen as opposed to Alexa skills which you need to use the echo devices or Alexa app on phone and keep it running in the background.

Nevertheless I needed a service endpoint which would feed data to my Alexa app and the recommended way was to have an AWS lambda function, however, you could also put any public endpoint URL of your own. I recently did a lot of work on Google Cloud Function so I opted for it. Tough the network latency may be marginally more because now Amazon data centre needs to talk to Google data centre. But the difference was smaller when compared to my home internet connection's latency to cloud. is a great tool to know your nearest GCP zone where you can deploy your services if the userbase is around your location. For me of course it was Mumbai which is one of the recent data centre of Google Cloud Platform.

Google Cloud Functions Free tier.

The factor that outweighed the latency factor was a free tier. Since it was a side project I had to run it for free as long as possible. I found Google Cloud Function's free tier quota is twice as much as AWSs for the same memory and network quota. Cloud functions offered first 2 million invocations free while both  AWS lambda and Azure functions had only 1 million free calls per month. In fact, Azure charges you for the storage that is used for staging the code file. I remember Cloud functions used to ask for a storage bucket for the same but in the recent version, they have made this process transparent to the user and just give you the location where it uploads internally.  Cloud Functions tough limited to only a few languages was pretty good for me. One good thing about the serverless platform is you are charged only when it is invoked, there is no VM running that you have to pay for even if no one is using it, which is the case for new projects as you never know if users are going come or not. I am sure I did not take all factors into consideration so I put this question our for experts

Google Developer Expert Romin has some valid points about it.

One can also use firebase functions' spark plan if you don't have any outbound calls outside Google's network.