Вы обращаетесь к свойству CidrIp
, которого DBSecurityGroup
класс не имеет.Этот класс определен как:
class RDSSecurityGroup(AWSProperty):
props = {
'CIDRIP': (basestring, False),
'EC2SecurityGroupId': (basestring, False),
'EC2SecurityGroupName': (basestring, False),
'EC2SecurityGroupOwnerId': (basestring, False),
}
class DBSecurityGroup(AWSObject):
resource_type = "AWS::RDS::DBSecurityGroup"
props = {
'EC2VpcId': (basestring, False),
'DBSecurityGroupIngress': (list, True),
'GroupDescription': (basestring, True),
'Tags': ((Tags, list), False),
}
Из исходного кода здесь .
Что вы хотите сказать:
DBSecurityGroup = t.add_resource(
rds.DBSecurityGroup(
"DBSecurityGroup",
GroupDescription="Enable access on the inbound port",
DBSecurityGroupIngress=[
rds.RDSSecurityGroup(EC2SecurityGroupId=Ref(AppSecurityGroup)),
rds.RDSSecurityGroup(EC2SecurityGroupId=Ref(CalcSecurityGroup)),
rds.RDSSecurityGroup(EC2SecurityGroupId=Ref(CIDRSupport))],
EC2VpcId=Ref(VPC),
Tags=Tags(
Name=Join("", [Ref("AWS::StackName"), "-DB-SG"]),
)
))
Iследует отметить, что RDSSecurityGroup
в тропосфере соответствует « правилу группы безопасности RDS ».Несоответствие в именовании сбивает с толку.