Как создать объекты SecurityGroupIngress? - PullRequest
1 голос
/ 20 марта 2020

.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>, что требуется?

...