Je souhaite résoudre l'erreur qui s’affiche lorsque je crée ou mets à jour la pile avec la ressource AWS::ElasticLoadBalancingV2::ListenerRule dans AWS CloudFormation.
Brève description
Cette erreur peut être due à :
- Un Amazon Resource Name (ARN) d'un écouteur non valide
- Autorisations AWS Identity and Access Management (AWS IAM) manquantes ou insuffisantes
- Valeurs de condition qui dépassent les quotas pour la règle
- Utilisation d'un caractère non autorisé comme valeur de champ pour une condition
Résolution
La section suivante traite de certaines erreurs courantes.
Un Amazon Resource Name (ARN) d'un écouteur non valide
Vérifiez si le format ARN de l'écouteur est incorrect. La ressource AWS::ElasticLoadBalancingV2::ListenerRule est associée à une ressource d'écouteur attachée à un Elastic Load Balancer. Assurez-vous que l'ARN d'écouteur correct est transmis à la propriété ARN de l'écouteur.
Exemple de format pour l'ARN d'un écouteur :
arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/Application-Load-Balancer/0b761fa41d0fbe95/9e86778540dfe57b
Autorisations IAM manquantes ou insuffisantes
Assurez-vous que le rôle de service CloudFormation ou que l'utilisateur qui crée la pile dispose des autorisations requises. Les autorisations répertoriées ci-dessous permettent au rôle de service ou à l'utilisateur de créer ou de modifier correctement les règles d'écouteur.
- elasticloadbalancing:DescribeRules
- elasticloadbalancing:CreateRule
- elasticloadbalancing:ModifyRule
Les valeurs de condition dépassent les quotas pour la règle (EDIT)
Une règle d'écouteur ne peut présenter que cinq valeurs de condition par règle. Ce quota ne peut pas être ajusté si les conditions spécifiées nécessitent plus de cinq valeurs.
Utilisation d'un caractère non autorisé comme valeur de champ pour une condition
Pour les conditions de règle d'écouteur, seuls les caractères suivants sont autorisés pour la propriété Field :
Si Field est un en-tête d'hôte et que vous n'utilisez pas HostHeaderConfig, spécifiez un nom d'hôte unique (par exemple, my.example.com). Un nom d'hôte ne distingue pas les majuscules et minuscules et peut comporter jusqu'à 128 caractères. Pour plus d'informations, consultez la section Conditions de l'hôte de la rubrique Écouteurs pour vos Application Load Balancers.
Lorsque vous spécifiez plusieurs noms d'hôtes qui utilisent HostHeaderConfig, la propriété doit utiliser uniquement les caractères des modèles autorisés.
Si Field est un modèle de chemin et que vous n'utilisez pas PathPatternConfig, spécifiez un modèle de chemin unique (par exemple, /img/). Un modèle de chemin distingue les majuscules et minuscules et peut comporter jusqu'à 128 caractères. Pour plus d'informations, consultez les conditions Chemin de la section Écouteurs pour vos Application Load Balancers.
Lorsque vous spécifiez plusieurs modèles de chemin à l'aide de PathPatternConfig, la propriété doit utiliser uniquement les caractères des modèles autorisés.
Reportez-vous à l'exemple suivant. Si le champ est un en-tête d'hôte et que la valeur qui lui est transmise n'est pas une valeur autorisée pour l'en-tête d'hôte, une erreur ValidationException s’affiche. Dans l'exemple ci-dessous, /dev n’est pas une valeur autorisée pour l'en-tête d'hôte. Utilisez un modèle de chemin de type champ pour /.
Conditions:
- Field: host-header
Values:
- "admin-test.com/dev”
Vérifier AWS CloudTrail
Si aucune des options précédentes ne fonctionne, vérifiez l'appel d'API CreateRule, ModifyRule ou DescribeRules qui a été invoqué lors de la création de la pile. Les erreurs détectées dans les journaux CloudTrail fournissent de plus amples détails sur les raisons pour lesquelles CloudFormation n'a pas réussi à mettre à jour la règle d'écouteur.
Informations connexes
Actions, ressources et clés de condition pour AWS Elastic Load Balancing V2
Écouteurs pour vos Application Load Balancers
Types de conditions de règle