首页 > 解决方案 > AWS:使用 lambda 和 s3 测试 ALB

问题描述

如下图所示,我有一条Route53记录调用 anALB触发 a Lambda,并且此Lambda函数会将一些代码从 git 存储库克隆到S3 bucket.

在此处输入图像描述Route53位于私有托管区域中,因此我找不到向 A 记录发送 POST 请求以Route53触发整个过程的方法。有什么办法可以测试吗?

标签: amazon-web-servicesamazon-s3aws-lambdaaws-application-load-balancer

解决方案


无法直接从 Internet 访问私有托管区域(HZ)。它们只能在 VPC中使用。Fron文档

私有托管区域是一个容器,其中包含有关您希望 Amazon Route 53 如何响应您使用 Amazon VPC 服务创建的一个或多个 VPC中的域及其子域的 DNS 查询的信息。

这意味着您的 POST 或 GETwww.bla-bla-amazon.com将无法通过 Internet 解析,因此您无法从 Internet 调用 dns。为此,正如文档所写,您需要公共HZ:

如果您想在Internet上为您的域路由流量,请使用 Route 53公有托管区域。了解更多信息

但是,如果您想从 VPC 外部访问私有 HZ,您可以使用VPNssh tunnel间接进行。SSH 隧道更易于使用和设置,用于测试和开发目的。为此,您需要HZ 所在的 VPC 中的公共EC2 实例。从 AWS 外部,例如家庭/工作,您可以设置 SSH 隧道,将本地端口转发到您的 EC2,例如:

ssh -L -i priavte_ssh_key local_port:private_dns_of_your_service:remote_port ec2-user@ec2-instance-ip

这样,您将能够http://localhost:local_port在您的家庭/工作计算机上使用来访问 VPC 中的私有资源。

顺便说一句,如果设置应该是私有的,那么 ALB 应该是内部的,而不是面向 Internet 的。


推荐阅读