Skip to content

Latest commit

 

History

History
119 lines (86 loc) · 4.79 KB

README.md

File metadata and controls

119 lines (86 loc) · 4.79 KB

Google Cloud Run Python Samples

Open in Cloud Shell

This directory contains samples for Google Cloud Run. Cloud Run runs stateless containers on a fully managed environment or in your own GKE cluster.

Samples

Sample Description Deploy
Hello World ➥ Quickstart Run on Google Cloud
Cloud Pub/Sub Handling Pub/Sub push messages Run on Google Cloud
Cloud SQL (MySQL) Use MySQL with Cloud Run -
Cloud SQL (Postgres) Use Postgres with Cloud Run -
Django Deploy Django on Cloud Run -
Identity Platform Authenticate users and connect to a Cloud SQL postgreSQL databases Run on Google Cloud

For more Cloud Run samples beyond Python, see the main list in the Cloud Run Samples repository.

Setup

  1. Set up for Cloud Run development

  2. Clone this repository:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    

    Note: Some samples in the list above are hosted in other repositories. They are noted with the symbol "➥".

How to run a sample locally

  1. Install docker locally

  2. Build the sample container:

    export SAMPLE=<SAMPLE_NAME>
    cd $SAMPLE
    docker build --tag $SAMPLE .
    
  3. Run containers locally

    With the built container:

    PORT=8080 && docker run --rm -p 8080:${PORT} -e PORT=${PORT} $SAMPLE
    

    Overriding the built container with local code:

    PORT=8080 && docker run --rm \
        -p 8080:${PORT} -e PORT=${PORT} \
        -v $PWD:/app $SAMPLE
    

    Injecting your service account key for access to GCP services:

    # Set the name of the service account key within the container
    export SA_KEY_NAME=my-key-name-123
    
    PORT=8080 && docker run --rm \
        -p 8080:${PORT} \
        -e PORT=${PORT} \
        -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/${SA_KEY_NAME}.json \
        -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/${SA_KEY_NAME}.json:ro \
        -v $PWD:/app $SAMPLE
    
    • Use the --volume (-v) flag to inject the credential file into the container (assumes you have already set your GOOGLE_APPLICATION_CREDENTIALS environment variable on your machine)

    • Use the --environment (-e) flag to set the GOOGLE_APPLICATION_CREDENTIALS variable inside the container

    Learn more about testing your container image locally.

Deploying

  1. Set an environment variable with your GCP Project ID
export GOOGLE_CLOUD_PROJECT=<PROJECT_ID>
  1. Submit a build using Google Cloud Build
gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/${SAMPLE}
  1. Deploy to Cloud Run
gcloud run deploy $SAMPLE --image gcr.io/${GOOGLE_CLOUD_PROJECT}/${SAMPLE}

See Building containers and Deploying container images for more information.