O recurso ALIYUN::ALB::Rule cria uma regra de encaminhamento para um listener do Application Load Balancer (ALB).
Sintaxe
{
"Type": "ALIYUN::ALB::Rule",
"Properties": {
"RuleActions": List,
"Priority": Integer,
"RuleConditions": List,
"Direction": String,
"RuleName": String,
"ListenerId": String
}
}
Propriedades
|
Propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrições |
|
ListenerId |
String |
Sim |
Não |
ID do listener da instância do Application Load Balancer (ALB). |
Nenhuma |
|
Priority |
Integer |
Sim |
Sim |
Prioridade da regra de encaminhamento. |
Valores válidos: 1 a 10.000. Um valor menor indica maior prioridade. Nota
A prioridade de cada regra de encaminhamento no mesmo listener deve ser única. |
|
RuleActions |
List |
Sim |
Sim |
Ações da regra de encaminhamento. |
Para mais informações, consulte Propriedades de RuleActions. |
|
RuleConditions |
List |
Sim |
Sim |
Condições da regra de encaminhamento. |
Para mais informações, consulte Propriedades de RuleConditions. |
|
RuleName |
String |
Sim |
Sim |
Nome da regra de encaminhamento. |
O nome deve ter de 2 a 128 caracteres. Deve começar com uma letra ou caractere chinês e pode conter letras, caracteres chineses, dígitos, pontos (.), sublinhados (_) e hifens (-). |
|
Direction |
String |
Não |
Não |
Direção da regra de encaminhamento. |
Valores válidos:
|
Sintaxe de RuleActions
"RuleActions": [
{
"Order": Integer,
"FixedResponseConfig": Map,
"Type": String,
"RedirectConfig": Map,
"ForwardGroupConfig": Map,
"InsertHeaderConfig": Map,
"RewriteConfig": Map,
"TrafficMirrorConfig": Map,
"TrafficLimitConfig": Map,
"RemoveHeaderConfig": Map,
"CorsConfig": Map
}
]
Propriedades de RuleActions
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Order |
Integer |
Sim |
Sim |
Ordem de execução das ações da regra de encaminhamento. |
Valores válidos: 1 a 50.000. As ações são executadas em ordem crescente de valor. Nota
O valor deve ser único. |
|
Type |
String |
Sim |
Sim |
Tipo da ação. |
Valores válidos:
|
|
CorsConfig |
Map |
Não |
Sim |
Configuração cross-domain. |
Para mais informações, consulte Propriedades de CorsConfig. |
|
FixedResponseConfig |
Map |
Não |
Sim |
Configuração de resposta fixa. |
Para mais informações, consulte Propriedades de FixedResponseConfig. |
|
ForwardGroupConfig |
Map |
Não |
Sim |
Configuração do grupo de encaminhamento. |
Para mais informações, consulte Propriedades de ForwardGroupConfig. |
|
InsertHeaderConfig |
Map |
Não |
Sim |
Configuração para inserção de campo de cabeçalho. |
Para mais informações, consulte Propriedades de InsertHeaderConfig. |
|
RedirectConfig |
Map |
Não |
Sim |
Configuração de redirecionamento. |
Para mais informações, consulte Propriedades de RedirectConfig. |
|
RemoveHeaderConfig |
Map |
Não |
Sim |
Configuração para exclusão de campo de cabeçalho. |
Para mais informações, consulte Propriedades de RemoveHeaderConfig. |
|
RewriteConfig |
Map |
Não |
Sim |
Configuração de reescrita. |
Para mais informações, consulte Propriedades de RewriteConfig. |
|
TrafficLimitConfig |
Map |
Não |
Sim |
Configuração de limitação de tráfego. |
Para mais informações, consulte Propriedades de TrafficLimitConfig. |
|
TrafficMirrorConfig |
Map |
Não |
Sim |
Configuração de espelhamento de tráfego. |
Para mais informações, consulte Propriedades de TrafficMirrorConfig. |
Sintaxe de FixedResponseConfig
"FixedResponseConfig": {
"HttpCode": String,
"ContentType": String,
"Content": String
}
Propriedades de FixedResponseConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Content |
String |
Não |
Sim |
Conteúdo da resposta fixa. |
O conteúdo pode ter até 1 KB e deve consistir em caracteres ASCII. |
|
ContentType |
String |
Não |
Sim |
Formato da resposta fixa. |
Valores válidos:
|
|
HttpCode |
String |
Não |
Sim |
Código de resposta HTTP. |
Os valores válidos são strings no formato HTTP_2xx, HTTP_4xx e HTTP_5xx, onde x é qualquer dígito. |
Sintaxe de RedirectConfig
"RedirectConfig": {
"Path": String,
"HttpCode": Integer,
"Query": String,
"Port": String,
"Host": String,
"Protocol": String
}
Propriedades de RedirectConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Host |
String |
Não |
Sim |
Host de destino do redirecionamento de requisições. |
Valores válidos:
|
|
HttpCode |
Integer |
Não |
Sim |
Método de redirecionamento. |
Valores válidos:
|
|
Path |
String |
Não |
Sim |
Caminho de destino do redirecionamento de requisições. |
Valores válidos:
|
|
Port |
String |
Não |
Sim |
Porta de destino do redirecionamento de requisições. |
Valores válidos:
|
|
Protocol |
String |
Não |
Sim |
Protocolo de destino do redirecionamento de requisições. |
Valores válidos:
|
|
Query |
String |
Não |
Sim |
String de consulta de destino do redirecionamento de requisições. |
Valores válidos:
|
Sintaxe de ForwardGroupConfig
"ForwardGroupConfig": {
"ServerGroupTuples": List,
"ServerGroupStickySession": Map
}
Propriedades de ForwardGroupConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
ServerGroupStickySession |
Map |
Não |
Sim |
Configuração de persistência de sessão. |
Para mais informações, consulte Propriedades de ServerGroupStickySession. |
|
ServerGroupTuples |
List |
Não |
Sim |
Lista de grupos de servidores virtuais de destino. |
Para mais informações, consulte Propriedades de ServerGroupTuples. |
Sintaxe de ServerGroupStickySession
"ServerGroupStickySession": {
"Enabled": Boolean,
"Timeout": Integer
}
Propriedades de ServerGroupStickySession
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Enabled |
Boolean |
Não |
Sim |
Define se a persistência de sessão está ativada. |
Valores válidos:
|
|
Timeout |
Integer |
Não |
Sim |
Tempo limite. |
Unidade: segundos. Valores válidos: 1 a 86400. |
Sintaxe de ServerGroupTuples
"ServerGroupTuples": [
{
"ServerGroupId": String
}
]
Propriedades de ServerGroupTuples
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
ServerGroupId |
String |
Sim |
Sim |
ID do grupo de servidores virtuais de destino. |
Nenhuma |
Sintaxe de InsertHeaderConfig
"InsertHeaderConfig": {
"ValueType": String,
"Value": String,
"Key": String
}
Propriedades de InsertHeaderConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Key |
String |
Não |
Sim |
Nome do campo de cabeçalho a inserir. |
O nome deve ter de 1 a 40 caracteres e pode conter letras, dígitos, sublinhados (_) e hifens (-). O nome do cabeçalho em InsertHeaderConfig deve ser único. Nota
O nome do cabeçalho não pode ser definido como nenhum dos seguintes valores (sem distinção entre maiúsculas e minúsculas): slb-id, slb-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-eip, x-forwarded-port, x-forwarded-client-srcport, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, authority. |
|
Value |
String |
Não |
Sim |
Conteúdo do campo de cabeçalho a inserir. |
Valores válidos:
|
|
ValueType |
String |
Não |
Sim |
Tipo do conteúdo do campo de cabeçalho. |
Valores válidos:
|
Sintaxe de RewriteConfig
"RewriteConfig": {
"Path": String,
"Query": String,
"Host": String
}
Propriedades de RewriteConfig
|
Propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrições |
|
Host |
String |
Não |
Sim |
Host de destino para reescrita interna. |
Valores válidos:
|
|
Path |
String |
Não |
Sim |
Caminho a reescrever. |
Valores válidos:
|
|
Query |
String |
Não |
Sim |
String de consulta para reescrita interna. |
Valores válidos:
|
Sintaxe de RuleConditions
"RuleConditions": [
{
"MethodConfig": Map,
"PathConfig": Map,
"Type": String,
"QueryStringConfig": Map,
"HostConfig": Map,
"CookieConfig": Map,
"HeaderConfig": Map,
"SourceIpConfig": Map,
"ResponseStatusCodeConfig": Map,
"ResponseHeaderConfig": Map
}
]
Propriedades de RuleConditions
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Type |
String |
Sim |
Sim |
Tipo da condição da regra de encaminhamento. |
Valores válidos:
|
|
CookieConfig |
Map |
Não |
Sim |
Configuração de cookie. |
Para mais informações, consulte Propriedades de CookieConfig. |
|
HeaderConfig |
Map |
Não |
Sim |
Configuração de campo de cabeçalho. |
Para mais informações, consulte Propriedades de HeaderConfig. |
|
HostConfig |
Map |
Não |
Sim |
Configuração de host. |
Para mais informações, consulte Propriedades de HostConfig. |
|
MethodConfig |
Map |
Não |
Sim |
Configuração do método de requisição. |
Para mais informações, consulte Propriedades de MethodConfig. |
|
PathConfig |
Map |
Não |
Sim |
Configuração do caminho de encaminhamento. |
Para mais informações, consulte Propriedades de PathConfig. |
|
QueryStringConfig |
Map |
Não |
Sim |
Configuração da string de consulta. |
Para mais informações, consulte Propriedades de QueryStringConfig. |
|
SourceIpConfig |
Map |
Não |
Sim |
Configuração de IP de origem. |
Para mais informações, consulte Propriedades de SourceIpConfig. |
|
ResponseStatusCodeConfig |
Map |
Não |
Sim |
Configuração do código de status da resposta. |
Para mais informações, consulte Propriedades de ResponseStatusCodeConfig. |
|
ResponseHeaderConfig |
Map |
Não |
Sim |
Configuração da condição de cabeçalho da resposta. |
Para mais informações, consulte Propriedades de ResponseHeaderConfig. |
Sintaxe de ResponseStatusCodeConfig
"ResponseStatusCodeConfig": {
"Values": List
}
Propriedades de ResponseStatusCodeConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
Lista de códigos de status da resposta. |
Nenhuma. |
Sintaxe de ResponseHeaderConfig
"ResponseHeaderConfig": {
"Key": String,
"Values": List
}
Propriedades de ResponseHeaderConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Key |
String |
Não |
Sim |
Chave do campo de cabeçalho. |
|
|
Values |
List |
Não |
Sim |
Valor do campo de cabeçalho. |
|
Sintaxe de SourceIpConfig
"SourceIpConfig": {
"Values": List
}
Propriedades de SourceIpConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
Um ou mais endereços IP ou blocos CIDR. |
Uma regra de encaminhamento pode conter até cinco endereços IP. |
Sintaxe de MethodConfig
"MethodConfig": {
"Values": List
}
Propriedades de MethodConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
Método de requisição. |
Valores válidos:
|
Sintaxe de PathConfig
"PathConfig": {
"Values": List
}
Propriedades de PathConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
Caminho de encaminhamento. |
O caminho deve ter de 1 a 128 caracteres. Deve começar com uma barra (/) e pode conter letras, dígitos, asterisco (*), ponto de interrogação (?) e os seguintes caracteres especiais: |
Sintaxe de QueryStringConfig
"QueryStringConfig": {
"Values": List
}
Propriedades de QueryStringConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
String de consulta. |
Nenhuma |
Sintaxe de HostConfig
"HostConfig": {
"Values": List
}
Propriedades de HostConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
Nome do host. |
O valor deve atender aos seguintes requisitos:
|
Sintaxe de CookieConfig
"CookieConfig": {
"Values": List
}
Propriedades de CookieConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Values |
List |
Não |
Sim |
Lista de valores de cookie. |
Nenhuma |
Sintaxe de HeaderConfig
"HeaderConfig": {
"Values": List,
"Key": String
}
Propriedades de HeaderConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Key |
String |
Não |
Sim |
Chave do campo de cabeçalho. |
A chave deve ter de 1 a 40 caracteres. Pode conter letras minúsculas, dígitos, hifens (-) e sublinhados (_). Cookie e Host não são suportados. |
|
Values |
List |
Não |
Sim |
Valor do campo de cabeçalho. |
O valor do campo de cabeçalho deve ser único na mesma condição de regra de encaminhamento. O valor deve ter de 1 a 128 caracteres e pode conter caracteres imprimíveis com valores ASCII de |
Sintaxe de TrafficMirrorConfig
"TrafficMirrorConfig": {
"MirrorGroupConfig": Map,
"TargetType": String
}
Propriedades de TrafficMirrorConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
MirrorGroupConfig |
Map |
Não |
Sim |
Configuração do grupo de servidores virtuais. |
Para mais informações, consulte Propriedades de MirrorGroupConfig. |
|
TargetType |
String |
Não |
Sim |
Tipo do destino de espelhamento. |
Valores válidos:
|
Sintaxe de MirrorGroupConfig
"MirrorGroupConfig": {
"ServerGroupTuples": List
}
Propriedades de MirrorGroupConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
ServerGroupTuples |
List |
Sim |
Sim |
Lista de grupos de servidores virtuais. |
Nenhuma |
Sintaxe de TrafficLimitConfig
"TrafficLimitConfig": {
"PerIpQps": Integer,
"QPS": Integer
}
Propriedades de TrafficLimitConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
PerIpQps |
Integer |
Não |
Sim |
Número de consultas por segundo (QPS) para um único endereço IP. |
Valores válidos: 1 a 100000. |
|
QPS |
Integer |
Não |
Sim |
Número total de consultas por segundo (QPS). |
Valores válidos: 1 a 100000. Nota
Se você configurar QPS e PerIpQps, o valor de PerIpQps deve ser menor que o valor de QPS. |
Sintaxe de RemoveHeaderConfig
"RemoveHeaderConfig": {
"Key": String
}
Propriedades de RemoveHeaderConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Key |
String |
Não |
Sim |
Chave do campo de cabeçalho. |
Nenhuma |
Sintaxe de CorsConfig
"CorsConfig": {
"AllowMethods": List,
"AllowHeaders": List,
"AllowOrigin": List,
"MaxAge": Integer,
"AllowCredentials": String,
"ExposeHeaders": List
}
Propriedades de CorsConfig
|
Propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
AllowMethods |
List |
Não |
Sim |
Métodos HTTP permitidos para requisições cross-domain. |
Métodos HTTP permitidos para acesso cross-domain. Valores válidos:
|
|
AllowHeaders |
List |
Não |
Sim |
Lista de cabeçalhos permitidos para requisições cross-domain. |
Especifique o caractere curinga |
|
AllowOrigin |
List |
Não |
Sim |
Lista de origens permitidas. |
Especifique um ou mais valores, ou apenas o caractere curinga
|
|
AllowCredentials |
String |
Não |
Sim |
Define se credenciais devem ser transportadas. |
Valores válidos:
|
|
ExposeHeaders |
List |
Não |
Sim |
Lista de cabeçalhos que podem ser expostos. |
Especifique o caractere curinga |
|
MaxAge |
Integer |
Não |
Sim |
Duração máxima de cache de uma requisição preflight no navegador. |
Unidade: segundos. Valores válidos: -1 a 172800. |
Valores de retorno
Fn::GetAtt
RuleId: ID da regra de encaminhamento.
ListenerId: ID do listener.
Exemplos
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ListenerId:
Type: String
Description: |-
The ID of the listener that is configured for the Application Load Balancer (ALB)
instance.
Default: lsn-5tl4x9oav95yeb****
Resources:
Rule:
Type: ALIYUN::ALB::Rule
Properties:
RuleActions:
- FixedResponseConfig:
Content: dssacav
ContentType: text/plain
HttpCode: '200'
ForwardGroupConfig:
ServerGroupTuples:
- ServerGroupId: sgp-46ndzg2wz4v5mp****
InsertHeaderConfig:
Key: key
Value: ClientSrcPort
ValueType: SystemDefined
Order: 1
RedirectConfig:
Host: ${host}
HttpCode: '301'
Path: /test
Port: '10'
Protocol: HTTP
Query: quert
RewriteConfig:
Host: example.com
Path: /tsdf
Query: quedsa
Type: ForwardGroup
Priority: 10
RuleConditions:
- CookieConfig:
Values:
- Key: test
Value: test
HeaderConfig:
Key: port
Values:
- '5006'
HostConfig:
Values:
- www.example.com
MethodConfig:
Values:
- PUT
PathConfig:
Values:
- /test
QueryStringConfig:
Values:
- Key: test
Value: test
Type: Host
RuleName: MyTestRule
ListenerId:
Ref: ListenerId
Outputs:
RuleId:
Description: The ID of the forwarding rules.
Value:
Fn::GetAtt:
- Rule
- RuleId
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ListenerId": {
"Type": "String",
"Description": "The ID of the listener that is configured for the Application Load Balancer (ALB)\ninstance.",
"Default": "lsn-5tl4x9oav95yeb****"
}
},
"Resources": {
"Rule": {
"Type": "ALIYUN::ALB::Rule",
"Properties": {
"RuleActions": [
{
"FixedResponseConfig": {
"Content": "dssacav",
"ContentType": "text/plain",
"HttpCode": "200"
},
"ForwardGroupConfig": {
"ServerGroupTuples": [
{
"ServerGroupId": "sgp-46ndzg2wz4v5mp****"
}
]
},
"InsertHeaderConfig": {
"Key": "key",
"Value": "ClientSrcPort",
"ValueType": "SystemDefined"
},
"Order": 1,
"RedirectConfig": {
"Host": "${host}",
"HttpCode": "301",
"Path": "/test",
"Port": "10",
"Protocol": "HTTP",
"Query": "quert"
},
"RewriteConfig": {
"Host": "example.com",
"Path": "/tsdf",
"Query": "quedsa"
},
"Type": "ForwardGroup"
}
],
"Priority": 10,
"RuleConditions": [
{
"CookieConfig": {
"Values": [
{
"Key": "test",
"Value": "test"
}
]
},
"HeaderConfig": {
"Key": "port",
"Values": [
"5006"
]
},
"HostConfig": {
"Values": [
"www.example.com"
]
},
"MethodConfig": {
"Values": [
"PUT"
]
},
"PathConfig": {
"Values": [
"/test"
]
},
"QueryStringConfig": {
"Values": [
{
"Key": "test",
"Value": "test"
}
]
},
"Type": "Host"
}
],
"RuleName": "MyTestRule",
"ListenerId": {
"Ref": "ListenerId"
}
}
}
},
"Outputs": {
"RuleId": {
"Description": "The ID of the forwarding rules.",
"Value": {
"Fn::GetAtt": [
"Rule",
"RuleId"
]
}
}
}
}