La ressource ALIYUN::ALB::Rule crée une règle de transfert pour un écouteur Application Load Balancer (ALB).
Syntaxe
{
"Type": "ALIYUN::ALB::Rule",
"Properties": {
"RuleActions": List,
"Priority": Integer,
"RuleConditions": List,
"Direction": String,
"RuleName": String,
"ListenerId": String
}
}
Propriétés
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
ListenerId |
String |
Oui |
Non |
ID de l'écouteur associé à l'instance Application Load Balancer (ALB). |
Aucune |
|
Priority |
Integer |
Oui |
Oui |
Priorité de la règle de transfert. |
Valeurs valides : 1 à 10 000. Plus la valeur est faible, plus la priorité est élevée. Remarque
La priorité de chaque règle de transfert associée au même écouteur doit être unique. |
|
RuleActions |
List |
Oui |
Oui |
Actions définies par la règle de transfert. |
Pour en savoir plus, consultez les propriétés RuleActions. |
|
RuleConditions |
List |
Oui |
Oui |
Conditions d'application de la règle de transfert. |
Pour en savoir plus, consultez les propriétés RuleConditions. |
|
RuleName |
String |
Oui |
Oui |
Nom de la règle de transfert. |
Le nom doit comporter entre 2 et 128 caractères. Il doit commencer par une lettre ou un caractère chinois et peut contenir des lettres, des caractères chinois, des chiffres, des points (.), des traits de soulignement (_) et des tirets (-). |
|
Direction |
String |
Non |
Non |
Sens d'application de la règle de transfert. |
Valeurs valides :
|
Syntaxe RuleActions
"RuleActions": [
{
"Order": Integer,
"FixedResponseConfig": Map,
"Type": String,
"RedirectConfig": Map,
"ForwardGroupConfig": Map,
"InsertHeaderConfig": Map,
"RewriteConfig": Map,
"TrafficMirrorConfig": Map,
"TrafficLimitConfig": Map,
"RemoveHeaderConfig": Map,
"CorsConfig": Map
}
]
Propriétés RuleActions
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Order |
Integer |
Oui |
Oui |
Ordre d'exécution des actions de la règle de transfert. |
Valeurs valides : 1 à 50 000. Les actions sont exécutées par ordre croissant de valeur. Remarque
La valeur doit être unique. |
|
Type |
String |
Oui |
Oui |
Type d'action. |
Valeurs valides :
|
|
CorsConfig |
Map |
Non |
Oui |
Configuration CORS (Cross-Origin Resource Sharing). |
Pour en savoir plus, consultez les propriétés CorsConfig. |
|
FixedResponseConfig |
Map |
Non |
Oui |
Configuration de la réponse fixe. |
Pour en savoir plus, consultez les propriétés FixedResponseConfig. |
|
ForwardGroupConfig |
Map |
Non |
Oui |
Configuration du groupe de transfert. |
Pour en savoir plus, consultez les propriétés ForwardGroupConfig. |
|
InsertHeaderConfig |
Map |
Non |
Oui |
Configuration d'insertion d'un champ d'en-tête. |
Pour en savoir plus, consultez les propriétés InsertHeaderConfig. |
|
RedirectConfig |
Map |
Non |
Oui |
Configuration de la redirection. |
Pour en savoir plus, consultez les propriétés RedirectConfig. |
|
RemoveHeaderConfig |
Map |
Non |
Oui |
Configuration de suppression d'un champ d'en-tête. |
Pour en savoir plus, consultez les propriétés RemoveHeaderConfig. |
|
RewriteConfig |
Map |
Non |
Oui |
Configuration de réécriture. |
Pour en savoir plus, consultez les propriétés RewriteConfig. |
|
TrafficLimitConfig |
Map |
Non |
Oui |
Configuration de limitation du trafic. |
Pour en savoir plus, consultez les propriétés TrafficLimitConfig. |
|
TrafficMirrorConfig |
Map |
Non |
Oui |
Configuration de la mise en miroir du trafic. |
Pour en savoir plus, consultez les propriétés TrafficMirrorConfig. |
Syntaxe FixedResponseConfig
"FixedResponseConfig": {
"HttpCode": String,
"ContentType": String,
"Content": String
}
Propriétés FixedResponseConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Content |
String |
Non |
Oui |
Contenu de la réponse fixe. |
Le contenu ne doit pas dépasser 1 Ko et doit être composé de caractères ASCII. |
|
ContentType |
String |
Non |
Oui |
Format de la réponse fixe. |
Valeurs valides :
|
|
HttpCode |
String |
Non |
Oui |
Code de réponse HTTP. |
Les valeurs valides sont des chaînes au format HTTP_2xx, HTTP_4xx et HTTP_5xx, où x représente n'importe quel chiffre. |
Syntaxe RedirectConfig
"RedirectConfig": {
"Path": String,
"HttpCode": Integer,
"Query": String,
"Port": String,
"Host": String,
"Protocol": String
}
Propriétés RedirectConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Host |
String |
Non |
Oui |
Hôte vers lequel les requêtes sont redirigées. |
Valeurs valides :
|
|
HttpCode |
Integer |
Non |
Oui |
Méthode de redirection. |
Valeurs valides :
|
|
Path |
String |
Non |
Oui |
Chemin vers lequel les requêtes sont redirigées. |
Valeurs valides :
|
|
Port |
String |
Non |
Oui |
Port vers lequel les requêtes sont redirigées. |
Valeurs valides :
|
|
Protocol |
String |
Non |
Oui |
Protocole vers lequel les requêtes sont redirigées. |
Valeurs valides :
|
|
Query |
String |
Non |
Oui |
Chaîne de requête vers laquelle les requêtes sont redirigées. |
Valeurs valides :
|
Syntaxe ForwardGroupConfig
"ForwardGroupConfig": {
"ServerGroupTuples": List,
"ServerGroupStickySession": Map
}
Propriétés ForwardGroupConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
ServerGroupStickySession |
Map |
Non |
Oui |
Configuration de la persistance de session. |
Pour en savoir plus, consultez les propriétés ServerGroupStickySession. |
|
ServerGroupTuples |
List |
Non |
Oui |
Liste des groupes de serveurs virtuels de destination. |
Pour en savoir plus, consultez les propriétés ServerGroupTuples. |
Syntaxe ServerGroupStickySession
"ServerGroupStickySession": {
"Enabled": Boolean,
"Timeout": Integer
}
Propriétés ServerGroupStickySession
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Enabled |
Boolean |
Non |
Oui |
Indique si la persistance de session est activée. |
Valeurs valides :
|
|
Timeout |
Integer |
Non |
Oui |
Délai d'expiration. |
Unité : secondes. Valeurs valides : 1 à 86 400. |
Syntaxe ServerGroupTuples
"ServerGroupTuples": [
{
"ServerGroupId": String
}
]
Propriétés ServerGroupTuples
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
ServerGroupId |
String |
Oui |
Oui |
ID du groupe de serveurs virtuels de destination. |
Aucune |
Syntaxe InsertHeaderConfig
"InsertHeaderConfig": {
"ValueType": String,
"Value": String,
"Key": String
}
Propriétés InsertHeaderConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Key |
String |
Non |
Oui |
Nom du champ d'en-tête à insérer. |
Le nom doit comporter entre 1 et 40 caractères et peut contenir des lettres, des chiffres, des traits de soulignement (_) et des tirets (-). Le nom d'en-tête dans InsertHeaderConfig doit être unique. Remarque
Le nom d'en-tête ne peut pas être défini sur l'une des valeurs suivantes (sensibilité à la casse ignorée) : 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 |
Non |
Oui |
Contenu du champ d'en-tête à insérer. |
Valeurs valides :
|
|
ValueType |
String |
Non |
Oui |
Type de contenu du champ d'en-tête. |
Valeurs valides :
|
Syntaxe RewriteConfig
"RewriteConfig": {
"Path": String,
"Query": String,
"Host": String
}
Propriétés RewriteConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Host |
String |
Non |
Oui |
Hôte de destination pour la réécriture interne. |
Valeurs valides :
|
|
Path |
String |
Non |
Oui |
Chemin à réécrire. |
Valeurs valides :
|
|
Query |
String |
Non |
Oui |
Chaîne de requête pour la réécriture interne. |
Valeurs valides :
|
Syntaxe RuleConditions
"RuleConditions": [
{
"MethodConfig": Map,
"PathConfig": Map,
"Type": String,
"QueryStringConfig": Map,
"HostConfig": Map,
"CookieConfig": Map,
"HeaderConfig": Map,
"SourceIpConfig": Map,
"ResponseStatusCodeConfig": Map,
"ResponseHeaderConfig": Map
}
]
Propriétés RuleConditions
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Type |
String |
Oui |
Oui |
Type de condition de la règle de transfert. |
Valeurs valides :
|
|
CookieConfig |
Map |
Non |
Oui |
Configuration des cookies. |
Pour en savoir plus, consultez les propriétés CookieConfig. |
|
HeaderConfig |
Map |
Non |
Oui |
Configuration des champs d'en-tête. |
Pour en savoir plus, consultez les propriétés HeaderConfig. |
|
HostConfig |
Map |
Non |
Oui |
Configuration de l'hôte. |
Pour en savoir plus, consultez les propriétés HostConfig. |
|
MethodConfig |
Map |
Non |
Oui |
Configuration de la méthode de requête. |
Pour en savoir plus, consultez les propriétés MethodConfig. |
|
PathConfig |
Map |
Non |
Oui |
Configuration du chemin de transfert. |
Pour en savoir plus, consultez les propriétés PathConfig. |
|
QueryStringConfig |
Map |
Non |
Oui |
Configuration de la chaîne de requête. |
Pour en savoir plus, consultez les propriétés QueryStringConfig. |
|
SourceIpConfig |
Map |
Non |
Oui |
Configuration des règles de transfert. |
Pour en savoir plus, consultez les propriétés SourceIpConfig. |
|
ResponseStatusCodeConfig |
Map |
Non |
Oui |
Configuration du code d'état de la réponse. |
Pour en savoir plus, consultez les propriétés ResponseStatusCodeConfig. |
|
ResponseHeaderConfig |
Map |
Non |
Oui |
Configuration de la condition d'en-tête de réponse. |
Pour en savoir plus, consultez les propriétés ResponseHeaderConfig. |
Syntaxe ResponseStatusCodeConfig
"ResponseStatusCodeConfig": {
"Values": List
}
Propriétés ResponseStatusCodeConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Liste des codes d'état de réponse. |
Aucune. |
Syntaxe ResponseHeaderConfig
"ResponseHeaderConfig": {
"Key": String,
"Values": List
}
Propriétés ResponseHeaderConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Key |
String |
Non |
Oui |
Clé du champ d'en-tête. |
|
|
Values |
List |
Non |
Oui |
Valeur du champ d'en-tête. |
|
Syntaxe SourceIpConfig
"SourceIpConfig": {
"Values": List
}
Propriétés SourceIpConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Une ou plusieurs adresses IP ou blocs CIDR. |
Une règle de transfert peut contenir jusqu'à cinq adresses IP. |
Syntaxe MethodConfig
"MethodConfig": {
"Values": List
}
Propriétés MethodConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Méthode de requête. |
Valeurs valides :
|
Syntaxe PathConfig
"PathConfig": {
"Values": List
}
Propriétés PathConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Chemin de transfert. |
Le chemin doit comporter entre 1 et 128 caractères. Il doit commencer par une barre oblique (/) et peut contenir des lettres, des chiffres, un astérisque (*), un point d'interrogation (?) et les caractères spéciaux suivants : |
Syntaxe QueryStringConfig
"QueryStringConfig": {
"Values": List
}
Propriétés QueryStringConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Chaîne de requête. |
Aucune |
Syntaxe HostConfig
"HostConfig": {
"Values": List
}
Propriétés HostConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Nom d'hôte. |
La valeur doit respecter les exigences suivantes :
|
Syntaxe CookieConfig
"CookieConfig": {
"Values": List
}
Propriétés CookieConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Values |
List |
Non |
Oui |
Liste des valeurs de cookie. |
Aucune |
Syntaxe HeaderConfig
"HeaderConfig": {
"Values": List,
"Key": String
}
Propriétés HeaderConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Key |
String |
Non |
Oui |
Clé du champ d'en-tête. |
La clé doit comporter entre 1 et 40 caractères. Elle peut contenir des lettres minuscules, des chiffres, des tirets (-) et des traits de soulignement (_). Cookie et Host ne sont pas pris en charge. |
|
Values |
List |
Non |
Oui |
Valeur du champ d'en-tête. |
La valeur du champ d'en-tête doit être unique au sein de la même condition de règle de transfert. Elle doit comporter entre 1 et 128 caractères et peut contenir des caractères imprimables dont les valeurs ASCII vont de |
Syntaxe TrafficMirrorConfig
"TrafficMirrorConfig": {
"MirrorGroupConfig": Map,
"TargetType": String
}
Propriétés TrafficMirrorConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
MirrorGroupConfig |
Map |
Non |
Oui |
Configuration du groupe de serveurs virtuels. |
Pour en savoir plus, consultez les propriétés MirrorGroupConfig. |
|
TargetType |
String |
Non |
Oui |
Type de destination de la mise en miroir. |
Valeurs valides :
|
Syntaxe MirrorGroupConfig
"MirrorGroupConfig": {
"ServerGroupTuples": List
}
Propriétés MirrorGroupConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
ServerGroupTuples |
List |
Oui |
Oui |
Liste des groupes de serveurs virtuels. |
Aucune |
Syntaxe TrafficLimitConfig
"TrafficLimitConfig": {
"PerIpQps": Integer,
"QPS": Integer
}
Propriétés TrafficLimitConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
PerIpQps |
Integer |
Non |
Oui |
Nombre de requêtes par seconde (QPS) pour une seule adresse IP. |
Valeurs valides : 1 à 100 000. |
|
QPS |
Integer |
Non |
Oui |
Nombre total de requêtes par seconde (QPS). |
Valeurs valides : 1 à 100 000. Remarque
Si vous configurez à la fois QPS et PerIpQps, la valeur de PerIpQps doit être inférieure à celle de QPS. |
Syntaxe RemoveHeaderConfig
"RemoveHeaderConfig": {
"Key": String
}
Propriétés RemoveHeaderConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
Key |
String |
Non |
Oui |
Clé du champ d'en-tête. |
Aucune |
Syntaxe CorsConfig
"CorsConfig": {
"AllowMethods": List,
"AllowHeaders": List,
"AllowOrigin": List,
"MaxAge": Integer,
"AllowCredentials": String,
"ExposeHeaders": List
}
Propriétés CorsConfig
|
Propriété |
Type |
Obligatoire |
Modifiable |
Description |
Contraintes |
|
AllowMethods |
List |
Non |
Oui |
Méthodes HTTP autorisées pour les requêtes interdomaines. |
Méthodes HTTP autorisées pour l'accès interdomaine. Valeurs valides :
|
|
AllowHeaders |
List |
Non |
Oui |
Liste des en-têtes autorisés pour les requêtes interdomaines. |
Spécifiez le caractère générique |
|
AllowOrigin |
List |
Non |
Oui |
Liste des origines autorisées. |
Spécifiez une ou plusieurs valeurs, ou uniquement le caractère générique
|
|
AllowCredentials |
String |
Non |
Oui |
Indique si les identifiants doivent être transmis. |
Valeurs valides :
|
|
ExposeHeaders |
List |
Non |
Oui |
Liste des en-têtes pouvant être exposés. |
Spécifiez le caractère générique |
|
MaxAge |
Integer |
Non |
Oui |
Durée maximale de mise en cache d'une requête préliminaire dans le navigateur. |
Unité : secondes. Valeurs valides : -1 à 172 800. |
Valeurs de retour
Fn::GetAtt
RuleId : ID de la règle de transfert.
ListenerId : ID de l'écouteur.
Exemples
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"
]
}
}
}
}