ALIYUN::APIG::Route类型用于创建Http Api的路由。
语法
{
"Type": "ALIYUN::APIG::Route",
"Properties": {
"Backend": Map,
"EnvironmentInfo": Map,
"HttpApiId": String,
"Match": Map,
"RouteName": String,
"Description": String,
"DomainInfos": List,
"DomainIds": List
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Backend | Map | 是 | 是 | 路由的后端服务配置。 | 更多信息,请参见Backend属性。 |
EnvironmentInfo | Map | 是 | 否 | 环境信息。 | 更多信息,请参见EnvironmentInfo属性。 |
HttpApiId | String | 是 | 否 | 路由所属的 HTTP API ID。 | 无 |
Match | Map | 是 | 是 | 路由 Match 规则。 | 更多信息,请参见Match属性。 |
RouteName | String | 是 | 否 | 路由名称。 | 无 |
Description | String | 否 | 是 | 路由描述。 | 无 |
DomainInfos | List | 否 | 是 | 域名详情列表。 | 无 |
DomainIds | List | 否 | 否 | 域名ID列表。 | 无 |
Backend语法
"Backend": {
"Services": List,
"Scene": String
}
Backend属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Services | List | 是 | 是 | 后端服务列表。 | 最多支持配置10组服务。更多信息,请参见Services属性。 |
Scene | String | 是 | 是 | 后端服务场景。 | 取值:
|
Services语法
"Services": [
{
"Version": String,
"Port": Integer,
"Protocol": String,
"Weight": Integer,
"Name": String,
"ServiceId": String
}
]
Services属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 否 | 否 | 服务名称。 | 无 |
Port | Integer | 否 | 否 | 服务端口。 | 无 |
Protocol | String | 否 | 否 | 服务协议。 | 取值:
|
ServiceId | String | 否 | 是 | 服务 ID。 | 无 |
Version | String | 否 | 否 | 服务版本。 | 无 |
Weight | Integer | 否 | 是 | 流量比例的百分比值。 | 取值范围:0~100。 |
EnvironmentInfo语法
"EnvironmentInfo": {
"GatewayInfo": Map,
"EnvironmentId": String,
"Alias": String,
"SubDomains": List,
"Name": String
}
EnvironmentInfo属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
EnvironmentId | String | 是 | 否 | 环境 ID。 | 无 |
Alias | String | 否 | 否 | 环境别名。 | 无 |
GatewayInfo | Map | 否 | 否 | 网关配置信息。 | 更多信息,请参见GatewayInfo属性。 |
Name | String | 否 | 否 | 环境名称。 | 无 |
SubDomains | List | 否 | 否 | 子域名列表。 | 最多支持配置10组子域名。更多信息,请参见GatewayInfo属性。 |
GatewayInfo语法
"GatewayInfo": {
"GatewayId": String,
"Name": String
}
GatewayInfo属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
GatewayId | String | 否 | 否 | 网关ID。 | 无 |
Name | String | 否 | 否 | 网关名称。 | 无 |
SubDomains语法
"SubDomains": [
{
"DomainId": String,
"NetworkType": String,
"Protocol": String,
"Name": String
}
]
SubDomains属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
DomainId | String | 否 | 否 | 子域名ID。 | 无 |
NetworkType | String | 否 | 否 | 域网络的访问类型。 | 无 |
Name | String | 否 | 否 | 子域名的名称。 | 无 |
Protocol | String | 否 | 否 | 子域名支持的网络协议。 | 取值:
|
DomainInfos语法
"DomainInfos": [
{
"DomainId": String,
"Protocol": String,
"Name": String
}
]
DomainInfos属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
DomainId | String | 否 | 是 | 域名ID。 | 无 |
Name | String | 否 | 否 | 域名名称。 | 无 |
Protocol | String | 否 | 否 | 域名支持的网络协议。 | 取值:
|
Match语法
"Match": {
"Path": Map,
"Headers": List,
"QueryParams": List,
"Methods": List,
"IgnoreUriCase": Boolean
}
Match属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Path | Map | 是 | 是 | 接口规则。 | 无 |
Headers | List | 否 | 是 | HTTP请求头匹配规则列表。 | 最多支持10组规则。 |
IgnoreUriCase | Boolean | 否 | 是 | 路径是否大小写敏感。 | 无 |
Methods | List | 否 | 是 | 请求方法列表。 | 无 |
QueryParams | List | 否 | 是 | Query 请求参数匹配规则列表。 | 最多支持10组规则。 |
Path语法
"Path": {
"Type": String,
"Value": String
}
Path属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Type | String | 是 | 是 | 路径匹配规则。 | 取值:
|
Value | String | 是 | 是 | 路径。 | 无 |
Headers语法
"Headers": [
{
"Type": String,
"Value": String,
"Name": String
}
]
Headers属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 否 | 是 | header 的名称。 | 无 |
Type | String | 否 | 是 | header 匹配类型。 | 取值:
|
Value | String | 否 | 是 | header 的 value。 | 无 |
QueryParams语法
"QueryParams": [
{
"Type": String,
"Value": String,
"Name": String
}
]
QueryParams属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 否 | 是 | 参数名称。 | 无 |
Type | String | 否 | 是 | query 参数匹配类型。 | 取值:
|
Value | String | 否 | 是 | 参数值。 | 无 |
返回值
Fn::GetAtt
Backend:路由的后端服务配置。
Description:路由描述。
EnvironmentInfo:环境信息。
RouteName:路由名称。
DomainInfos:域名详情列表。
RouteId:路由ID。
Match:路由 Match 规则。
示例
ROSTemplateFormatVersion: '2015-09-01'
Parameters: {}
Resources:
ExtensionResource:
Type: ALIYUN::APIG::Route
Properties:
HttpApiId: api-xxx
EnvironmentInfo:
EnvironmentId: env-xxxx
RouteName: test123
DomainIds:
- d-xxxx
Match:
Path:
Type: Prefix
Value: /user
Backend:
Scene: SingleService
Services:
- Name: test1
ServiceId: svc-xxxxx
Port: 443
Protocol: HTTPS
Version: base
Outputs:
Backend:
Description: Backend services.
Value:
Fn::GetAtt:
- ExtensionResource
- Backend
Description:
Description: The description of route resource.
Value:
Fn::GetAtt:
- ExtensionResource
- Description
EnvironmentInfo:
Description: Environment information.
Value:
Fn::GetAtt:
- ExtensionResource
- EnvironmentInfo
RouteName:
Description: The name of the route.
Value:
Fn::GetAtt:
- ExtensionResource
- RouteName
DomainInfos:
Description: Domain items.
Value:
Fn::GetAtt:
- ExtensionResource
- DomainInfos
RouteId:
Description: The ID of route resource.
Value:
Fn::GetAtt:
- ExtensionResource
- RouteId
Match:
Description: The match rule of route resource.
Value:
Fn::GetAtt:
- ExtensionResource
- Match
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
},
"Resources": {
"ExtensionResource": {
"Type": "ALIYUN::APIG::Route",
"Properties": {
"HttpApiId": "api-xxx",
"EnvironmentInfo": {
"EnvironmentId": "env-xxxx"
},
"RouteName": "test123",
"DomainIds": [
"d-xxxx"
],
"Match": {
"Path": {
"Type": "Prefix",
"Value": "/user"
}
},
"Backend": {
"Scene": "SingleService",
"Services": [
{
"Name": "test1",
"ServiceId": "svc-xxxxx",
"Port": 443,
"Protocol": "HTTPS",
"Version": "base"
}
]
}
}
}
},
"Outputs": {
"Backend": {
"Description": "Backend services.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"Backend"
]
}
},
"Description": {
"Description": "The description of route resource.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"Description"
]
}
},
"EnvironmentInfo": {
"Description": "Environment information.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"EnvironmentInfo"
]
}
},
"RouteName": {
"Description": "The name of the route.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"RouteName"
]
}
},
"DomainInfos": {
"Description": "Domain items.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"DomainInfos"
]
}
},
"RouteId": {
"Description": "The ID of route resource.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"RouteId"
]
}
},
"Match": {
"Description": "The match rule of route resource.",
"Value": {
"Fn::GetAtt": [
"ExtensionResource",
"Match"
]
}
}
}
}