gpt4 book ai didi

amazon-web-services - AWS ELB 规则中监听器优先级的默认值

转载 作者:行者123 更新时间:2023-12-04 11:53:09 26 4
gpt4 key购买 nike

我正在尝试通过 JavaScript SDK 在 AWS ELB 中创建多个监听器规则。所需priority字段要求您添加优先级。而且我不想每次添加新规则时都必须检查现有规则的优先级。

我想知道是否有人知道设置默认值的方法。假设我有优先级规则 1 2 3 ,有没有办法设置它,以便我添加的下一个规则的优先级为 4?

我尝试了一种解决方法,我将优先级设置为一个非常高的数字,在 AWS 中,它会将其推回到规则 1 2 3。但在系统本身中,优先级仍然存储为那个大数字我给它。
createRule()可以找到我正在使用的函数 here

最佳答案

我自己遇到了这个问题,并认为我会分享我的解决方案,因为这个问题已经快一年没有得到回答了。据我所知,仅使用 AWS 无法做到这一点,但通过一些额外的逻辑,我们可以实现自动化。

RULE_COUNT=$(aws elbv2 describe-rules --listener-arn "${LISTENER_ARN}" | jq ".Rules | length")
aws elbv2 create-rule --listener-arn "${LISTENER_ARN}" --cli-input-json "${RULE_TEMPLATE}" --priority "${RULE_COUNT}"
jq是几乎所有基于 *nix 的系统的一部分的 json 解析器,我们可以使用它来确定规则的数量 awscli返回。应该有 n + 1 n 规则您已定义的规则以及 AWS 始终保留为最低默认优先级的一条默认规则。因此,根据您的问题,下一个优先级将只是 AWS 中的规则总数。

编辑:经过一段时间的工作,我发现亚马逊不一定以任何可预测的方式保持优先级。
第一个答案只有在优先级是连续的并且占据尽可能低的优先级时才有效。例如,如果您有 n规则然后代码假定优先级的范围总是 1..n .事实证明,亚马逊的优先级似乎可以是任何东西,有时 AWS 会在编辑、添加或删除规则时更改所有优先级编号(但保持所有内容的顺序相同)。

我有一个案例,我有 8 条规则,而亚马逊最初给它们的优先级是 1-8正如预期的那样,但是在通过控制台编辑规则顺序后,Amazon 决定将规则的优先级更改为 2-9 .更糟糕的是,在玩弄它并尝试学习该系统后,我最终达到了亚马逊给我优先级的地步 11-1619-20这是我放弃并试图找出更好的系统的地方。
RULE_COUNT=$(aws elbv2 describe-rules --listener-arn "${LISTENER_ARN}" | jq -r '[.Rules[].Priority][0:-1] | map(.|tonumber) | max + 1')
aws elbv2 create-rule --listener-arn "${LISTENER_ARN}" --cli-input-json "${RULE_TEMPLATE}" --priority "${RULE_COUNT}"

这段代码基本上找到所有不同规则的优先级,将它们放在一个列表中,在列表中找到最大的优先级并添加一个。如果您的优先级列表像我的一样被抛出异常,这应该可以工作,尽管我真的希望 AWS 只添加一种简单的添加规则的方法,而不必关心转移其他所有内容的优先级或解析它们的 JSON找出下一个可用优先级在非连续数组中的位置。

关于amazon-web-services - AWS ELB 规则中监听器优先级的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46000378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com