Pulumi-Day1- Getting Started

Hi All,

I am starting to learn pulimi. Pulumi’s infrastructure-as-code SDK helps you create, deploy, and manage AWS containers, serverless functions, and infrastructure using programming languages like TypeScript, Python, Go, C#, and Java, and markup languages like YAML. The Pulumi AWS provider packages and CLI help you accomplish all these within minutes.

Docs

Scope of this blog will be just to check how pulumi project works. Its a learning journey for Infrastructure as code with AWS.

Selected Pulumi for infrastructure-as-code as it provides programming language flexibility (It means you write test cases) & integration with a lot of the cloud providers (like aws, azure, gcp etc).

As I am comfortable with Python, it will be my choice of language.
Also, I am using my windows personal machine.

Environment Setup

Following link: https://www.pulumi.com/docs/clouds/aws/get-started/begin/
Looks like you need Powershell is preferred to install pulumi as per documentation.

To install pulumi

choco install pulumi
choco install pulumi
choco install pulumi

Enter fullscreen mode Exit fullscreen mode

To check installed pulumi version

pulumi version
pulumi version
pulumi version

Enter fullscreen mode Exit fullscreen mode

Version installed: v3.121.0

You need to install Python or any other language you are using. I have Python already installed in my system. So, need to install it.

Configure Pulumi to access your AWS account

Following page: https://www.pulumi.com/registry/packages/aws/installation-configuration/

Pulumi requires cloud credentials to manage and provision resources. You must use an IAM user account that has programmatic access with rights to deploy and manage resources handled through Pulumi.

I already have AWS CLI installed on my system. For pulumi we need to create a new IAM user/ existing IAM user.

Followed below mentioned steps

  1. I create a new IAM user “pulumi-user”
  2. Gave AdministratorAccess to the user (note: Gave it admin access for ease of experiments)
  3. Added profile “pulumi-dev” aws_access key & secret key in ~/.aws/credentials (screenshot below)
  4. Configure pulumi to use the profile from your terminal (command: pulumi config set aws:profile pulumi-dev)

Create a Pulumi Project

Reference link: https://www.pulumi.com/docs/clouds/aws/get-started/create-project/

I created a gitlab project called “pulumi”. Created the project “awsproj” as mentioned in the steps given on the document.

