Skip to main content

Pulumi Python Dynamic Resource demonstration

An example demonstrating Pulumi Dynamic Providers

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 aws-py-dynamicresource
cd pulumi-examples/aws-py-dynamicresource

A simple example demonstrating how to write Dynamic Providers using Pulumi.

Prerequisites#

  1. Install Pulumi
  2. Configure Pulumi for AWS
  3. Configure Pulumi for Python

Deploying and running the program#

  1. Create a new stack:

    Terminal window
    pulumi stack init aws-py-dynamicresource
  2. Set the AWS region and the names and passwords for admin and user:

    Terminal window
    pulumi config set aws:region us-west-2
    pulumi config set sql-admin-name <NAME>
    pulumi config set sql-admin-password <PASSWORD> --secret
    pulumi config set sql-user-name <NAME>
    pulumi config set sql-user-password <PASSWORD> --secret
  3. Run pulumi up -y to deploy changes:

    Terminal window
    Updating (aws-py-dynamicresource):
    Type Name Status
    + pulumi:pulumi:Stack aws-py-dynamicresource-aws-py-dynamicresource created
    + ├─ aws:ec2:Vpc app-vpc created
    + ├─ aws:ec2:InternetGateway app-gateway created
    + ├─ aws:ec2:SecurityGroup security-group created
    + ├─ aws:ec2:Subnet app-vpc-subnet created
    + ├─ aws:ec2:Subnet extra-rds-subnet created
    + ├─ aws:ec2:RouteTable app-routetable created
    + ├─ aws:rds:SubnetGroup app-database-subnetgroup created
    + ├─ aws:ec2:MainRouteTableAssociation app_routetable_association created
    + ├─ aws:rds:Instance mysql-server created
    + ├─ pulumi:providers:mysql mysql-provider created
    + ├─ mysql:index:Database mysql-database created
    + ├─ mysql:index:User mysql-standard-user created
    + ├─ mysql:index:Grant mysql-access-grant created
    + └─ pulumi-python:dynamic:Resource mysql_votes_table created
    Outputs:
    dynamic-resource-id: "schema-44462d37c8e04c18be08cbf05670a328"
    Resources:
    + 15 created
    Duration: 3m31s
  4. View the ID of the dynamic resource via stack output:

    Terminal window
    pulumi stack output
    Current stack outputs (1):
    OUTPUT VALUE
    dynamic-resource-id schema-44462d37c8e04c18be08cbf05670a328

Clean up#

To clean up resources, run pulumi destroy and answer the confirmation question at the prompt.

Related

The infrastructure as code platform for any cloud.