Что я хочу сделать - это добавить ALB ListenerRule, только если в качестве имени среды Beanstalk указано «prod» или «prod-2». Если имя среды Beanstalk отличается, я могу пропустить этот ресурс и продолжить работу без его создания.
Вот мой .ebextensions / 00-testing-condition.config:
"Conditions" : {
"createRedirect" : {"Fn::Or" : [ {"Fn::Equals" : [{"Ref" : "AWSEBEnvironmentName"}, "prod"]}, {"Fn::Equals" : [{"Ref" : "AWSEBEnvironmentName"}, "prod-2"]} ]}
}
Resources:
ALBListenerSSLRule:
Condition: createRedirect
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
Actions:
- RedirectConfig:
Host: "#{host}"
Path: "/#{path}"
Port: 443
Protocol: "HTTPS"
Query: "#{query}"
StatusCode: HTTP_301
Type: "redirect"
Conditions:
- Field: host-header
Values:
- "MYDOMAINNAME.com"
ListenerArn:
Ref: AWSEBV2LoadBalancerListener
Priority: 1
Как результат: ListenerRule создается, если env-имя является prod или prod-2 без каких-либо проблем. Однако, если имя отличается (поэтому утверждение неверно), я получаю следующую ошибку в Beanstalk:
Service:AmazonCloudFormation, Message:Template format error: Unresolved resource dependencies [ALBListenerSSLRule] in the Resources block of the template
Есть идеи о том, что не так?