CDK Route 53区域查找返回错误的区域ID。

0

【以下的问题经过翻译处理】 我们正在尝试更新我们的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"
      }
    }
1 Antwort
0

【以下的回答经过翻译处理】 CDK有一个名为"cdk.context.json"的文件,该文件缓存了已经被删除了很长时间的同名旧区域的(不存在的)区域ID。删除该文件可以使CDK刷新使用新的区域ID。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen