Now that we have our project boilerplate, we will add 2 Pulumi providers:
At the time of writing, AWSx is in beta and may change before its official 1.0 release. If you encounter any issues with AWSx, please file a GitHub issue.
Pulumi created a virtualenv for us when we created our iac-workshop-ecs project. We’ll need to activate it to install dependencies:
source venv/bin/activateAdd the following content to requirements.txt:
pulumi_aws>=5.0.0,<6.0.0
pulumi_awsx>=1.0.0-beta.9,<2.0.0Run the following command to install the AWS and AWSx packages:
pip3 install -r requirements.txtNow that our packages are installed, we need to import them as part of our project.
Add the following to the top of your __main.py__:
import pulumi_aws as aws
import pulumi_awsx as awsx✅ After this change, your
__main__.pyshould look like this:
"""A Python Pulumi program"""
import pulumi
import pulumi_aws as aws
import pulumi_awsx as awsxConfigure the AWS region you would like to deploy to, replacing us-east-1 with your AWS region of choice:
pulumi config set aws:region us-east-1Note that the previous command will create the file Pulumi.dev.yaml which contains the configuration for our dev stack. (Stacks are logical groupings of Pulumi resources.) We will be working with a single Pulumi stack in this tutorial, but we could define additional stacks to deploy our infrastructure to different regions/accounts with different parameters. To learn more about Pulumi stacks, see Stacks in the Pulumi docs.
If you are using an alternative AWS profile, you can tell Pulumi which to use in one of two ways:
export AWS_PROFILE=<profile name>pulumi config set aws:profile <profile name>