使用 AWS CloudFormation 服务,我尝试在 2 个 EC2 实例上创建 Application Elastic Load Balancer,但在创建侦听器 [AWS::ElasticLoadBalancingV2::Listener] 时出现错误,如下所示:
“AELB-ElasticLoadBa-XDTNTTXRZMC8' 必须采用 ARN 格式(服务:AmazonElasticLoadBalancingV2;状态代码:400;错误代码:ValidationError;请求 ID:9b18bb79-9e58-11e8-9b70-c9b2be714e80)”
我已经参考了 aws 代码模板并在下面添加了代码,我是否遗漏了什么?
ElasticLoadBalancer:
Type: 'AWS::ElasticLoadBalancing::LoadBalancer'
Properties:
Instances: [!Ref 'webServer1', !Ref 'webServer2']
CrossZone: 'true'
Listeners:
- LoadBalancerPort: '80'
InstancePort: '80'
Protocol: HTTP
Subnets:
- !Ref pubSubnet
SecurityGroups:
- !Ref LoadBalancerSecurityGroup
HealthCheck:
Target: HTTP:80/
HealthyThreshold: '3'
UnhealthyThreshold: '5'
Interval: '30'
Timeout: '5'
TargetGroupService1:
Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
Properties:
Name:
'Fn::Join':
- '-'
- - Ref: 'AWS::StackName'
- 'TargetGroupService1'
Port: 10
Protocol: HTTP
#HealthCheckPath: /service1
Targets:
- Id:
Ref: webServer1
Port: 80
VpcId: !Ref myDemoVPC
TargetGroupService2:
Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
Properties:
Name:
'Fn::Join':
- '-'
- - Ref: 'AWS::StackName'
- 'TargetGroupService2'
Port: 10
Protocol: HTTP
#HealthCheckPath: /service2
Targets:
- Id:
Ref: webServer2
Port: 80
VpcId: !Ref myDemoVPC
Listener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
DefaultActions:
- Type: forward
TargetGroupArn: !Ref TargetGroupService1
LoadBalancerArn: !Ref ElasticLoadBalancer
Port: '80'
Protocol: HTTP
ListenerRuleService1:
Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
Properties:
Actions:
- Type: forward
TargetGroupArn: !Ref TargetGroupService1
Conditions:
- Field: path-pattern
Values:
- "/service1"
ListenerArn: !Ref Listener
Priority: 1
ListenerRuleService2:
Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
Properties:
Actions:
- Type: forward
TargetGroupArn: !Ref TargetGroupService2
Conditions:
- Field: path-pattern
Values:
- "/service2"
ListenerArn: !Ref Listener
Priority: 2