Providers and Languages

Contents

Providers and Languages#

Languages and providers run as their own executables, so debugging isn’t as simple as attaching to the engine.

Instead you’ll have to launch them in a debugger and provide the information for connecting to them to the engine via environmental variables.

Providers#

To debug a provider, first start the provider executable (e.g. pulumi-resource-aws) in your debugger of choice and have it listen on a known port.

Then set the PULUMI_DEBUG_PROVIDERS environment variable to tell the engine to connect to that port instead of launching the provider itself. The format is <provider-name>:<port>, and multiple providers can be separated by commas:

PULUMI_DEBUG_PROVIDERS="aws:12345" pulumi preview

For example, PULUMI_DEBUG_PROVIDERS=aws:12345,gcp:678 will result in the engine attaching to port 12345 for the aws provider and port 678 for the gcp provider.

Languages#

Languages work very similarly to providers.

Instead of the PULUMI_DEBUG_PROVIDERS environment variable, you use PULUMI_DEBUG_LANGUAGES like so:

PULUMI_DEBUG_LANGUAGES="go:12345" pulumi preview

After opening your language executable (e.g. pulumi-language-go) in your debugger of choice.