如何在侦听器规则上创建多个条件



我正在尝试创建一个具有两个不同条件的侦听器规则,我一直都会出现错误。

    "ListenerRule": {
      "Type": "AWS::ElasticLoadBalancingV2::ListenerRule",
      "Properties": {
          "Actions": [
                    {
                     "Type": "forward",
                     "TargetGroupArn": {
                     "Ref": "SwaggBOTG"
                    }
            }
           ],
       "Conditions": [
                    {
                        "Field": "query-string",
                        "QueryStringConfig": {
                            "Values": [
                                {
                                    "Key": "app",
                                    "Value": "two"
                                }
                            ]
                        },
                        "Field" : "path-pattern",
                        "PathPatternConfig": {
                            "Values" : [ "/one/*" ]
                        }
                    }
        ],

我需要两个不同的条件。其中之一应该是一种查询类型,而另一种则是途径类型。我只需要创建其中一个,但是我无法创建两个。

错误是下一个:

You cannot specify 'QueryStringConfig' for actions of type 'path-pattern' (Service: AmazonElasticLoadBalancingV2; Status Code: 400; Error Code: ValidationError;

我认为这是语法,但我没有发现问题。

预先感谢。

问题是 Conditions是单独条件的列表。在您的情况下,该列表中应该有2个单独的项目。如果您仔细观察JSON,则可以看到您在同一级别上两次定义Field。第二个"Field" : "path-pattern"覆盖了第一个"Field": "query-string",因此,错误告诉您,您不能仅仅因为无法做到这一点而为"PathPatternConfig"定义'QueryStringConfig'

这是Conditions的正确定义。

"Conditions": [
    {
        "Field": "path-pattern",
        "PathPatternConfig": {
            "Values": ["/one/*"]
        }
    },
    {
        "Field": "query-string",
        "QueryStringConfig": {
            "Values": [
                {
                    "Value": "two",
                    "Key": "app"
                }
            ]
        }
    }
]

最新更新