This change includes a lot more functionality. Enough to actually run the webserver-py example through previews, updates, and destroys! * Actually wire up the gRPC connections to the engine/monitor. * Move the Node.js and Python generated Protobuf/gRPC files underneath the actual SDK directories to simplify this generally. No more copying during `make` and, in fact, this was required to give a smoother experience with good packages/modules for the Python's SDK development. * Build the Python egg during `make build`. * Add support for program stacks. Just like with the Node.js runtime, we will auto-parent any resources without explicit parents to a single top-level resource component. * Add support for component resource output properties. * Add get_project() and get_stack() functions for retrieving the current project and stack names. * Properly use UNKNOWN sentinels. * Add a set_outputs() function on Resource. This is defined by the code-generator and allows custom logic for output property setting. This is cleaner than the way we do this in Node.js, and gives us a way to ensure that output properties are "real" properties, complete with member documentation. This also gives us a hook to perform name demangling, which the code-generator typically controls anyway. * Add package dependencies to setuptools.py and requirements.txt. |
||
---|---|---|
.. | ||
asset | ||
cmd | ||
dist | ||
dynamic | ||
log | ||
proto | ||
runtime | ||
scripts | ||
tests | ||
.gitignore | ||
config.ts | ||
errors.ts | ||
index.ts | ||
Makefile | ||
metadata.ts | ||
package.json | ||
README.md | ||
resource.ts | ||
tsconfig.json | ||
tslint.json | ||
version.ts | ||
yarn.lock |
Pulumi Fabric Node.js SDK
The Pulumi Fabric Node.js SDK lets you write cloud programs in JavaScript.
Installing
For now, we only support developers building from source. Eventually we will have a nice installer.
Prerequisites
To build and install the SDK, you will first need a few things.
First, install Node.js 6.10.2. We recommend nvm, since it makes it easier
to switch between versions of Node.js. Afterwards, run nvm install 6.10.2
. As part of the build, a custom build
of Node.js 6.10.2 will be downloaded and installed alongside the SDK. This Node binary is identical to Node.js 6.10.2,
except that it has one extra builtin module containing code that is used by the SDK to serialize JavaScript closures.
The custom binary is built from this repo.
Next, we suggest using Yarn for package management. NPM works too, but Yarn is faster and therefore preferred. Please follow the directions on Yarn's website.
Building and Testing
The first time you build, you must make configure
to install and prepare native plugins for V8:
$ make configure
Make sure to run this after installing the right version of Node.js above, otherwise it may bind to the wrong version.
To build the SDK, simply run make
from the root directory (sdk/nodejs/
). This will build the code, run tests, and
then "install" the package (by yarn link
ing the resulting bin/
directory).
We recommend putting bin/
on your $PATH
, since the pulumi-langhost-nodejs
executable will be loaded dynamically
by the pulumi
tool whenever it encounters a Node.js program.
The tests will verify that everything works, but feel free to try running pulumi preview
and/or pulumi update
from
the examples/minimal/
directory. Remember to run tsc
first, since pulumi
expects JavaScript, not TypeScript.