amazon-web-services - AWS 将 VPC 中的 Lambda 调用到另一个 VPC 中的另一个 Lambda
问题描述
可以从另一个 VPC 中的另一个 lambda 调用位于 VPC 内的 lambda 函数。
我正在尝试使用 AWS VPC 终端节点执行此操作,但我无法执行此操作。它标记错误 403。我正在执行以下步骤:https ://aws.amazon.com/es/blogs/compute/introducing-amazon-api-gateway-private-endpoints/ 。
和https://cedrus.digital/aws-privatelink-with-api-gateway-and-lambda-functions/
我不确定是否应该在将调用 lambda 或接收请求的 VPC 中创建 VPC 端点。
甚至,API Gateway Resource Policies 是这样说的:
{
"Statement": [
{
"Principal": "*",
"Action": [
"execute-api:Invoke"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
并将 VPC 终端节点策略设置为完全访问权限。
解决方案
要通过 API 调用调用 AWS Lambda 函数,调用实体必须能够访问 Internet。调用实体是在同一个 VPC 中、不同的 VPC 中,还是不在 VPC 中都没有关系。重要的是可以将请求发送到 AWS Lambda API 端点。
如果调用 Lambda 函数位于 VPC 中,请确保它可以访问 Internet。这通常需要:
- Lambda 函数位于私有子网中
- 公共子网中有NAT 网关
- 私有子网的路由表将
0.0.0.0/0
流量定向到 NAT 网关
或者,如果调用 Lambda 函数未连接到 VPC,则它会自动接收对 Internet 的访问。
连接“被调用”的 Lambda 函数(VPC 与否)也无关紧要。激活这个 Lambda 函数的控制平面在 Internet 上,与 Lambda 函数本身连接的位置无关。
推荐阅读
- javascript - Prisma:如何根据非唯一列查询记录
- oracle - 如何创建触发器,以便不能插入早于 2017 年和晚于 2019 年的日期
- c++ - C++ STL 按值设置擦除
- excel - 当 redemption.dll 加载并且操作 excel 2016 在从磁盘启动保存的文件之前暂停
- windows - 如何在服务器机器上保持客户端密码安全
- c++ - 始终显示“默认 TException”。即使设置了“__set_what_UTF8”
- vuex - 如何在 vue-resource 中读取存储设置器值?
- html - X-path 不适用于一页上的多个 html 标签
- swift - RealityKit - 模型实体的动画不透明度?
- android - 如何按日期对 RecyclerView 标题和项目进行排序