Amazon web services VPC中的Lambda无法访问DigitalOcean S3资源
我有一个部署在默认VPC中的Lambda,VPC有一个S3服务的开放端点,Lambda有一个IAM角色,可以广泛地打开所有S3操作Amazon web services VPC中的Lambda无法访问DigitalOcean S3资源,amazon-web-services,aws-lambda,amazon-vpc,digital-ocean-spaces,Amazon Web Services,Aws Lambda,Amazon Vpc,Digital Ocean Spaces,我有一个部署在默认VPC中的Lambda,VPC有一个S3服务的开放端点,Lambda有一个IAM角色,可以广泛地打开所有S3操作 iamRoleStatements: - Effect: "Allow" Action: - "rds:*" - "ec2:CreateNetworkInterface" Resource: "*" - Effect: Allow
iamRoleStatements:
- Effect: "Allow"
Action:
- "rds:*"
- "ec2:CreateNetworkInterface"
Resource: "*"
- Effect: Allow
Action:
- s3:*
Resource: "*"
我通过以下方式访问NodeJS中的S3 SDK:
const {
DIGITAL_OCEAN_SPACES_ENDPOINT,
DIGITAL_OCEAN_SPACES_ACCESS,
DIGITAL_OCEAN_SPACES_REGION,
DIGITAL_OCEAN_SPACES_SECRET,
DIGITAL_OCEAN_SPACES_BUCKET_NAME,
} = process.env;
const spacesEndpoint = new Endpoint(DIGITAL_OCEAN_SPACES_ENDPOINT);
const S3Client = new S3({
accessKeyId: DIGITAL_OCEAN_SPACES_ACCESS,
endpoint: spacesEndpoint,
region: DIGITAL_OCEAN_SPACES_REGION,
secretAccessKey: DIGITAL_OCEAN_SPACES_SECRET,
});
Lambda超时-它无法连接到DigitalOcean S3存储桶。我还需要添加什么才能访问?VPC中的Lambda功能既没有internet访问,也没有公共IP。发件人: 将函数连接到公共子网不会为其提供internet访问或公共IP地址 要纠正此问题,您应该将您的函数“放置”在一个专用子网中(非公共子网),并与正确配置的路由表一起使用以提供访问
由于您已将默认VPC用于所有公用子网,因此需要创建一个新的专用子网,因为使用公用子网将不起作用。然后您需要正确设置NAT网关/设备。或者,不要将您的功能放在专有网络中。您将AWS Lambda功能与专有网络相关联有什么特殊原因吗?