You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pulumi CLI导入AWS ALB TargetGroup时遇类型错误的解决方法

Pulumi导入ALB目标组时的内部错误及代码生成方案

操作与错误详情

执行以下命令导入AWS ALB目标组至Pulumi:

$ pulumi import aws:alb/targetGroup:TargetGroup target-group-name target-group-arn

触发内部错误,报错信息如下:

error: internal error: Error: cannot assign expression of type tuple(cty.NullVal(cty.DynamicPseudoType)) to location of type union(list(union(object({onDeregistration = union(output(string), string, annotated(0x14001d12b40)), onUnhealthy = union(output(string), string, annotated(0x14001d12b80))}, annotated(0x14001d12b00)), output(object({onDeregistration = string, onUnhealthy = string}, annotated(0x14001d12bc0))), annotated(0x14001d12c00))), none, output(list(object({onDeregistration = string, onUnhealthy = string}, annotated(0x14001d12bc0)))), annotated(0x14001d12cc0)):

  on anonymous.pp line 22:
  23:     targetFailovers =[
  24:         null]

环境信息

  • OS:macOS Monterey v12.5
  • 架构:M2
  • Pulumi版本:v3.51.1
  • Pulumi路径:/opt/homebrew/bin/pulumi
  • 运行时:Node.js(TypeScript)

解决方法

一、修复导入错误

错误根源是targetFailovers字段类型不匹配:该字段接受的有效值为对象列表或none,但导入生成的临时文件中写了[null]。处理步骤:

  1. 打开报错提示的anonymous.pp文件
  2. 将targetFailovers = [null]修改为targetFailovers = none(如果目标组未配置故障转移规则),或替换为符合结构的对象列表(例如:[{ onDeregistration: "xxx", onUnhealthy: "xxx" }])
  3. 重新执行导入命令,或运行pulumi up完成资源同步

另外,该问题可能是旧版本Pulumi的bug,建议升级至最新稳定版后重试:

$ brew upgrade pulumi

二、从Pulumi状态生成TypeScript代码

若资源已成功导入至Pulumi状态(可通过pulumi state list确认),可按以下步骤生成TypeScript代码:

  1. 导出状态详情:执行命令查看目标组的完整属性:
$ pulumi state show aws:alb/targetGroup:TargetGroup::target-group-name
  1. 手动编写TypeScript代码:根据输出的属性,创建对应的资源定义文件(例如targetGroup.ts):
import * as aws from "@pulumi/aws";

// 导入已存在的目标组
const targetGroup = new aws.alb.TargetGroup("target-group-name", {
    // 填充state中输出的属性,示例:
    targetType: "instance",
    port: 80,
    protocol: "HTTP",
    vpcId: "vpc-xxxxxx",
    // 若未配置故障转移,可省略targetFailovers字段,或设为undefined
}, {
    // 指定导入的ARN,确保与状态中的资源匹配
    import: "target-group-arn",
});

// 导出必要的属性
export const targetGroupArn = targetGroup.arn;
  1. 验证同步:运行pulumi preview确认代码与状态一致,无变更后即可正常管理该资源

内容的提问来源于stack exchange,提问作者Kohei Yasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:35:16