Pulumi
Introduction
Section titled “Introduction”Pulumi is an Infrastructure-as-Code (IaC) framework that allows you to define and provision infrastructure using familiar programming languages. Pulumi supports a wide range of cloud providers and services, including AWS, Azure, Google Cloud, and more.
The Snowflake emulator supports Pulumi, allowing you to define and provision Snowflake resources using the same commands and syntax as the Snowflake service. You can use Pulumi to create, update, and delete Snowflake resources locally, such as databases, schemas, tables, stages, and more.
Configuring Pulumi
Section titled “Configuring Pulumi”In this guide, you will learn how to configure Pulumi to interact with the Snowflake emulator.
Set up Snowflake provider
Section titled “Set up Snowflake provider”To use Pulumi with the Snowflake emulator, you need to configure the Snowflake provider in your Pulumi configuration file. Create a blank Pulumi project, and add the following environment variables to your Pulumi stack:
pulumi config set snowflake:account testpulumi config set snowflake:region testpulumi config set snowflake:username testpulumi config set snowflake:password testpulumi config set snowflake:host snowflake.localhost.localstack.cloud
You can install the Snowflake provider in any of the programming languages supported by Pulumi, such as Python, JavaScript, TypeScript, and Go. The following example shows how to install the Snowflake provider for your TypeScript project:
npm install @pulumi/snowflake
Create Snowflake resources
Section titled “Create Snowflake resources”You can now use Pulumi to create Snowflake resources using the Snowflake provider. The following example shows how to create a Snowflake database using Pulumi:
import * as snowflake from "@pulumi/snowflake";
const simple = new snowflake.Database("simple", { comment: "test comment", dataRetentionTimeInDays: 3,});
Deploy the Pulumi configuration
Section titled “Deploy the Pulumi configuration”You can now deploy the Pulumi configuration to create the Snowflake resources locally. Run the following command to deploy the Pulumi configuration:
pulumi up
The expected output should show the resources being created in the Snowflake emulator:
Enter your passphrase to unlock config/secretsPreviewing update (snowflake): Type Name Plan Info + pulumi:pulumi:Stack pulumi-snowflake-sample-snowflake create + └─ snowflake:index:Database simple create
Resources: + 2 to create
Do you want to perform this update? yesUpdating (snowflake): Type Name Status Info + pulumi:pulumi:Stack pulumi-snowflake-sample-snowflake created (0.48s) 2
Resources: + 2 created
Duration: 5s