This is the first post in what is going to be a series on deploying a very simple ASP.NET Core application to the major cloud providers starting with Google’s cloud. This series was inspired by a question from one of my coworkers about the ease-of-use differences for .NET between the cloud providers.
The other posts in the series:
Google Cloud Platform (this post)
Amazon Web Services
Microsoft Azure
Sample Application
The sample application that we will be deploying is the basic Razor Pages applications created using the .NET CLI. The following commands are what I used to create the application, create a solution, and add the project to the solution. I ran all these commands in a CloudSample
directory.
dotnet new razor dotnet new sln dotnet sln add CloudSample.csproj
Google Cloud Platform
The rest of this post is going to be based on information from Google which can be found here.
Google Cloud SDK Installation
The first step is to download and install the Google Cloud SDK which can be found here. I’m walking through these steps for Windows, but the previous link has instructions for Linux and Mac as well.
After downloading and run the installer, and be patient it takes a while to run. When it is done you should see the following screen.
Make sure and leave the bottom two boxes checked as gcloud init
must be complete to get everything working as it should. Click the Finish button and a console will open and walk you through the initialization process.
The first step in the process will open a web browser and ask you to login to your Google account. After logging in you will be asked for a cloud project to use. It should look something like the following.
You are logged in as: [your account]. Pick cloud project to use: [1] api-project-276206909805 [2] blogbackup-141901 [3] oval-botany-94217 [4] Create a new project Please enter numeric choice or text value (must exactly match list item):
We want to select Create a new project
which is option 4 in my case. When prompted for a project ID I just hit enter and it let me out of the process so I don’t think a project is actually required at this point so that is a little confusing.
Google Cloud Tools for Visual Studio Installation
Google provides a Visual Studio extension that makes interacting with their platform simpler from within Visual Studio. To install open the Tools > Extensions and Updates
menu. On the left select Online
and then search for Google
. Next, select Google Cloud Tools for Visual Studio
.
Click download, close Visual Studio to trigger installation, and restart Visual Studio. Now that the extension is installed we need to connect it to an account. Using the Tools > Google Cloud Tools > Manage Accounts
menu to launch the Manage Accounts Dialog. Next click Add Account
.
This will launch a web browser where you will need to complete the account add. After the account auth completes Visual Studio should show the Google Cloud Explorer
window logged in the account you selected.
Create an App Engine Project
Open App Engine and click Create.
On the next page, you will need to give the project a name and then click Create.
On the next page select .NET as your language.
And select the location you want your application hosted in and click next.
If you aren’t already signed up then the next step signs you up for a 12 month trial with $300 worth of credit. Click the Signu up for free trial button to continue.
On the next screen, for the trial, you have to select your county as well as agree to the terms.
The next screen is a summary of your account. Review the information and click the Start my free trial button to continue.
Deploy from Visual Studio
In the Google Cloud Explorer window in Visual Studio select the project you just created in the drop-down.
If you don’t see your new project try clicking the refresh button in the upper left-hand side of the window. Now that you have the correct project selected switch over to the Solution Explorer
window and right click on your project and select Publish to Google Cloud
.
On the next screen select App Engine Flex
.
Then on the next screen click publish.
My first deployment took a really long time so don’t worry if you end up waiting a while (5 to 10 minutes). I tried a second deployment and it took just as long so I guess that is just how long it takes. When deployment finished it should open your site in a web browser.
Wrapping Up
After the initial set of installs and setup, Google Cloud with ASP.NET Core is pretty straightforward. The deployment time seems way too long, but that is really the only complaint I have.
Don’t forget to shut down and/or delete your test project when you are finished to make sure it doesn’t use up your credits.
Also published on Medium.
Fantastic. I ran into this problem Deploying an ASP.NET Core Application to Google Cloud Platform. Thanks to your article I have now successfully resolved the problem. Thank you ?
Your welcome!
Hi Eric,
Thanks for the clean and easy to understand article.
Also I want to highlight for database (mysql/postgresql ) what we have to do ?
I mean i have a sample asp.net core test applications with db as mysql . So can i use google cloud for it
That is a great question, but I haven’t tried out setting up a database on Google’s cloud. I’m sure they have database services available. Once you have a database set up with them it would be a matter of getting your application’s connection string set.