PS > pulumi new aws-python
This command will walk you through creating a new Pulumi project.
Enter a value or leave blank to accept the (default), and press <ENTER>.
Press ^C at any time to quit.
project name (project): awsproj
project description (A minimal AWS Python Pulumi program):
Created project 'awsproj'
stack name (dev):
Created stack 'dev'
Enter your passphrase to protect config/secrets:
Re-enter your passphrase to confirm:
The toolchain to use for installing dependencies and running the program pip
aws:region: The AWS region to deploy into (us-east-1):
Saved config
Installing dependencies...
Creating virtual environment...
Finished creating virtual environment
Updating pip, setuptools, and wheel in virtual environment...
Requirement already satisfied: pip in c:\users\debashis\git_projects\pulumi\venv\lib\site-packages (22.0.4)
Collecting pip
Downloading pip-24.1.1-py3-none-any.whl (1.8 MB)
---------------------------------------- 1.8/1.8 MB 11.6 MB/s eta 0:00:00
Requirement already satisfied: setuptools in c:\users\debashis\git_projects\pulumi\venv\lib\site-packages (58.1.0)
Collecting setuptools
Downloading setuptools-70.1.1-py3-none-any.whl (883 kB)
------------------------------------- 883.3/883.3 KB 28.2 MB/s eta 0:00:00
Collecting wheel
Using cached wheel-0.43.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel, setuptools, pip
Attempting uninstall: setuptools
Found existing installation: setuptools 58.1.0
Uninstalling setuptools-58.1.0:
Successfully uninstalled setuptools-58.1.0
Attempting uninstall: pip
Found existing installation: pip 22.0.4
Uninstalling pip-22.0.4:
Successfully uninstalled pip-22.0.4
Successfully installed pip-24.1.1 setuptools-70.1.1 wheel-0.43.0
Finished updating
Installing dependencies in virtual environment...
Collecting pulumi<4.0.0,>=3.0.0 (from -r requirements.txt (line 1))
Downloading pulumi-3.121.0-py3-none-any.whl.metadata (11 kB)
Collecting pulumi-aws<7.0.0,>=6.0.2 (from -r requirements.txt (line 2))
Downloading pulumi_aws-6.42.1-py3-none-any.whl.metadata (8.4 kB)
Collecting protobuf~=4.21 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
Downloading protobuf-4.25.3-cp310-abi3-win_amd64.whl.metadata (541 bytes)
Collecting grpcio~=1.60.1 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
Downloading grpcio-1.60.1-cp310-cp310-win_amd64.whl.metadata (4.2 kB)
Collecting dill~=0.3 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)
Collecting six~=1.12 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Collecting semver~=2.13 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
Downloading semver-2.13.0-py2.py3-none-any.whl.metadata (5.0 kB)
Collecting pyyaml~=6.0 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl.metadata (2.1 kB)
Collecting parver>=0.2.1 (from pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
Downloading parver-0.5-py3-none-any.whl.metadata (2.7 kB)
Collecting typing-extensions>=4.11 (from pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting arpeggio>=1.7 (from parver>=0.2.1->pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
Downloading Arpeggio-2.0.2-py2.py3-none-any.whl.metadata (2.4 kB)
Collecting attrs>=19.2 (from parver>=0.2.1->pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
Downloading attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Downloading pulumi-3.121.0-py3-none-any.whl (263 kB)
---------------------------------------- 263.4/263.4 kB 5.5 MB/s eta 0:00:00
Downloading pulumi_aws-6.42.1-py3-none-any.whl (9.3 MB)
---------------------------------------- 9.3/9.3 MB 14.8 MB/s eta 0:00:00
Downloading dill-0.3.8-py3-none-any.whl (116 kB)
---------------------------------------- 116.3/116.3 kB 6.6 MB/s eta 0:00:00
Downloading grpcio-1.60.1-cp310-cp310-win_amd64.whl (3.7 MB)
---------------------------------------- 3.7/3.7 MB 3.2 MB/s eta 0:00:00
Downloading parver-0.5-py3-none-any.whl (15 kB)
Downloading protobuf-4.25.3-cp310-abi3-win_amd64.whl (413 kB)
---------------------------------------- 413.4/413.4 kB ? eta 0:00:00
Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl (145 kB)
Downloading semver-2.13.0-py2.py3-none-any.whl (12 kB)
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Downloading Arpeggio-2.0.2-py2.py3-none-any.whl (55 kB)
---------------------------------------- 55.3/55.3 kB ? eta 0:00:00
Downloading attrs-23.2.0-py3-none-any.whl (60 kB)
---------------------------------------- 60.8/60.8 kB ? eta 0:00:00
Installing collected packages: arpeggio, typing-extensions, six, semver, pyyaml, protobuf, grpcio, dill, attrs, pulumi, parver, pulumi-aws
Successfully installed arpeggio-2.0.2 attrs-23.2.0 dill-0.3.8 grpcio-1.60.1 parver-0.5 protobuf-4.25.3 pulumi-3.121.0 pulumi-aws-6.42.1 pyyaml-6.0.1 semver-2.13.0 six-1.16.0 typing-extensions-4.12.2
Finished installing dependencies
Finished installing dependencies
Your new project is ready to go!
To perform an initial deployment, run `pulumi up`
PS > pulumi new aws-python
This command will walk you through creating a new Pulumi project.

Enter a value or leave blank to accept the (default), and press <ENTER>.
Press ^C at any time to quit.

project name (project): awsproj
project description (A minimal AWS Python Pulumi program):
Created project 'awsproj'

stack name (dev):
Created stack 'dev'
Enter your passphrase to protect config/secrets:
Re-enter your passphrase to confirm:

The toolchain to use for installing dependencies and running the program pip
aws:region: The AWS region to deploy into (us-east-1):
Saved config

Installing dependencies...

Creating virtual environment...
Finished creating virtual environment
Updating pip, setuptools, and wheel in virtual environment...
Requirement already satisfied: pip in c:\users\debashis\git_projects\pulumi\venv\lib\site-packages (22.0.4)
Collecting pip
  Downloading pip-24.1.1-py3-none-any.whl (1.8 MB)
     ---------------------------------------- 1.8/1.8 MB 11.6 MB/s eta 0:00:00
Requirement already satisfied: setuptools in c:\users\debashis\git_projects\pulumi\venv\lib\site-packages (58.1.0)
Collecting setuptools
  Downloading setuptools-70.1.1-py3-none-any.whl (883 kB)
     ------------------------------------- 883.3/883.3 KB 28.2 MB/s eta 0:00:00
Collecting wheel
  Using cached wheel-0.43.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel, setuptools, pip
  Attempting uninstall: setuptools
    Found existing installation: setuptools 58.1.0
    Uninstalling setuptools-58.1.0:
      Successfully uninstalled setuptools-58.1.0
  Attempting uninstall: pip
    Found existing installation: pip 22.0.4
    Uninstalling pip-22.0.4:
      Successfully uninstalled pip-22.0.4
Successfully installed pip-24.1.1 setuptools-70.1.1 wheel-0.43.0
Finished updating
Installing dependencies in virtual environment...
Collecting pulumi<4.0.0,>=3.0.0 (from -r requirements.txt (line 1))
  Downloading pulumi-3.121.0-py3-none-any.whl.metadata (11 kB)
Collecting pulumi-aws<7.0.0,>=6.0.2 (from -r requirements.txt (line 2))
  Downloading pulumi_aws-6.42.1-py3-none-any.whl.metadata (8.4 kB)
Collecting protobuf~=4.21 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
  Downloading protobuf-4.25.3-cp310-abi3-win_amd64.whl.metadata (541 bytes)
Collecting grpcio~=1.60.1 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
  Downloading grpcio-1.60.1-cp310-cp310-win_amd64.whl.metadata (4.2 kB)
Collecting dill~=0.3 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
  Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)
Collecting six~=1.12 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
  Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Collecting semver~=2.13 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
  Downloading semver-2.13.0-py2.py3-none-any.whl.metadata (5.0 kB)
Collecting pyyaml~=6.0 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1))
  Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl.metadata (2.1 kB)
Collecting parver>=0.2.1 (from pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
  Downloading parver-0.5-py3-none-any.whl.metadata (2.7 kB)
Collecting typing-extensions>=4.11 (from pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
  Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting arpeggio>=1.7 (from parver>=0.2.1->pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
  Downloading Arpeggio-2.0.2-py2.py3-none-any.whl.metadata (2.4 kB)
Collecting attrs>=19.2 (from parver>=0.2.1->pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2))
  Downloading attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Downloading pulumi-3.121.0-py3-none-any.whl (263 kB)
   ---------------------------------------- 263.4/263.4 kB 5.5 MB/s eta 0:00:00
Downloading pulumi_aws-6.42.1-py3-none-any.whl (9.3 MB)
   ---------------------------------------- 9.3/9.3 MB 14.8 MB/s eta 0:00:00
Downloading dill-0.3.8-py3-none-any.whl (116 kB)
   ---------------------------------------- 116.3/116.3 kB 6.6 MB/s eta 0:00:00
Downloading grpcio-1.60.1-cp310-cp310-win_amd64.whl (3.7 MB)
   ---------------------------------------- 3.7/3.7 MB 3.2 MB/s eta 0:00:00
Downloading parver-0.5-py3-none-any.whl (15 kB)
Downloading protobuf-4.25.3-cp310-abi3-win_amd64.whl (413 kB)
   ---------------------------------------- 413.4/413.4 kB ? eta 0:00:00
Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl (145 kB)
Downloading semver-2.13.0-py2.py3-none-any.whl (12 kB)
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Downloading Arpeggio-2.0.2-py2.py3-none-any.whl (55 kB)
   ---------------------------------------- 55.3/55.3 kB ? eta 0:00:00
Downloading attrs-23.2.0-py3-none-any.whl (60 kB)
   ---------------------------------------- 60.8/60.8 kB ? eta 0:00:00
Installing collected packages: arpeggio, typing-extensions, six, semver, pyyaml, protobuf, grpcio, dill, attrs, pulumi, parver, pulumi-aws
Successfully installed arpeggio-2.0.2 attrs-23.2.0 dill-0.3.8 grpcio-1.60.1 parver-0.5 protobuf-4.25.3 pulumi-3.121.0 pulumi-aws-6.42.1 pyyaml-6.0.1 semver-2.13.0 six-1.16.0 typing-extensions-4.12.2
Finished installing dependencies
Finished installing dependencies

Your new project is ready to go!

To perform an initial deployment, run `pulumi up`
PS > pulumi new aws-python This command will walk you through creating a new Pulumi project. Enter a value or leave blank to accept the (default), and press <ENTER>. Press ^C at any time to quit. project name (project): awsproj project description (A minimal AWS Python Pulumi program): Created project 'awsproj' stack name (dev): Created stack 'dev' Enter your passphrase to protect config/secrets: Re-enter your passphrase to confirm: The toolchain to use for installing dependencies and running the program pip aws:region: The AWS region to deploy into (us-east-1): Saved config Installing dependencies... Creating virtual environment... Finished creating virtual environment Updating pip, setuptools, and wheel in virtual environment... Requirement already satisfied: pip in c:\users\debashis\git_projects\pulumi\venv\lib\site-packages (22.0.4) Collecting pip Downloading pip-24.1.1-py3-none-any.whl (1.8 MB) ---------------------------------------- 1.8/1.8 MB 11.6 MB/s eta 0:00:00 Requirement already satisfied: setuptools in c:\users\debashis\git_projects\pulumi\venv\lib\site-packages (58.1.0) Collecting setuptools Downloading setuptools-70.1.1-py3-none-any.whl (883 kB) ------------------------------------- 883.3/883.3 KB 28.2 MB/s eta 0:00:00 Collecting wheel Using cached wheel-0.43.0-py3-none-any.whl (65 kB) Installing collected packages: wheel, setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 58.1.0 Uninstalling setuptools-58.1.0: Successfully uninstalled setuptools-58.1.0 Attempting uninstall: pip Found existing installation: pip 22.0.4 Uninstalling pip-22.0.4: Successfully uninstalled pip-22.0.4 Successfully installed pip-24.1.1 setuptools-70.1.1 wheel-0.43.0 Finished updating Installing dependencies in virtual environment... Collecting pulumi<4.0.0,>=3.0.0 (from -r requirements.txt (line 1)) Downloading pulumi-3.121.0-py3-none-any.whl.metadata (11 kB) Collecting pulumi-aws<7.0.0,>=6.0.2 (from -r requirements.txt (line 2)) Downloading pulumi_aws-6.42.1-py3-none-any.whl.metadata (8.4 kB) Collecting protobuf~=4.21 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) Downloading protobuf-4.25.3-cp310-abi3-win_amd64.whl.metadata (541 bytes) Collecting grpcio~=1.60.1 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) Downloading grpcio-1.60.1-cp310-cp310-win_amd64.whl.metadata (4.2 kB) Collecting dill~=0.3 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB) Collecting six~=1.12 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB) Collecting semver~=2.13 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) Downloading semver-2.13.0-py2.py3-none-any.whl.metadata (5.0 kB) Collecting pyyaml~=6.0 (from pulumi<4.0.0,>=3.0.0->-r requirements.txt (line 1)) Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl.metadata (2.1 kB) Collecting parver>=0.2.1 (from pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2)) Downloading parver-0.5-py3-none-any.whl.metadata (2.7 kB) Collecting typing-extensions>=4.11 (from pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2)) Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB) Collecting arpeggio>=1.7 (from parver>=0.2.1->pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2)) Downloading Arpeggio-2.0.2-py2.py3-none-any.whl.metadata (2.4 kB) Collecting attrs>=19.2 (from parver>=0.2.1->pulumi-aws<7.0.0,>=6.0.2->-r requirements.txt (line 2)) Downloading attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB) Downloading pulumi-3.121.0-py3-none-any.whl (263 kB) ---------------------------------------- 263.4/263.4 kB 5.5 MB/s eta 0:00:00 Downloading pulumi_aws-6.42.1-py3-none-any.whl (9.3 MB) ---------------------------------------- 9.3/9.3 MB 14.8 MB/s eta 0:00:00 Downloading dill-0.3.8-py3-none-any.whl (116 kB) ---------------------------------------- 116.3/116.3 kB 6.6 MB/s eta 0:00:00 Downloading grpcio-1.60.1-cp310-cp310-win_amd64.whl (3.7 MB) ---------------------------------------- 3.7/3.7 MB 3.2 MB/s eta 0:00:00 Downloading parver-0.5-py3-none-any.whl (15 kB) Downloading protobuf-4.25.3-cp310-abi3-win_amd64.whl (413 kB) ---------------------------------------- 413.4/413.4 kB ? eta 0:00:00 Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl (145 kB) Downloading semver-2.13.0-py2.py3-none-any.whl (12 kB) Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB) Downloading Arpeggio-2.0.2-py2.py3-none-any.whl (55 kB) ---------------------------------------- 55.3/55.3 kB ? eta 0:00:00 Downloading attrs-23.2.0-py3-none-any.whl (60 kB) ---------------------------------------- 60.8/60.8 kB ? eta 0:00:00 Installing collected packages: arpeggio, typing-extensions, six, semver, pyyaml, protobuf, grpcio, dill, attrs, pulumi, parver, pulumi-aws Successfully installed arpeggio-2.0.2 attrs-23.2.0 dill-0.3.8 grpcio-1.60.1 parver-0.5 protobuf-4.25.3 pulumi-3.121.0 pulumi-aws-6.42.1 pyyaml-6.0.1 semver-2.13.0 six-1.16.0 typing-extensions-4.12.2 Finished installing dependencies Finished installing dependencies Your new project is ready to go! To perform an initial deployment, run `pulumi up`

