Как вставить новое правило elbv2 поверх правил слушателя, если для первого правила Priority уже установлено значение «1» с использованием elbv2 create_rule? - PullRequest
0 голосов
/ 03 апреля 2020

Я пишу скрипт, который будет вставлять новое правило слушателя elbv2 поверх правил слушателя, уже находящихся в alb.

    response = elbv2_client.create_rule(
        ListenerArn=listener_arn,
        Priority=1,
        Conditions=[
            {
                'Field': 'http-request-method',
                'HttpRequestMethodConfig': {
                    'Values': ['GET']
                }

            }

        ],
        Actions=[
            {
                'Type': 'fixed-response',
                'FixedResponseConfig':
                    {
                        'ContentType': 'text/html',
                        'MessageBody': html_object,
                        'StatusCode': '504'
                    }
            }
        ]
    )

Так же, как вы делали бы на консоли AWS, когда вы вставьте новое правило сверху, и правила автоматически перенумеровываются.

Проблема в том, что номер правила ['Priority'] не совпадает с номером, отображаемым в консоли AWS (как указано в примечании здесь: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html)

Примечание: На консоли отображается относительный порядковый номер для каждого правила, а не приоритет правила. Вы можете получить приоритет правила, описав его с помощью AWS CLI или Elasti c API балансировки нагрузки.

И когда я использую elbv2 create_rule ( ), это дает мне эту ошибку, если самое верхнее правило установлено в Приоритет = 1.

botocore.errorfactory.PriorityInUseException: Произошла ошибка (PriorityInUse) при вызове операции CreateRule: Приоритет '1' в настоящее время используется

TI A!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...