【以下的问题经过翻译处理】 我们正在尝试更新我们的IaC代码库至CDK v2。在此之前,我们将在另一个测试环境中部署整个系统的堆栈。堆栈的一部分会创建一个用于我们负载均衡器的TLS证书。
var hostedZone = HostedZone.FromLookup(this, $"{config.ProductName}-dns-zone", new HostedZoneProviderProps
{
DomainName = config.RootDomainName
});
DnsValidatedCertificate certificate = new DnsValidatedCertificate(this, $"{config.ProductName}-webELBCertificate-{config.Environment}", new DnsValidatedCertificateProps
{
HostedZone = hostedZone,
DomainName = config.AppDomainName,
// Used to implement ValidationMethod = ValidationMethod.DNS
Validation = CertificateValidation.FromDns(hostedZone)
});
由于某种原因,合成的模板使用的AWS::CloudFormation::CustomResource的托管区ID并不是该账户的区域ID,这导致证书请求验证过程失败 - 进而整个cdk部署失败,因为它无法找到放置验证记录的真实区域。
如果查看证书管理器页面中的各个挂起的证书请求,可以通过手动按下[[在Route 53中创建记录]]按钮来批准请求,该方式会找到正确的区域。
我不确定CDK在哪里找到的这个不属于我们的区域ID?
"AppwebELBCertificatetestCertificateRequestorResource68D095F7": {
"Type": "AWS::CloudFormation::CustomResource",
"Properties": {
"ServiceToken": {
"Fn::GetAtt": [
"AppwebELBCertificatetestCertificateRequestorFunctionCFE32764",
"Arn"
]
},
"DomainName": "root.domain",
"HostedZoneId": "NON-EXISTENT ZONE ID"
},
"UpdateReplacePolicy": "Delete",
"DeletionPolicy": "Delete",
"Metadata": {
"aws:cdk:path": "App-webELBStack-test/App-webELBCertificate-test/CertificateRequestorResource/Default"
}
}