Welcome to Pulumi Registry, your window into the cloud. Read the announcement.

AWS Classic

v4.29.0 published on Monday, Nov 22, 2021 by Pulumi

Pulumi Python Dynamic Resource demonstration

View Code Deploy

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


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

Deploying and running the program

  1. Create a new stack:

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

    $ 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:

    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     
        dynamic-resource-id: "schema-44462d37c8e04c18be08cbf05670a328"
        + 15 created
    Duration: 3m31s
  4. View the ID of the dynamic resource via stack output:

    $ 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.