Lambda调用Redshift Serverless的list_workgroups API超时求助
针对你的Lambda调用Redshift Serverless API超时但Redshift集群API正常的问题,按以下步骤排查:
确认是否创建了Redshift Serverless专属的VPC终端节点
Redshift集群的VPC终端节点服务名是com.amazonaws.<region>.redshift,但Redshift Serverless需要单独创建服务名为com.amazonaws.<region>.redshift-serverless的接口型VPC终端节点。如果只配置了Redshift集群的终端节点,Serverless API请求无法通过VPC内部路由,必然超时。检查VPC终端节点的路由配置
确保Lambda所在子网的路由表中,已添加指向Redshift Serverless终端节点的路由条目,将目标前缀com.amazonaws.<region>.redshift-serverless的流量导向终端节点的弹性网络接口(ENI)。同时确认终端节点与Lambda处于同一VPC。核对安全组的入站/出站规则
- Lambda所在安全组:需允许**出站HTTPS(443端口)**流量到Redshift Serverless终端节点的安全组。
- Redshift Serverless终端节点的安全组:需允许**入站HTTPS(443端口)**流量来自Lambda的安全组。
注意:你提到的“完全权限”可能指IAM权限,和安全组的网络访问规则是两个独立的配置项,不要混淆。
验证IAM执行角色权限
确认Lambda的执行角色已包含redshift-serverless:ListWorkgroups动作的权限,比如在IAM政策中添加:{ "Effect": "Allow", "Action": "redshift-serverless:ListWorkgroups", "Resource": "*" }避免仅使用Redshift集群相关的IAM政策,导致Serverless API动作无权限。
确认区域一致性
确保Lambda、Redshift Serverless资源、VPC终端节点都处于同一个AWS区域。接口型VPC终端节点不支持跨区域访问,跨区域会直接导致请求超时。
内容的提问来源于stack exchange,提问作者Prathyush Peettayil

