Итак, дело в следующем:
У меня есть этот набор ресурсов для создания AWS Cloudformation с использованием ElasticBeanstalk, который создает дополнительный internal_loadbalancer:
Resources:
IntLB:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
ConnectionDrainingPolicy:
Enabled: true
Timeout: 20
CrossZone: true
HealthCheck:
HealthyThreshold: 3
Interval: 10
Target: "TCP"
Timeout: 5
UnhealthyThreshold: 5
Listeners:
- InstancePort: 443
LoadBalancerPort: 443
Protocol: HTTPS
SSLCertificateId: arn:aws:acm:
InstanceProtocol: HTTP
Scheme: internal
SecurityGroups:
- { "Ref" : "AWSEBLoadBalancerSecurityGroup" }
Subnets:
- "subnet-1"
- "subnet-2"
- "subnet-3"
- "subnet-4"
- "subnet-5"
- "subnet-6"
AWSEBAutoScalingGroup:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
LoadBalancerNames:
- { "Ref" : "AWSEBLoadBalancer" }
- { "Ref" : "IntLB" }
Я хотел бы написать условие, что если environment_ID = XYZ, тогда применить создание ресурса, а если не игнорировать его.
Я искал документацию и форумы AWS, но не уверен, какой подход будет правильным.
Любые идеи ?
Спасибо!
Что, если вы создадите состояние и применить это к своему ресурсу?
Conditions:
CreateInternalELB: !Equals [ !Ref AWSEBEnvironmentId, XYZ ]
Resources:
IntLB:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Condition: CreateInternalELB
Properties:
[...]
+ Изменить XYZ
к вашему идентификатору среды.
Я только что написал это на своем телефоне, поэтому извините за возможные опечатки. Не уверен, можно ли включить такие условия в структуру EB.