在 boto3 中传递的用于创建 ELB 规则的实际值是多少

What is the actual value to be passed in boto3 for creating the rules for ELB

我正在处理一个用例,在该用例中,用户试图在 aws 中创建服务,该服务将从 Elastic Load balancer 访问该服务。负载均衡器已经存在,但我想使用 boto3 create/update 规则方法为 ELBv2 创建新规则。该文档包含有关架构级别的信息。但我不确定在 json.

中的何处编辑有效规则
Conditions=[
    {
        'Field': 'string',
        'Values': [
            'string',
        ],
        'HostHeaderConfig': {
            'Values': [
                'string',
            ]
        },
        'PathPatternConfig': {
            'Values': [
                'string',
            ]
        }]

如果负载均衡器具有 url:example.com - 我想将规则创建为 "XYZ" 我可以在哪里传递上述字典中的这些 XYZ。因此,如果我尝试访问 示例。com/XYZ,url 应该可以工作。

client = boto3.client('elbv2')
listener_arn = 'listener ARN'
response = client.describe_rules(ListenerArn=listener_arn)
is_rule_exists = False
for rule in response['Rules']:
    conditions = rule['Conditions']
    for condition in conditions:
        for value in condition['Values']:
            if value == 'file_pattern_you_want_to_choose':
                is_rule_exists = True
            else:
                print("Nope")

condition = [
    {
        'Field': 'path-pattern',
        'Values': [
            'path pattern value',
        ]
    }
]
actions = [{
    'Type': 'forward',
    'TargetGroupArn': 'target group arn for your instance'
}]

priority = 10

if is_rule_exists:
    print('Do Nothing. Or Else create the rule')
    client.modify_rule(ListenerArn=listener_arn, conditions=condition, actions=actions)
else:
    print('Create the rule')
    client.create_rule(ListenerArn=listener_arn, Conditions=condition, Actions=actions, Priority=priority)

以上是 python 代码片段,我用来获取文件路径模式并检查规则是否存在。如果没有,它将创建规则。否则,您可以修改规则。