指定的域名标识符无效

时间:2017-05-11 19:34:33

标签: amazon-web-services aws-api-gateway amazon-cloudformation

尝试通过CloudFormation创建AWS::ApiGateway::BasePathMapping时,出现以下错误:

Invalid domain name identifier specified

以下是应该创建AWS::ApiGateway::BasePathMapping的CloudFormation模板的部分:

{
    "Parameters": {
        "ApiDomainName": {
            "Description": "The domain name for the API",
            "Type": "String"
        }
    },
    "Resources": {
        "ApiBasePathMapping": {
            "Type": "AWS::ApiGateway::BasePathMapping",
            "Properties": {
                "DomainName": {
                    "Ref": "ApiDomainName"   
                },
                "RestApiId": {
                    "Ref": "RepositoryApi"
                },
                "Stage": {
                    "Ref": "ApiProductionStage"
                }
            },
            "DependsOn": [
                "ApiProductionStage"
            ]
        }
    }
}

documentation没有提及它需要对DomainName有什么特别之处,但是这个资源的文档似乎缺少一些信息(例如,它没有列出输出,即使有一个Distribution Domain Name作为示例创建。)

堆栈的其余部分按预期工作。我试图将此资源添加为更改集。我拥有我想要使用的域名,并且我已在ACM中为此域创建了一个证书。

2 个答案:

答案 0 :(得分:7)

从AWS论坛引用:

  

您只能在域名后创建或修改基本路径映射   已添加到API网关。这“无效的域名标识符   在指定的域名时返回指定的“错误消息”   找不到基本路径映射,表示尚未添加   爱好。

此外,截至2017年3月,通过CloudFormation将域名添加到API网关的唯一方法是通过CloudFormation提供的自定义资源。

参考:https://forums.aws.amazon.com/message.jspa?messageID=769627

答案 1 :(得分:1)

现在可以做到这一点。您只需要在CFN模板上明确声明存在依赖项(DependsOn):

...
ApiDevMapping:
  Type: 'AWS::ApiGateway::BasePathMapping'
  Properties:
    BasePath: v1.0
    Stage: dev
    DomainName: my-api.example.com
    RestApiId: !Ref MobileApiDev
DependsOn:
  - MobileApiDevDomain
...