Enter fullscreen mode Exit fullscreen mode

As we can see, it created a virtual environment “.venv”.

Note: I have used pip as the package installer as finding error while using poetry.

How project structure looks like?

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 01-07-2024 14:29 venv
-a---- 01-07-2024 14:29 14 .gitignore
-a---- 01-07-2024 14:29 117 Pulumi.dev.yaml
-a---- 01-07-2024 14:29 206 Pulumi.yaml
-a---- 01-07-2024 14:29 48 requirements.txt
-a---- 01-07-2024 14:29 229 __main__.py
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        01-07-2024     14:29                venv
-a----        01-07-2024     14:29             14 .gitignore
-a----        01-07-2024     14:29            117 Pulumi.dev.yaml                                                                                                      
-a----        01-07-2024     14:29            206 Pulumi.yaml
-a----        01-07-2024     14:29             48 requirements.txt
-a----        01-07-2024     14:29            229 __main__.py
Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 01-07-2024 14:29 venv -a---- 01-07-2024 14:29 14 .gitignore -a---- 01-07-2024 14:29 117 Pulumi.dev.yaml -a---- 01-07-2024 14:29 206 Pulumi.yaml -a---- 01-07-2024 14:29 48 requirements.txt -a---- 01-07-2024 14:29 229 __main__.py

