1. Docs
  2. Pulumi IaC
  3. Get started
  4. Get started
  5. Review project

Pulumi & Google Cloud: Review project

    Let’s review some of the generated project files:

    • Pulumi.yaml defines both the project and the program that manages your stack resources.
    • src/main/java/myproject defines the project’s Java package root.
    • __main__.py is the Pulumi program that defines your stack resources.
    • index.js index.ts main.py main.go Program.cs Program.fs Program.vb App.java Pulumi.yaml is the Pulumi program that defines your stack resources.

    Let’s examine index.js index.ts __main__.py main.go Program.cs Program.fs Program.vb App.java Pulumi.yaml .

    "use strict";
    const pulumi = require("@pulumi/pulumi");
    const gcp = require("@pulumi/gcp");
    
    // Create a Google Cloud resource (Storage Bucket)
    const bucket = new gcp.storage.Bucket("my-bucket", {
        location: "US"
    });
    
    // Export the DNS name of the bucket
    exports.bucketName = bucket.url;
    
    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    // Create a Google Cloud resource (Storage Bucket)
    const bucket = new gcp.storage.Bucket("my-bucket", {
        location: "US",
    });
    
    // Export the DNS name of the bucket
    export const bucketName = bucket.url;
    
    import pulumi
    from pulumi_gcp import storage
    
    # Create a Google Cloud resource (Storage Bucket)
    bucket = storage.Bucket("my-bucket", location="US")
    
    # Export the DNS name of the bucket
    pulumi.export("bucket_name", bucket.url)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Create a Google Cloud resource (Storage Bucket)
    		bucket, err := storage.NewBucket(ctx, "my-bucket", &storage.BucketArgs{
    			Location: pulumi.String("US"),
    		})
    		if err != nil {
    			return err
    		}
    
    		// Export the DNS name of the bucket
    		ctx.Export("bucketName", bucket.Url)
    		return nil
    	})
    }
    
    using Pulumi;
    using Pulumi.Gcp.Storage;
    using System.Collections.Generic;
    
    return await Deployment.RunAsync(() =>
    {
        // Create a Google Cloud resource (Storage Bucket).
        var bucket = new Bucket("my-bucket", new BucketArgs
        {
            Location = "US",
        });
    
        // Export the DNS name of the bucket.
        return new Dictionary<string, object?>
        {
            ["bucketName"] = bucket.Url,
        };
    });
    
    package myproject;
    
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.storage.Bucket;
    import com.pulumi.gcp.storage.BucketArgs;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(ctx -> {
                // Create a Google Cloud resource (Storage Bucket)
                var bucket = new Bucket("my-bucket", BucketArgs.builder()
                    .location("US")
                    .build());
    
                // Export the DNS name of the bucket
                ctx.export("bucketName", bucket.url());
            });
        }
    }
    
    name: quickstart
    runtime: yaml
    description: A minimal Google Cloud Pulumi YAML program
    
    resources:
      # Create a Google Cloud resource (Storage Bucket)
      my-bucket:
        type: gcp:storage:Bucket
        properties:
          location: US
    
    outputs:
      # Export the DNS name of the bucket
      bucketName: ${my-bucket.url}
    

    This Pulumi program creates a new storage bucket and exports the DNS name of the bucket.

    exports.bucketName = bucket.url;
    
    export const bucketName = bucket.url;
    
    pulumi.export("bucket_name", bucket.url)
    
    ctx.Export("bucketName", bucket.Url)
    
    return new Dictionary<string, object?>
    {
        ["bucketName"] = bucket.Url,
    };
    
    ctx.export("bucketName", bucket.url());
    
    outputs:
      bucketName: ${my-bucket.url}
    

    Next, you’ll deploy your stack, which will provision your storage bucket.

      PulumiUP 2024. Watch On Demand.