#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
]