代码之家  ›  专栏  ›  技术社区  ›  Daniel Birowsky Popeski

域名已与“现有”CloudFront发行版关联

  •  4
  • Daniel Birowsky Popeski  · 技术社区  · 7 年前

    serverless-domain-manager 具有 sls create_domain ,它失败:

    如果您拥有此域名,并且未在现有CloudFront发行版上使用,请联系支持人员。应用程序编程接口。实例未创建com。

    我找到了 line where the library fails .

    请注意,我的帐户在CloudFront中没有任何内容。这是我打开它时看到的:

    enter image description here

    enter image description here

    在相关资源下,我可以看到cloudfront的一个条目: arn:aws:cloudfront:: ...

    4 回复  |  直到 7 年前
        1
  •  14
  •   Daniel Birowsky Popeski    7 年前

    Thanx到 Matt's guidance

    亚马逊API网关>自定义域名

    删除那里所有冲突的域,然后重新执行部署步骤。

        2
  •  3
  •   Georgian    6 年前

    下面是我如何遇到并解决这个问题的:

    1. 创建了一个无服务器应用程序并运行 sls create_domain
    2. serverless.yml
    3. 手动从AWS中删除CloudFormation堆栈,以及Route53记录。
    4. create_domain 我又犯了一个错误——尽管我已经删除了所有内容
    5. sls delete_domain -这也带来了一个错误,但显然清理了一些“隐藏”的AWS内容
    6. sls create_域
        3
  •  2
  •   Matt Houser    7 年前

    当您创建API网关时,它将代表您创建底层CloudFront发行版。您可能在AWS帐户中看不到它,但它在那里。

    此外,用于CloudFront分发的域必须是全局唯一的。这意味着,如果其他人已经为 api.example.com ,那么您也不能使用它。

    如果您已经有了API网关 应用程序编程接口。实例通用域名格式 ,则无法创建第二个。如果是这种情况,则需要使用其他域,或删除原始域。

        4
  •  0
  •   codeBRAVO    3 年前

    “幻影”cloudfront发行版不可见,因为它位于AWS自己拥有的帐户中,用于部署API网关边缘优化实例使用的发行版。

    但是,如果它们不可见(例如,如果它们已经被删除),请尝试使用AWS CLI删除它们,因为它似乎可以更好地完全清理到这些AWS Cloudfront发行版的链接:

    aws apigateway delete-domain-name --region "<INSERT REGION>" --domain-name "<INSERT DOMAIN NAME>"

    由于@CGreg在使用sls\u delete\u domain命令时遇到问题,您可能会遇到错误。我试图删除ACM中的一个旧证书,该证书通过我已经删除的自定义域名与其中一个发行版关联。我对每个自定义域名运行了上述命令两次(在我认为最初可能部署到的任何区域)。第一次出现“域名未找到”错误,第二次出现“操作超时:最大重试次数”错误,但与Cloudfront发行版的关联被删除,我能够删除旧证书