Skip to content

Latest commit

 

History

History
116 lines (83 loc) · 4.42 KB

README.md

File metadata and controls

116 lines (83 loc) · 4.42 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 -

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.