.securityGroupIngress()
из CfnSecurityGroup.Builder
занимает List<Object> securityGroupIngress
. Я пытаюсь добавить правило входа в группу безопасности:
CfnSecurityGroupIngress ingressRule =
CfnSecurityGroupIngress.Builder.create(this, "IngressRule")
.ipProtocol("tcp")
.fromPort(80)
.toPort(80)
.cidrIp("0.0.0.0/0")
.build();
List<Object> ingressRules = new ArrayList<>();
ingressRules.add(ingressRule)
И затем:
CfnSecurityGroup.Builder.create(this, "SecurityGroup")
.groupName("ALB-SG")
.groupDescription("Allow traffic from the Internet to the ALB")
.vpcId(vpc.getRef())
.securityGroupIngress(ingressRules) // <--
.build();
Когда я пытаюсь скомпилировать, я получаю следующую ошибку:
Caused by: software.amazon.jsii.JsiiException: Resolution error: Resolution error: Trying to resolve() a Construct at /Resources/${Token[SGStack.SecurityGroup.LogicalID.39]}/Properties/securityGroupIngress/0/node.
Для меня путаница - это List<Object>
, требуемый .securityGroupIngress()
, потому что в CloudFormation свойство SecurityGroupIngress
(CfnSecurityGroupIngress)
AWS::EC2::SecurityGroup
(CfnSecurityGroup)
принимает список Ingress
объектов. Почему это List<Object>
, а не List<CfnSecurityGroupIngressProps>
или List<CfnSecurityGroupIngress>
? Но самое главное, как мне создать List<Object>
, что требуется?