如何配置 AWS lambda 触发器以使用 vpc 端点使用 SQS 队列

How to configure an AWS lambda trigger to use an SQS queue using an vpc endpoint

我正在尝试为 lambda 函数配置 SQS 队列触发器,主要遵循此 guide

lambda函数角色拥有SQS队列的相关权限(ReceiveMessageDeleteMessageGetQueueAttributes)。 lambda 函数在 VPC 中。

在另一端,配置了一个 VPC 端点(在同一 VPC 上)以访问 SQS 队列(遵循 AWS documentation), and a policy has been made to deny access if it is not from the vpc endpoint (similar to this policy 中的安全最佳实践)

问题是当我尝试创建触发器时,出现了以下错误:

An error occurred when creating the trigger: The provided execution role does not have permissions to call ReceiveMessage on SQS (Service: AWSLambda; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: [...]; Proxy: null)

我错过了什么吗?有谁知道是否可以同时使用 VPC 端点拒绝策略和 lambda 触发器?

备注:

AWS Lambda SQS 触发器功能依赖于轮询 SQS 队列的后台进程。这是您无法控制的 AWS 托管流程。此进程 运行s 在您的 VPC 之外的某个地方。该进程不断轮询您的 SQS 队列,并在收到消息后调用您的 Lambda 函数,将调用负载中的 SQS 消息传递给它。调用的 Lambda 函数可能在您的 VPC 内配置为 运行,但轮询 SQS 队列的托管进程未在您的 VPC 内配置为 运行,目前无法更改。