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

使用Pulumi Python的aws.acm.CertificateValidation验证ACM证书遇错求助

问题根源与修复方案

你的CertificateValidation资源传递validation_record_fqdns参数时格式错误,导致Pulumi无法正确识别验证记录的FQDN,尽管Route53记录已存在且证书已签发。

错误原因

add_acm_validation_records返回的是一个pulumi.Output[list[str]](包含所有验证记录的FQDN),但你在validate函数中错误地将其包裹为字符串形式的Output:

validation_record_fqdns=[pulumi.Output.all(fqdns).apply(lambda l: f"{l}")]

这会把整个FQDN列表转换成类似"[<Output object>, <Output object>]"的字符串,而非ACM所需的单个FQDN的Output列表。

修复后的代码

直接将add_acm_validation_records返回的Output列表传给validation_record_fqdns即可:

def validate(self, fqdns: pulumi.Output[list]) -> aws.acm.Certificate:
    cert_validation = aws.acm.CertificateValidation(
        f"{self.__customer_code}-cert-validation",
        certificate_arn=self.__customer_cert.arn,
        validation_record_fqdns=fqdns,
        opts=pulumi.ResourceOptions(provider=self.__aws_provider_west_2),
    )
    return cert_validation

排查方法

  1. 查看Output实际值:若要打印fqdns的内容,需通过apply异步获取值,不能直接print:
    fqdns.apply(lambda l: print("验证记录FQDN:", l))
    
  2. 确认资源依赖:确保CertificateValidation在所有Route53记录创建完成后再执行。Pulumi通常会自动处理依赖,但跨区域资源可显式添加depends_on:
    opts=pulumi.ResourceOptions(
        provider=self.__aws_provider_west_2,
        depends_on=[your_route53_records_list]
    )
    
  3. 核对FQDN一致性:检查Route53记录的FQDN与ACM报错中要求的是否完全一致(包括末尾的.,Pulumi的record.fqdn会自动添加,需确认ACM要求的格式)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:57:36