【问题标题】:AWS Lambda access to Redshift, S3 and Secrets ManagerAWS Lambda 访问 Redshift、S3 和 Secrets Manager
【发布时间】:2023-01-01 03:25:52
【问题描述】:
我是 AWS 的新手,正在努力思考如何使用 Lambda、S3、Redshift 和 Secrets Manager 构建数据管道。我在网上搜索过,阅读了许多文档/教程,但对于如何正确配置它,我仍然有些困惑。
在我的堆栈中,Lambda 将成为工具的核心,其中 lambda 需要调用外部 API、向 S3 写入/读取数据、访问 Secrets Manager 并能够连接到 redshift 以进行数据加载和查询。
我的问题。我有什么选项可以配置此设置并允许 lambda 访问所有必要的工具/服务?
就上下文而言,我已经能够四处寻找并使大部分工作正常进行,但是访问 Redshift 是让我放慢速度的原因。如果我将 lambda 放入与 Redshift(默认)相同的 VPC 中,我将无法访问其他所有内容,因此我不确定如何继续。
【问题讨论】:
标签:
amazon-web-services
aws-lambda
【解决方案1】:
就上下文而言,我已经能够四处寻找并使大部分工作正常进行,但是访问 Redshift 是让我放慢速度的原因。如果我将 lambda 放入与 Redshift(默认)相同的 VPC 中,我将无法访问其他所有内容,因此我不确定如何继续。
在 VPC 中运行的 Lambda 永远不会获得公共 IP 地址。当它尝试访问 VPC 外部的内容(例如 S3 和 Secrets Manager)时,这会导致问题。
有两种方法可以解决此访问问题:
-
使用指向 NAT Gateway 的路由将 Lambda 函数移动到私有 VPC 子网。
-
将 VPC Gateways 添加到您的 VPC 以获得您需要的 AWS 服务。
由于您只需要您的 Lambda 函数来访问其他 AWS 服务,而不是 Internet,您应该向您的 VPC 添加一个 S3 VPC 网关和一个 Secrets Manager VPC 网关。