我目前正在试验新的aws-cdk,我发现文档中缺乏示例。
是否可以提供更多的例子,特别是在以下几个方面:
更准确一点:我正试图在现有的NLB+TargetGroup+ASG上构建一个VPC,并在许多语法问题上苦苦挣扎。
发布于 2018-10-03 13:57:58
下面是一些例子:对于Java,这些都是我创建的方法中的内容,并不包括所有内容,也可能不是最佳实践。
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());*下面是一个创建参数的函数*
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;
}https://stackoverflow.com/questions/52214542
复制相似问题