AWS CDK Python WAF Несколько IP-наборов

#python #amazon-web-services #aws-cdk #amazon-waf

Вопрос:

я создаю несколько IP-наборов в aws cdk с помощью python, и мне интересно, есть ли лучший способ написать это на python.

Вот как я это написал:

         ip_set01 = wafv2.CfnIPSet(
        scope_=self,
        id='WAFTESTIPSET01',
        scope='REGIONAL',
        description='Block test01',
        addresses= [],
        ip_address_version="IPV4",
    )
    
    
    
    ip_set02 = wafv2.CfnIPSet(
        scope_=self,
        id='WAFTESTIPSET02',
        scope='REGIONAL',
        description='Block test02',
        addresses= [],
        ip_address_version="IPV6",
    )
    
    ip_set03 = wafv2.CfnIPSet(
        scope_=self,
        id='WAFTESTIPSET03',
        scope='REGIONAL',
        description='Block test03',
        addresses= [],
        ip_address_version="IPV4",
    )
 

Ответ №1:

Да, вы можете написать что-то вроде этого:

 ip_sets = [
    wafv2.CfnIPSet(
        scope_=self,
        id=f"WAFTESTIPSET0{i}",
        scope="REGIONAL",
        description=f"Block test0{i}",
        addresses=[],
        ip_address_version="IPV4",
    )
    for i in range(1, 4)
]
 

Если вы действительно хотите использовать разные версии ip-адресов, вам, вероятно, потребуется использовать карту:

 ip_map = {
    "01": "IPV4",
    "02": "IPV6",
    "03": "IPV4"
}
ip_sets = [
    wafv2.CfnIPSet(
        scope_=self,
        id=f"WAFTESTIPSET{key}",
        scope="REGIONAL",
        description=f"Block test{key}",
        addresses=[],
        ip_address_version=ip_map[key],
    )
    for key in ip_map
]