Enter fullscreen mode Exit fullscreen mode

Contents inside requirements.txt

pulumi>=3.0.0,<4.0.0
pulumi-aws>=6.0.2,<7.0.0
pulumi>=3.0.0,<4.0.0
pulumi-aws>=6.0.2,<7.0.0
pulumi>=3.0.0,<4.0.0 pulumi-aws>=6.0.2,<7.0.0

Enter fullscreen mode Exit fullscreen mode

Activate the Virtual Environment

To activate the virtual environment

.\venv\Scripts\activate
.\venv\Scripts\activate
.\venv\Scripts\activate

Enter fullscreen mode Exit fullscreen mode

Check pip dependencies

pip freeze
Arpeggio==2.0.2
attrs==23.2.0
dill==0.3.8
grpcio==1.60.1
parver==0.5
protobuf==4.25.3
pulumi==3.121.0
pulumi_aws==6.42.1
PyYAML==6.0.1
semver==2.13.0
six==1.16.0
typing_extensions==4.12.2
pip freeze

Arpeggio==2.0.2
attrs==23.2.0
dill==0.3.8
grpcio==1.60.1
parver==0.5
protobuf==4.25.3
pulumi==3.121.0
pulumi_aws==6.42.1
PyYAML==6.0.1
semver==2.13.0
six==1.16.0
typing_extensions==4.12.2
pip freeze Arpeggio==2.0.2 attrs==23.2.0 dill==0.3.8 grpcio==1.60.1 parver==0.5 protobuf==4.25.3 pulumi==3.121.0 pulumi_aws==6.42.1 PyYAML==6.0.1 semver==2.13.0 six==1.16.0 typing_extensions==4.12.2

