amazon-web-services - community.aws.elb_application_lb:如何在侦听器中为新添加的规则分配下一个优先级
问题描述
我创建了一个 ansible playbook,它通过 community.aws.elb_application_lb 插件向负载均衡器侦听器添加新规则。
- name: Create the listener rule in the load balancer
community.aws.elb_application_lb:
...
listeners:
- Protocol: "{{ listener.protocol }}"
...
Rules:
- Conditions:
- Field: host-header
Values: "{{ domains }}"
Actions:
- TargetGroupName: "{{ target_group_name }}"
Type: forward
Priority: "{{ some_value }}"
看起来 Priority 参数是必需的,并且必须是整数。对于任何新添加的规则,我需要找到一种方法来告诉插件为新添加的规则设置下一个优先级。例如,如果我在侦听器中定义了 10 条规则,则新添加的规则将具有优先级 11。
我知道我可以通过调用community.aws.elb_application_lb_info
插件并解析生成的 json 以获得最后一个优先级并添加 1 来计算最后一个优先级。我已经尝试过了,但问题是我的剧本可能会并行运行。因此,在并行执行中,运行中的 playbook 可能都确定下一个优先级是 11(因为在它们收集有关负载均衡器侦听器的信息时,定义了 10 条规则)。所以两者都添加了一个优先级为 11 的新规则,最后一个剧本基本上覆盖了之前剧本定义的规则。
如果剧本按顺序而不是并行运行,这个问题就会消失。但不幸的是,要求是它们应该能够并行运行。
那么,是否有可能只告诉插件将下一个优先级分配给新添加的规则?或者任何其他方法来避免覆盖新规则?
解决方案
推荐阅读
- c# - 如何在 .net core api 方法的 swagger 中制作非强制性参数
- c - 串行版本和并行结果不显示相同的输出
- html - 我怎样才能让我在 React.js 中的组件有一个单独的行为?
- c# - 在 Linq 表达式中使用 Async/Await 不会引发异常
- xml - 在powershell中将SSIS XML元素从行转换为列
- swift - 如何使用选择器中的核心数据值?#SwiftUI #CoreData
- python - 如何使用 Python 异步运行终端命令?
- validation - Pentaho 数据验证器错误:找不到指定的字段名进行验证
- azure-active-directory - 带有 Azure AD 的 AWS Cognito 每次都会得到不匹配的回复 URL
- python - 在 Python 中实现没有库的图