我有一个VPC,它具有两个ISOLATED子网,一个用于我的RDS Serverless群集,一个用于Lambda函数。
但是,当他们调用我的RDS时,我的Lambda会一直超时。
我的问题是;这个VPC +隔离子网是API网关-> Lambda-> RDS的工作结构,还是我在尝试一些不可能的事情?
Lambda:
import * as AWS from 'aws-sdk';
const rdsDataService = new AWS.RDSDataService();
const query = `SELECT * FROM information_schema.tables;`;
export const handler = async (event) => {
const params = {
secretArn: `secret arn`,
resourceArn: "rds arn",
sql: query,
database: 'db name'
};
const res = await rdsDataService.executeStatement(params).promise();
return { statusCode: 200, body: {
message: 'ok',
result: res
}};
};
我的RDS和Lambda共享一个安全组,在其中已打开所有流量(我知道这并不理想),而我的Lambda拥有“管理权限”角色(也不理想),但仍然超时。
您正在使用Aurora无服务器数据API。您的VPC内部不存在该API。您选择了隔离的子网,这些子网无法访问VPC外部的任何内容。您将需要切换到专用子网,或将RDS终结点添加到VPC。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句