获取通过 CDK 实例化的 Elastic Beanstalk 环境的应用程序负载均衡器的句柄

Asi*_*ov4 4 aws-cdk

我创建了一个 Elastic Beanstalk 环境,如下所示:

    const certificate = new certificatemanager.Certificate(this, 'Certificate', {
      domainName: props.domainName,
      subjectAlternativeNames: [],
      validationMethod: certificatemanager.ValidationMethod.EMAIL,
    });

    const optionSettings = {
      'aws:autoscaling:asg': {
        MinSize: '2',
        MaxSize: '2',
      },
      'aws:ec2:vpc': {
        VPCId: vpc.vpcId,
        Subnets: vpc.privateSubnets.map((subnet) => subnet.subnetId).join(','),
        ElbSubnets: vpc.publicSubnets.map((subnet) => subnet.subnetId).join(','),
      },
      'aws:elasticbeanstalk:environment': {
        EnvironmentType: 'LoadBalanced',
        LoadBalancerType: 'application',
      },
      'aws:elbv2:listener:443': {
        ListenerEnabled: 'true',
        Protocol: 'HTTPS',
        SSLCertificateArns: certificate.certificateArn,
      },
      'aws:autoscaling:launchconfiguration': {
        IamInstanceProfile: 'aws-elasticbeanstalk-ec2-role',
        InstanceType: 't3.medium',
      },
      'aws:elasticbeanstalk:application:environment': {
        CORS_ORIGIN_ALLOW_ALL: 'False',
      },
    };

    const environment = new elasticbeanstalk.CfnEnvironment(this, 'Environment', {
      environmentName: `env`,
      description: 'My Environment Description',
      applicationName: application.applicationName || 'Error',
      versionLabel: applicationVersion.ref,
      solutionStackName: '64bit Amazon Linux 2018.03 v2.9.5 running Python 3.6',
      optionSettings: OptionSettingsUtil.flatten(optionSettings),
    });
Run Code Online (Sandbox Code Playgroud)

OptionSettingsUtil.flatten我编写的用于扁平化配置选项的自定义函数在哪里。

如何获取将由此 Elastic Beanstalk 环境生成的 Application Load Balancer 资源的句柄?我需要它来将 WAF ACL 与其关联。

Dav*_*ari 5

直到它实际创建后才可以,然后您可以按如下方式查找它:

const loadBalancer = elbv2.ApplicationLoadBalancer.fromLookup(this, 'ALB', {
  loadBalancerTags: {
    'elasticbeanstalk:environment-name': environmentName
  },
})
Run Code Online (Sandbox Code Playgroud)

文档:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-elasticloadbalancingv2-readme.html#looking-up-load-balancers-and-listeners