在 Pulumi 中,是否存在等价于 pulumi.Output.apply,但要转换 pulumi.Input 值?

In Pulumi, exist a equivalent to pulumi.Output.apply, but to transform pulumi.Input values?

我正在用 Typescript 开发一个名为 CopyPostgresql 的 Pulumi ComponentResource。

CopyPostgreSql 是一个 Kubernetes 作业,它将源 Postgresql 数据库的内容以流方式复制到目标 Postgresql 数据库。 CopyPostgreSql 的选项包括属性源和目标。两者都是 DatabaseInput 类型。

export interface DatabaseInput {
    readonly port: Input<number>;
    readonly user: Input<string>;
    readonly password: Input<string>;
    readonly host: Input<string>;
    readonly dbname: Input<string>;
}

所以,我想使用端口作为来自另一个组件的另一个 属性 的值,但是另一个 属性 的类型是 Input< string >。

我如何将 Input 类型的值应用(或转换)到 Input?通常:在 Pulumi 中,存在等价于 pulumi.Output.apply,但要转换 pulumi.Input 值?

你可以pulumi.output(inputValue).apply(f).

因此,您可以来回流动它们:

const input1: pulumi.Input<string> = "hi";
const output1 = pulumi.output(input1);
const output2 = output1.apply(s => s.toUpperCase());
const input2: pulumi.Input<string> = output2;