I'm trying to use stackreferences. project1 : the stack output is a json object projectInfo = { "key1": "value1", "key2" : "value2" }. project2: read the stack reference from project1, and then use the value of "key1" in the project2.
TypeScriptTo use a
StackReference
in Pulumi, you need to first ensure thatproject1
exports the required data as stack outputs. Then inproject2
, you can create aStackReference
toproject1
and access the outputs.Here's how you can do this in TypeScript:
import * as pulumi from "@pulumi/pulumi"; // In project1's Pulumi program // Export the projectInfo object export const projectInfo = { "key1": "value1", "key2": "value2", }; // In project2's Pulumi program // Create a StackReference to project1 const project1StackRef = new pulumi.StackReference("myOrgOrUser/project1/stackName"); // Access the "key1" value from project1's exported outputs const key1Value = project1StackRef.getOutput("projectInfo").apply(info => info.key1); // Now you can use key1Value in your resource definitions as needed // For example, you might use it to set an environment variable on a cloud service
Remember to replace
"myOrgOrUser/project1/stackName"
with the correct organization (or user) name, project name, and stack name forproject1
.The
apply
method is used to access the value ofkey1
becausegetOutput
returns aPromise
that resolves with the output value. Theapply
method allows you to work with the value inside the promise.