Получить правила/нет правил из ApplicationListener, полученного с помощью fromLookup ARN

У меня уже есть балансировщик нагрузки, в котором есть слушатель.
Я пытаюсь добавить правило к этому ApplicationListener, которое я беру из fromLookup, давая listenerArn

Моя проблема заключается в том, чтобы узнать, есть ли способ получить правила (мне просто нужен счет, так что если это массив, это тоже хорошо) прослушивателя приложений, который я схватил из arn. Когда я смотрю из консоли AWS, для этого слушателя есть 10 правил, включая правило по умолчанию (последнее). Моя цель - установить priority как количество правил вместо жесткого кодирования.
priorty также является обязательным полем, которое принимает число в соответствии с документы, поэтому я не могу игнорировать его, надеясь, что оно будет иметь наименьший приоритет.

Я прошел через эта проблема с гитхабом, но это не помогло

const listenerArn = 'arn:aws:elasticloadbalancing:eu-central-1.....';
const appListener = ApplicationListener.fromLookup(this, `ALBListener-${props.stage}`, { listenerArn });

const applicationListenerRule = new ApplicationListenerRule(this, `MyAppRule-${props.stage}`, {
      listener: appListener,
      priority: 123 //i want to set it to least priority but possibly without hardcoding 
})

Буду рад узнать, есть ли обходные пути
Я использую CDK v2.33

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 199
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это не рекомендуется. Уже существующие правила лучше отложить в сторону listenerArn. priority не обязательно должен быть жестко закодирован, но он должен быть статическим:

const listenerProps = {
  arn: 'arn:aws:elasticloadbalancing:eu-central-1.....',
  latestPriority: 10,
};
const appListener = ApplicationListener.fromLookup(this, `ALBListener-${props.stage}`, { listenerArn: listenerProps.arn });

const applicationListenerRule = new ApplicationListenerRule(this, `MyAppRule-${props.stage}`, {
      listener: appListener,
      priority: listenerProps.latestPriority + 1
})

но здесь я должен жестко закодировать как 10? самое последнее значение приоритета

cmgchess 28.07.2022 14:01

да, это считается ранее существовавшим значением, как и arn. Обычно lookup запрашивает реквизиты, отличные от arn: docs.aws.amazon.com/cdk/api/v1/docs/…

Lasek 28.07.2022 14:11

мой план состоит в том, чтобы сохранить файл arn в файле cdk.json для каждого этапа dev, demo, prod, так что мне нужно сохранить и это.

cmgchess 28.07.2022 14:14

@cmgchess да, это отличная идея, просто используйте this.node.tryGetContext('listenerLatestPriority') позже! Просто не пытайтесь генерировать приоритеты из размера массива и т.д.

Lasek 28.07.2022 14:29

я не использовал этот подход, но продолжил с ApplicationLoadBalancedFargateInstance, который создает новый прослушиватель с 1 правилом (по умолчанию). Я не знаю, является ли создание слушателя дополнительными затратами. Думаю, я приму это, если это единственный способ

cmgchess 01.08.2022 18:39

Другие вопросы по теме