What’s the difference between the AWS ‘normal’ modules vs the ‘x modules’ ? When do I use one vs the...
a
What’s the difference between the AWS ‘normal’ modules vs the ‘x modules’ ? When do I use one vs the other? Example
aws.ecr.Repository
vs.
awsx.ecr.Repository
. And even the
aws-native
module…?
l
aws-native uses AWS's Cloud Control API. It is aligned to AWS' resources and theoretically can handle resource types that haven't been added to aws / awsx yet. However, AWS haven't completed their Cloud Control API, so it's missing a lot of resources right now. Being an early adopter of this has potential future benefits, but limited right-now benefits. aws uses the same schema as Terraform's AWS packages. It is mature and covers all but the very newest of AWS APIs. Almost all example code you find will use this. However, new AWS resource types take a little while to appear here, since there's an extra upstream step (and dev team) that has to finish their work before this package can see the changes. Generally, this is the one you should use. awsx is an opinionated wrapper around aws. It can help you create more resources with less code. However, you sacrifice some configurability to get that. It is fit for use in all cases where it fits. YMMV.
a
You for the explaination. So I’m on the right track then 😆
s
The 'x' modules like awsx are part of Pulumi Crosswalk (see their docs for more) - I found these are generally not so well maintained, so I use the non-x ones i.e. aws provider based on Terraform aws provider