仅在 VPC 内通过函数 URL 调用 AWS Lambda 函数

问题描述 投票:0回答:3

我在 AWS 的 VPC 内有一个 lambda 函数。我想附加 http 处理程序(函数 URL)。

问题是,如果我启用函数 URL,那么它会创建一个公共端点。

我不想使用的替代品

  • 启用AWS_IAM安全性(然后调用者将需要使用AWS SKD并获取令牌等)
  • API网关触发器(我已经使用API网关作为kubernetes Ingress的代理,我不想偏离这一点)
  • ALB(我已经在使用 k8s 入口,它创建了 ALB,所以我希望通过代码手动创建代理,而不是使用 lambda 配置)

有没有一种方法可以创建 AWS Lambda 函数 URL,但它只能在 VPC 内访问而不涉及 AWS SKD? (就像

wget URL

amazon-web-services aws-lambda amazon-vpc
3个回答
1
投票

在我们的组织中,我们最终采用了仅供内部使用的 ALB,并启用了 MultiValueQueryStringParameters 将数据传递到 Lambda 函数并执行它。这是我能找到的提供仅供内部使用的 URL 的唯一方法,我可以使用安全组进一步保护该 URL。我不知道如何使 Lambda URL 仅供内部使用。


1
投票

我研究了类似的用例,最终我使用了 SDK 中的直接 lambda Invoke,使用 RequestResponse InvocableType 来获取响应负载。这适合我的需求,但可能不适合您的情况。

InvokeResponse response = await lambdaClient.InvokeAsync(new InvokeRequest() {
    FunctionName = "LambdaFunctionName",
    InvocationType = InvocationType.RequestResponse,
    Payload=data
});

0
投票

虽然有点晚了,但无论如何。 函数 URL 始终是公开的,并且无法按照文档所述将其设为私有(至少在发布此内容时):

您只能通过公共互联网访问您的函数 URL。虽然 Lambda 函数确实支持 AWS PrivateLink,但函数 URL 不支持。

您可以在此处找到更多信息https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html

还有另一种方法可以使用 VPC Lattice 从 VPC 私下调用 Lambda 函数,但这适用于拥有多个服务而不是临时 Lambda 的架构。但是,没有什么可以阻止您将其仅用于一个 Lambda。

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.