Skip to main content

Web server using Compute Engine

Basic example of a Google Cloud web server accessible over HTTP

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-py-webserver
cd pulumi-examples/gcp-py-webserver

Starting point for building the Pulumi web server sample in Google Cloud.

This example deploys a Google Compute Engine virtual machine — together with a network and firewall rule that allows SSH and HTTP access — and runs a simple HTTP server on it that responds with Hello, World!.

Prerequisites#

  1. Install Pulumi
  2. Configure GCP credentials
  3. Install Python

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Configure the project:

    Terminal window
    pulumi config set gcp:project YOURGOOGLECLOUDPROJECT
    pulumi config set gcp:zone us-central1-a
  3. Install dependencies:

    Terminal window
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  4. Run pulumi up to preview and deploy changes:

    Terminal window
    pulumi up
    Updating (dev):
    Type Name Status
    + pulumi:pulumi:Stack gcp-py-webserver-dev created
    + ├─ gcp:compute:Address address created
    + ├─ gcp:compute:Network network created
    + ├─ gcp:compute:Firewall firewall created
    + └─ gcp:compute:Instance instance created
    Outputs:
    instanceIP : "35.188.118.61"
    instanceName: "instance-91b70e1"
    Resources:
    + 5 created
    Duration: 1m51s
  5. Curl the HTTP server:

    Terminal window
    curl $(pulumi stack output instanceIP)
    Hello, World!
  6. SSH into the server:

    Terminal window
    gcloud compute ssh $(pulumi stack output instanceName)

Cleaning up#

Once you’re finished experimenting, destroy your stack and remove it:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.