You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让手动启动的ECS任务仅接收指定Cookie/Header的ALB流量?

解决方案:实现测试任务的私有流量路由

完全可以实现你的需求,核心是利用ALB的路由规则和独立目标组来隔离测试流量,具体配置步骤如下:

1. 创建独立的测试目标组

  • 手动启动ECS测试任务前,先在AWS控制台(或通过AWS CLI)创建一个新的目标组,配置和生产目标组一致的端口、协议、健康检查规则。
  • 启动测试任务时,指定将其注册到这个测试目标组,而非生产集群的目标组。这样默认情况下,ALB不会把生产流量导向这个测试任务。

2. 配置ALB监听规则

在ALB的监听规则中添加一条高优先级规则(优先级数值越小优先级越高,需设为比生产规则更高的优先级),配置以下匹配条件:

  • 条件1:匹配指定的自定义粘性Cookie,比如Cookie: your-custom-cookie=test-mode(your-custom-cookie是你已启用的自定义应用Cookie名称,test-mode是约定的测试标识值)
  • 条件2:匹配指定的秘密HTTP请求头,比如HttpHeader: X-Test-Secret=your-unique-secret-key(X-Test-Secret是自定义头名称,your-unique-secret-key是仅测试人员知晓的密钥)

设置规则动作:将满足任一条件的请求转发到测试目标组。不满足条件的请求会继续匹配后续的生产规则,转发到原有ECS集群目标组。

3. 测试任务的粘性会话配置(可选)

如果需要测试过程中保持会话粘性,确保测试目标组也启用相同的自定义应用Cookie配置(和生产目标组一致),这样一旦请求被路由到测试任务,后续带有相同Cookie的请求会持续转发到该任务。

4. 验证与清理

  • 用curl或浏览器测试:比如执行curl -H "X-Test-Secret=your-unique-secret-key" https://your-alb-domain.com,或者在浏览器中手动添加指定Cookie,确认请求被路由到测试任务。
  • 测试完成后,直接停止测试ECS任务,或者删除测试目标组和对应的ALB规则即可,不会影响生产流量。

注意事项

  • ALB规则优先级必须高于生产规则,否则测试请求会被生产规则先匹配处理。
  • 秘密请求头的密钥要设置足够复杂,避免被未授权访问。
  • 测试任务的网络配置(VPC、安全组)要确保能被ALB正常访问,和生产任务保持一致。

内容的提问来源于stack exchange,提问作者DaveB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:31:52