Essentials:
- NodeJS
- Go
- Make
For building the SDKs:
- Dotnet
- Python
awsx
: the provider, written in Typescriptawsx-classic
: the original typescript-only version of AWSXexamples
: multi-lang examples which are executed as acceptance testsexamples-classic
: examples of aws-classic (no longer run as acceptance tests)schemagen
: Go program for generating the schema and SDKssdk
: Generated SDKs in each language
make
lints, builds and runs unit testsmake dev
tests and build the provider and builds only the nodejs SDKmake build
tests and build the provider and all SDKSmake clean
removes all build artifacts ready for a clean buildmake install_sdks
installs all SDKsmake test
runs all acceptance testsmake test Test=TEST_NAME
runs a single test
The schema (schema.json
) is generated by schemagen. The entry point is schemagen/pkg/gen/schema.go
. Amend the go code to generate the schema for the component with its inputs, outputs and any relevant types. Run make schema
to test your changes.
From the schema.json
we generate provider types (awsx/schema-types.ts
) which describe the interfaces that the provider must implement. Running make provider
will automatically re-generate this as needed.
To implement a new provider resource:
-
Define a class for your resource in an appropriate folder which:
- Inherits from the appropriate schema-types abstract class
- Uses the schema-types 'Args' object for the constructor args
- Sets all provider output members in the constructor
-
Register the new component implementation in
awsx/resources.ts
.
The SDKs are also generated from the schema.json
using the schemagen
program. This can be done by calling make build
.
Before testing, make sure you are authenticated with Pulumi and AWS in your terminal.
For running Typescript examples locally:
make install_provider install_nodejs_sdk
- prep provider and SDK for local usecd examples/YOUR_EXAMPLE
yarn && yarn link @pulumi/awsx
- install dependencies, but use local version ofPATH=~/YOUR_DEV_FOLDER/pulumi-awsx/bin/:$PATH pulumi up