匹配某些规则时,我想从我的Elastic Beanstalk环境中的应用程序负载平衡器(ALB)返回fixed response。
我需要以可复制和自动化的方式执行此操作。目前,我使用CloudFormation模板和.ebextensions配置我的Elastic Beanstalk应用。
我知道如何通过添加侦听器规则在控制台中手动配置固定响应:
我无法在.ebextensions中找到支持此功能的option settings的组合。
此外,除非我缺少任何内容,否则CloudFormation似乎通过环境here上的OptionSettings公开了与.ebextensions相同的选项。
是否可以在.ebextensions或CloudFormation中配置固定响应?
如果没有,是否存在另一种自动化的友好方法来完成相同任务?也许通过AWS API?
答案 0 :(得分:0)
ElasticBeanstalk允许您通过.ebextensions配置文件中的Resources标签使用CloudFormation。
EB使用CloudFormation部署您的应用程序。 Resources标签使您可以添加到此CloudFormation模板。它还允许您引用EB模板的输出资源。
要配置应用程序负载平衡器以发送404错误网址请求而无需接触应用程序服务器,请将应用程序负载平衡器侦听器规则添加到:
这是YAML。
将其保存在.ebextensions / X.config中,然后运行“ eb deploy”。 AWS机器负责使用新的侦听器更新环境。
Resources:
validAPIRequestListenerRule:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
Actions:
- Type: forward
TargetGroupArn: { "Ref" : "AWSEBV2LoadBalancerTargetGroup" }
Conditions:
- Field: path-pattern
PathPatternConfig:
Values:
- "/api/*"
ListenerArn: { "Ref" : "AWSEBV2LoadBalancerListener443" }
Priority: 10001
defaultListenerRejectingInvalidUrls:
Type: AWS::ElasticLoadBalancingV2::ListenerRule
Properties:
Actions:
- Type: fixed-response
FixedResponseConfig:
StatusCode: 404
ContentType: "application/json"
MessageBody: "Fixed"
Conditions:
- Field: path-pattern
PathPatternConfig:
Values:
- "*"
ListenerArn: { "Ref" : "AWSEBV2LoadBalancerListener443" }
Priority: 40000
注释
服务:AmazonCloudFormation,消息:模板格式错误: 尚未解决的资源依赖项[AWSEBV2LoadBalancerListener] 模板的资源块