Amazon web services 如何使用.ebextensions向AWS Elastic Beanstalk添加应用程序负载平衡器固定响应

Amazon web services 如何使用.ebextensions向AWS Elastic Beanstalk添加应用程序负载平衡器固定响应,amazon-web-services,amazon-cloudformation,amazon-elastic-beanstalk,amazon-elb,Amazon Web Services,Amazon Cloudformation,Amazon Elastic Beanstalk,Amazon Elb,为了将AWS ElasticBeanstalk上提供的API端点列入白名单: 我想在Elastic Beanstalk环境中的应用程序负载平衡器(ALB)接收到意外请求时返回一个 我需要以一种可复制和自动化的方式来做这件事。目前,我使用CloudFormation模板和.ebextensions配置我的Elastic Beanstalk应用程序 我知道如何通过添加侦听器规则在控制台中手动配置固定响应: 我在.ebextensions中找不到支持此功能的组合 此外,除非我遗漏了什么,否则Clou

为了将AWS ElasticBeanstalk上提供的API端点列入白名单:

我想在Elastic Beanstalk环境中的应用程序负载平衡器(ALB)接收到意外请求时返回一个

我需要以一种可复制和自动化的方式来做这件事。目前,我使用CloudFormation模板和.ebextensions配置我的Elastic Beanstalk应用程序

我知道如何通过添加侦听器规则在控制台中手动配置固定响应:

我在.ebextensions中找不到支持此功能的组合

此外,除非我遗漏了什么,否则CloudFormation似乎通过环境上的选项设置公开了与.ebextensions相同的选项

是否可以在.ebextensions或CloudFormation中配置固定响应


如果没有,是否有其他自动化友好的方法来实现同样的目标?可能通过AWS API?

ElasticBeanstalk允许您使用.ebextensions配置文件中的Resources标记来使用CloudFormation。

EB使用CloudFormation部署您的应用程序。Resources标签允许您添加到此CloudFormation模板。它还允许您参考EB模板的输出资源

要将应用程序负载平衡器配置为在不接触应用程序服务器的情况下发送404个错误URL请求,请将应用程序负载平衡器侦听器规则添加到:

  • 高优先级规则:侦听预期的请求URL并将请求转发到应用程序服务器(TargetGroupArn)
  • 低优先级规则:捕获所有其他请求URL并发送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
    
    注释

  • 注意优先顺序,从1到50000,较低的数字获胜。此代码段中的侦听器处理默认EB侦听器规则(将不匹配的请求转发给目标组)之前的所有请求
  • AWS文档中提到的Ref/Fn::GetAtt标记可用的逻辑ID不完整。如果您遇到这样的错误,请在控制台中打开CloudFormation,查看与您的EB部署对应的资源选项卡,并查看哪些逻辑ID可用
  • 服务:AmazonCloudFormation,消息:模板格式错误: 中未解析的资源依赖项[AWSEBV2LoadBalancerListener] 模板的资源块