将 https 从 AWS lambda 发送到 AWS elastic beanstalk 服务器
send https from AWS lambda to AWS elastic beanstalk servers
我正在努力启用 AWS lambda 以将 HTTPS POST 请求发送到 AWS elastic beanstalk 服务。
elastic beanstalk 提供 web 和 web 服务并且运行良好。
lambda 正在使用 AWS elasticache 进行一些计算(运行良好),然后决定是否将 HTTPS POST 发送到 beantalk URL.
lambda 写成node.js
。在 POST 尝试后大约 2 分钟,我收到此超时:
[Error: connect ETIMEDOUT X.Y.Z.W:443] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: 'X.Y.Z.W', port: 443
我在 elastic bean nginx 访问日志中看不到请求的指示。
所以我的理解是安全组设置不正确。
我排除了弹性 beantalk 阻止此类连接的选项 - lambda 使用 url 和外部域名,可以从任何浏览器使用并且工作正常。
所以我得出的结论是 lambda 安全性阻止了这种连接。所以 - 我从任何地方完全向 "All traffic" 打开了 lambda 安全组 - 但我仍然遇到这个问题。
有什么想法吗?
您是您的 VPC 中的 运行 Lambda 函数,这是访问您的 ElastiCache 服务器所必需的。但是,一旦您将 Lambda 函数放入 VPC 中,它就无法再访问 VPC 之外的任何内容。您正在尝试通过 Lambda 函数无权访问的 public(Internet)地址访问 Elastic Beanstalk 服务器。因此,您会遇到网络连接超时。
您需要将 Lambda 函数配置为通过内部 VPC 地址访问该服务。并且您需要配置您的 Elastic Beanstalk 安全组以允许从 Lambda 安全组进行访问(如果您还没有)。
或者,您可以将 NAT 网关添加到您的 VPC,这将使您的 Lambda 函数能够访问 VPC 外部的资源。
我正在努力启用 AWS lambda 以将 HTTPS POST 请求发送到 AWS elastic beanstalk 服务。 elastic beanstalk 提供 web 和 web 服务并且运行良好。 lambda 正在使用 AWS elasticache 进行一些计算(运行良好),然后决定是否将 HTTPS POST 发送到 beantalk URL.
lambda 写成node.js
。在 POST 尝试后大约 2 分钟,我收到此超时:
[Error: connect ETIMEDOUT X.Y.Z.W:443] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: 'X.Y.Z.W', port: 443
我在 elastic bean nginx 访问日志中看不到请求的指示。
所以我的理解是安全组设置不正确。
我排除了弹性 beantalk 阻止此类连接的选项 - lambda 使用 url 和外部域名,可以从任何浏览器使用并且工作正常。
所以我得出的结论是 lambda 安全性阻止了这种连接。所以 - 我从任何地方完全向 "All traffic" 打开了 lambda 安全组 - 但我仍然遇到这个问题。
有什么想法吗?
您是您的 VPC 中的 运行 Lambda 函数,这是访问您的 ElastiCache 服务器所必需的。但是,一旦您将 Lambda 函数放入 VPC 中,它就无法再访问 VPC 之外的任何内容。您正在尝试通过 Lambda 函数无权访问的 public(Internet)地址访问 Elastic Beanstalk 服务器。因此,您会遇到网络连接超时。
您需要将 Lambda 函数配置为通过内部 VPC 地址访问该服务。并且您需要配置您的 Elastic Beanstalk 安全组以允许从 Lambda 安全组进行访问(如果您还没有)。
或者,您可以将 NAT 网关添加到您的 VPC,这将使您的 Lambda 函数能够访问 VPC 外部的资源。