首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws文档- elbv2

aws文档- elbv2
EN

Stack Overflow用户
提问于 2018-09-07 02:40:31
回答 1查看 520关注 0票数 1

我目前正在试验新的aws-cdk,我发现文档中缺乏示例。

是否可以提供更多的例子,特别是在以下几个方面:

  • ELBv2
  • 带有用户数据的ASG/EC2

更准确一点:我正试图在现有的NLB+TargetGroup+ASG上构建一个VPC,并在许多语法问题上苦苦挣扎。

EN

回答 1

Stack Overflow用户

发布于 2018-10-03 13:57:58

下面是一些例子:对于Java,这些都是我创建的方法中的内容,并不包括所有内容,也可能不是最佳实践。

代码语言:javascript
复制
NetworkLoadBalancer networkLoadBalancer = new NetworkLoadBalancer(this, "NLB01", NetworkLoadBalancerProps.builder()
            .withInternetFacing(false)

            .withLoadBalancerName(new FnSub("${ProjectID}NLB").toString())
            .withVpc(vpcNetworkRef)
            .build());

AutoScalingGroupResource autoScalingGroupResource = new AutoScalingGroupResource(this, "AutoScalingGroup",
            AutoScalingGroupResourceProps.builder()
                    .withAutoScalingGroupName(new FnSub("${ProjectID}-ServerGroup"))
                    .withLaunchConfigurationName(launchConfigurationResource.getLaunchConfigurationName())
                    .withMinSize(minSizeParam.getValue().toString())
                    .withMaxSize(maxSizeParam.getValue().toString())
                    .withDesiredCapacity(desiredCapacityParam.getValue().toString())
                    .withTargetGroupArns(Collections.singletonList(targetGroupResource.getTargetGroupArn()))
                    .withVpcZoneIdentifier(subnets)
                    .withHealthCheckType("ELB")
                    .withHealthCheckGracePeriod(1020)
                    .build());

new LaunchConfigurationResource(this, "LaunchConfiguration",
                LaunchConfigurationResourceProps.builder()
                        .withLaunchConfigurationName(new FnSub("${ProjectID}-LaunchConfiguration"))
                        .withImageId(amiIDParam.getValue().toString())
                        .withKeyName(keyNameParam.getValue().toString())
                        .withSecurityGroups(securityGroupList) 
                        .withInstanceType(instanceTypeParam.getValue().toString())
                        .withAssociatePublicIpAddress(false)
                        .build());
List<Object> defaultActionsList = new ArrayList<>();

    defaultActionsList.add(ListenerResource.ActionProperty.builder()
            .withTargetGroupArn(targetGroupResource.getRef().toString())
            .withType("forward")
            .build());

    ListenerResource listenerResource = new ListenerResource(this, "Listener",
            ListenerResourceProps.builder()
                    .withPort(80)
                    .withProtocol("TCP")
                    .withLoadBalancerArn(loadBalancerResource.getRef().toString())
                    .withDefaultActions(defaultActionsList)
                    .build());
    listenerResource.addDependency( IDependable.builder()
            .withDependencyElements(loadBalancerResource.getDependencyElements())
            .build());

new TargetGroupResource(this, "TargetGroup",
                TargetGroupResourceProps.builder()
                        .withHealthCheckIntervalSeconds(30) //FUTURE Parameter with limit as only [10,30] valid
                        .withHealthCheckProtocol("TCP")
                        .withHealthyThresholdCount(2)
                        .withPort(80)
                        .withProtocol("TCP")
                        .withUnhealthyThresholdCount(2)
                        .withVpcId(fnImportValueVpcId)
                        .withTargetGroupName("Target-Group")
                        .withTags(tagsTargetGroup.addTag("Owner", ownerParam.getValue().toString()))
                        .build());

TagList tagsNLB = new TagList();

    LoadBalancerResource loadBalancerResource = new LoadBalancerResource(this, "NLB",
            LoadBalancerResourceProps.builder()
                    .withLoadBalancerName("Network-Load-Balancer")
                    .withScheme("internal")
                    .withType("network")
                    .withTags(tagsNLB.addTag("Owner", ownerParam.getValue().toString()))
                    .withSubnets(subnets)
                    .build());

    tagsNLB.addTag("Name", "NLB");

 Output restAPIoutput =
            new Output(this, "LoadBalancerArn", OutputProps.builder()
                    .withDescription("NLB")
                    .withExport(fnSubProjectID.toString())
                    .withValue(loadBalancerResource.getRef())
                    .build());

*下面是一个创建参数的函数*

代码语言:javascript
复制
private Parameter createParameter(String name, String type, String defaultTo, String description){
    Parameter parameter =
            new Parameter( this,name,
                    ParameterProps.builder()
                            .withType(type)
                            .withDefault(defaultTo)
                            .withDescription(description)
                            .build());
    return parameter;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52214542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档