Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Google Cloud Run Tutorial

Introduction to Cloud Run

Google Cloud Run is a fully managed compute platform that automatically scales your stateless containers. It abstracts away all infrastructure management, allowing you to focus purely on your code. Cloud Run can scale from zero to thousands of container instances based on traffic, ensuring a cost-efficient and highly available service.

Setting Up Your Environment

To get started with Cloud Run, you’ll need a Google Cloud project. Make sure you have the Google Cloud SDK installed and set up on your local machine.

Initialize your Google Cloud project:

gcloud init

Containerizing Your Application

Cloud Run requires your application to be containerized. Docker is commonly used for this purpose. Below is an example of a simple Dockerfile for a Python Flask application.

Dockerfile:

FROM python:3.8-slim
RUN pip install Flask
COPY app.py /app/app.py
CMD ["python", "/app/app.py"]

Building and Pushing Your Docker Image

Build your Docker image locally and then push it to Google Container Registry (GCR).

Build the Docker image:

docker build -t gcr.io/[PROJECT_ID]/[IMAGE_NAME] .

Push the image to GCR:

docker push gcr.io/[PROJECT_ID]/[IMAGE_NAME]

Deploying to Cloud Run

With your container image in GCR, you're now ready to deploy to Cloud Run.

Deploy using the following command:

gcloud run deploy --image gcr.io/[PROJECT_ID]/[IMAGE_NAME] --platform managed

Follow the prompts to complete the deployment. Upon successful deployment, Cloud Run will provide you with a URL where your service is accessible.

Testing Your Deployment

Access the URL provided by Cloud Run to test your deployed service. You can use tools like Postman or simply use a web browser.

Scaling and Managing Traffic

Cloud Run automatically scales your application based on incoming traffic. You can also set minimum and maximum instances to control the scaling behavior. Use the Cloud Console or gcloud commands to configure scaling settings.

Set minimum instances:

gcloud run services update [SERVICE_NAME] --min-instances [NUMBER]

Cleaning Up

To avoid incurring unnecessary charges, make sure to delete the resources you created.

Delete the Cloud Run service:

gcloud run services delete [SERVICE_NAME]

Delete the container image from GCR:

gcloud container images delete gcr.io/[PROJECT_ID]/[IMAGE_NAME]