Web Server Using Compute Engine
Basic example of an Google Cloud web server accessible over HTTP
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set gcp-go-webservercd pulumi-examples/gcp-go-webserverStarting 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!.
Running the App#
-
Create a new stack:
$ pulumi stack init webserver-gcp-testing -
Configure the project:
$ pulumi config set gcp:project YOURGOOGLECLOUDPROJECT$ pulumi config set gcp:zone us-central1-a -
Restore NPM dependencies:
$ npm install -
Run
pulumi upto preview and deploy changes:$ pulumi upPreviewing changes:...Performing changes:Type Name Status Info+ pulumi:pulumi:Stack webserver-gcp-webserver-gcp-testing created+ ├─ gcp:compute:Network network created+ ├─ gcp:compute:Firewall firewall created+ └─ gcp:compute:Instance instance created---outputs:---instanceIP : "35.185.200.158"instanceName: "instance-af7e53b"info: 4 changes performed:+ 4 resources createdUpdate duration: 1m23s -
Curl the HTTP server:
$ curl $(pulumi stack output instanceIP)Hello, World! -
SSH into the server:
$ gcloud compute ssh $(pulumi stack output instanceName)Warning: Permanently added 'compute.4281826686797606751' (ECDSA) to the list of known hosts.The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.albert@instance-af7e53b:~$ -
Cleanup
$ pulumi destroy$ pulumi stack rm