gpt4 book ai didi

output - 如何将 Pulumi Output 转换为字符串?

转载 作者:行者123 更新时间:2023-12-04 11:18:00 30 4
gpt4 key购买 nike

我正在处理创建 AWS API 网关。我正在尝试创建 CloudWatch Log 组并将其命名 API-Gateway-Execution-Logs_${restApiId}/${stageName} .我在 Rest API 创建方面没有问题。
我的问题是将类型为 pulumi.Outout 的 restApi.id 转换为字符串。
我已经尝试了在他们的 PR#2496 中提出的这两个版本

  • const restApiId = apiGatewayToSqsQueueRestApi.id.apply((v) => `${v}`);
  • const restApiId = pulumi.interpolate `${apiGatewayToSqsQueueRestApi.id}`

  • 这是使用它的代码
    const cloudWatchLogGroup = new aws.cloudwatch.LogGroup(
    `API-Gateway-Execution-Logs_${restApiId}/${stageName}`,
    {},
    );
    stageName只是一个字符串。
    我也试过 apply再次喜欢 const restApiIdStrign = restApiId.apply((v) => v);我总是从 pulumi up 得到这个错误 aws:cloudwatch:LogGroup API-Gateway-Execution-Logs_Calling [toString] on an [Output<T>] is not supported.请帮我将输出转换为字符串

    最佳答案

    @Cameron 回答了命名问题,我想在标题中回答您的问题。
    无法转换 Output<string>string ,或任何 Output<T>T .Output<T>是 future 值的容器 T即使在程序执行结束后也可能无法解决。也许,你的 restApiId由 AWS 在部署时生成,因此如果您在预览中运行您的程序,则 restApiId 没有值(value)。 .Output<T>就像一个 Promise<T>这将最终得到解决,可能是在云中创建了一些资源之后。
    因此,唯一的操作与 Output<T>是:

  • 将其转换为另一个 Output<U>apply(f) ,其中 f :T -> U
  • 将其分配给 Input<T>将其传递给另一个资源构造函数
  • 从堆栈中导出

  • 任何值操作都必须在 apply 内发生称呼。

    关于output - 如何将 Pulumi Output<t> 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62561660/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com