Aliyun::Serverless::CustomDomain is used to create a custom domain name.

Syntax

{
  "Type": "ALIYUN::Serverless::CustomDomain",
  "Properties": {
    "Protocol": String,
    "RouteConfig": Map,
    "CertConfig": Map,
    "DomainName": String
  }
}

Properties

Property Type Required Editable Description Constraint
Protocol String Yes Yes The protocol type. Valid values:
  • HTTP
  • HTTPS
RouteConfig Map Yes Yes The configurations of the route table.

For more information, visit RouteConfig object.

CertConfig Map No Yes The information of the certificate. For more information, visit CertConfig properties.
DomainName String No No The domain name. If you do not specify the DomainName parameter, you must specify the logical resource ID as the domain name.

CertConfig syntax

"CertConfig": {
  "CertName": String,
  "PrivateKey": String,
  "Certificate": String
}

CertConfig properties

Property Type Required Editable Description Constraint
CertName String Yes Yes The custom name of the certificate. None
PrivateKey String Yes Yes The private key. Specify this parameter in one line by using newline escape characters (\n).
Certificate String Yes Yes The information of the certificate. Specify this parameter in one line by using newline escape characters (\n).

Response parameters

Fn::GetAtt

  • DomainName: the custom domain name.
  • Domain: the protocol and the custom domain name.

Examples

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Transform": "Aliyun::Serverless-2018-04-03",
  "Parameters": {
    "DomainName": {
      "Type": "String"
    }
  },
  "Resources": {
    "CustomDomain": {
      "Type": "Aliyun::Serverless::CustomDomain",
      "Properties": {
        "DomainName": {
          "Ref": "DomainName"
        },
        "Protocol": "HTTP",
        "RouteConfig": {
          "Routes": {
            "/*": {
              "ServiceName": "MyService",
              "FunctionName": "MyServiceMyFunction"
            }
          }
        }
      }
    }
  },
  "Outputs": {
    "DomainName": {
      "Value": {
        "Fn::GetAtt": [
          "CustomDomain",
          "DomainName"
        ]
      }
    },
    "Domain": {
      "Value": {
        "Fn::GetAtt": [
          "CustomDomain",
          "Domain"
        ]
      }
    }
  }
}

YAML format

ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Parameters:
  DomainName:
    Type: String
Resources:
  CustomDomain:
    Type: 'Aliyun::Serverless::CustomDomain'
    Properties:
      DomainName:
        Ref: DomainName
      Protocol: HTTP
      RouteConfig:
        Routes:
          /*:
            ServiceName: MyService
            FunctionName: MyServiceMyFunction
Outputs:
  DomainName:
    Value:
      'Fn::GetAtt':
        - CustomDomain
        - DomainName
  Domain:
    Value:
      'Fn::GetAtt':
        - CustomDomain
        - Domain