使用Serverless Framework部署VPC内Lambda时遇类型错误求助
问题原因
错误核心是你把VPC配置错误嵌套在了environment字段下。Lambda的environment.Variables仅支持字符串类型的键值对,但你传入了一个JSON对象(vpc下的securityGroupIds和subnetIds),导致AWS CloudFormation的属性验证失败。
修复后的配置
将VPC配置从environment中移出,直接作为functions.bot的一级配置项,与handler、environment同级:
useDotenv: true provider: name: aws runtime: nodejs18.x stage: prod functions: bot: handler: src/index.run # VPC配置独立放在这里 vpc: securityGroupIds: - ${env:SECURITY_GROUP_ID} subnetIds: - ${env:SUBNET_ID} environment: # 这里仅存放需要传递给Lambda的字符串类型环境变量 # 示例:API_KEY: ${env:API_KEY} events: # Invoke Lambda function every 35 minutes - schedule: rate(35 minutes)
补充说明
- 如果你的Lambda需要环境变量,直接在
environment下定义键值对即可,所有值必须是字符串类型。 - VPC配置是Lambda函数的顶级属性,不属于环境变量范畴,必须直接挂载在函数配置节点下。
内容的提问来源于stack exchange,提问作者Moisés López
相关产品推荐
相关产品推荐

