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

AWS CloudWatch Canary(NodeJS)代理配置技术咨询

AWS CloudWatch Synthetics Canary 代理配置(带认证)

AWS Synthetics 支持通过代理发起请求,针对需要用户名密码认证的代理,你可以按照以下正确方式配置:

方法1:环境变量 + Puppeteer 认证配置

  1. 在Canary的环境变量中设置 HTTP_PROXY 和 HTTPS_PROXY,格式为:

    HTTP_PROXY=http://proxy-host:port
    HTTPS_PROXY=http://proxy-host:port
    

    注意:不要在这里直接包含用户名和密码,避免明文泄露风险。

  2. 在自定义Canary脚本中,使用Puppeteer的 page.authenticate() 方法添加代理认证:

    const synthetics = require('Synthetics');
    const log = require('SyntheticsLogger');
    
    const loadBlueprint = async function () {
        const page = await synthetics.getPage();
        
        // 配置代理认证
        await page.authenticate({
            username: '你的代理用户名',
            password: '你的代理密码'
        });
    
        // 访问目标网站
        await synthetics.executeStep('访问目标站点', async function () {
            await page.goto('https://目标网站地址', {waitUntil: 'domcontentloaded', timeout: 30000});
        });
    };
    
    exports.handler = async () => {
        return await loadBlueprint();
    };
    

方法2:直接在代理URL中包含认证信息(不推荐)

如果环境变量允许,也可以直接在代理URL中嵌入认证信息:

HTTP_PROXY=http://username:password@proxy-host:port
HTTPS_PROXY=http://username:password@proxy-host:port

这种情况下脚本无需额外调用 authenticate(),但该方式会将认证信息以明文形式存储在Canary配置中,存在安全风险,仅适合测试环境或低敏感场景使用。

注意事项

  • 确保Canary的执行角色拥有访问代理服务器的网络权限(比如VPC配置正确,安全组允许出站到代理端口)。
  • 验证代理服务器是否允许Canary所在的AWS IP段访问。
  • 使用Synthetics官方提供的最新Node.js运行时,避免Puppeteer版本兼容问题。

内容的提问来源于stack exchange,提问作者Ivan Garcia Miranda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:52:09