У меня уже есть балансировщик нагрузки, в котором есть слушатель.
Я пытаюсь добавить правило к этому 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
Это не рекомендуется. Уже существующие правила лучше отложить в сторону 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
})
да, это считается ранее существовавшим значением, как и arn
. Обычно lookup
запрашивает реквизиты, отличные от arn: docs.aws.amazon.com/cdk/api/v1/docs/…
мой план состоит в том, чтобы сохранить файл arn в файле cdk.json для каждого этапа dev, demo, prod, так что мне нужно сохранить и это.
@cmgchess да, это отличная идея, просто используйте this.node.tryGetContext('listenerLatestPriority')
позже! Просто не пытайтесь генерировать приоритеты из размера массива и т.д.
я не использовал этот подход, но продолжил с ApplicationLoadBalancedFargateInstance, который создает новый прослушиватель с 1 правилом (по умолчанию). Я не знаю, является ли создание слушателя дополнительными затратами. Думаю, я приму это, если это единственный способ
но здесь я должен жестко закодировать как 10? самое последнее значение приоритета