Enter fullscreen mode Exit fullscreen mode

Running a Pulumi Project

When you create a pulumi project, it generates a main.py by default.

Content of main.py

"""An AWS Python Pulumi program"""
import pulumi
from pulumi_aws import s3
# Create an AWS resource (S3 Bucket)
bucket = s3.Bucket('my-bucket')
# Export the name of the bucket
pulumi.export('bucket_name', bucket.id)
"""An AWS Python Pulumi program"""

import pulumi
from pulumi_aws import s3

# Create an AWS resource (S3 Bucket)
bucket = s3.Bucket('my-bucket')

# Export the name of the bucket
pulumi.export('bucket_name', bucket.id)
"""An AWS Python Pulumi program""" import pulumi from pulumi_aws import s3 # Create an AWS resource (S3 Bucket) bucket = s3.Bucket('my-bucket') # Export the name of the bucket pulumi.export('bucket_name', bucket.id)

Enter fullscreen mode Exit fullscreen mode

It means if we run this script, it should create an S3 bucket with the prefix “my-bucket”.

Lets run it
command:

pulumi up
pulumi up
pulumi up

Enter fullscreen mode Exit fullscreen mode

Screenshot of the run

As you can see, it created an S3 bucket

Destroying Resources

command

pulumi destroy
pulumi destroy
pulumi destroy

Enter fullscreen mode Exit fullscreen mode

As you can see bucket got destroyed.

原文链接:Pulumi-Day1- Getting Started

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
Be happy for this moment, this moment is your life.
享受当下的快乐,因为这一刻正是你的人生
评论 抢沙发

请登录后发表评论

    暂无评论内容