Skip to main content

Google Cloud Run

Google Cloud Run example

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set gcp-ts-cloudrun
cd pulumi-examples/gcp-ts-cloudrun

An example of deploying a custom Docker image into Google Cloud Run service using TypeScript. Our image builds a simple HelloWorld web application in Ruby. You may change it to any language and runtime that can run on Linux and serve HTTP traffic.

Prerequisites#

  1. Ensure you have the latest Node.js and NPM
  2. Install the Pulumi CLI
  3. Configure Pulumi to access your GCP account
  4. Install Docker
  5. Enable Docker to deploy to Google Container Registry with gcloud auth configure-docker

Running the App#

  1. Restore NPM dependencies:

    $ npm install
  2. Create a new stack:

    $ pulumi stack init dev
  3. Configure your GCP project and region:

    $ pulumi config set gcp:project <projectname>
    $ pulumi config set gcp:region <region>
  4. Run pulumi up to preview and deploy changes:

    $ pulumi up
    Previewing update (dev):
    ...
    Updating (dev):
    Type Name Status
    + pulumi:pulumi:Stack gcp-cloudrun-dev created
    + ├─ docker:image:Image ruby-app created
    + ├─ gcp:projects:Service EnableCloudRun created
    + ├─ gcp:cloudrun:Service hello created
    + ├─ gcp:cloudrun:Service ruby created
    + ├─ gcp:cloudrun:IamMember hello-everyone created
    + └─ gcp:cloudrun:IamMember ruby-everyone created
    Outputs:
    helloUrl: "https://hello-a28eea2-q1wszdxb2b-ew.a.run.app"
    rubyUrl : "https://ruby-420a973-q1wszdxb2b-ew.a.run.app"
    Resources:
    + 7 created
    Duration: 3m37s
  5. Check the deployed Cloud Run endpoint:

    $ curl "$(pulumi stack output rubyUrl)"
    Hello Pulumi!
  6. Clean up your GCP and Pulumi resources:

    $ pulumi destroy
    ...
    $ pulumi stack rm dev
    ...

Related

The infrastructure as code platform for any cloud.