You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Serverless AppSync Plugin内联Lambda数据源Resolver配置报错求助

问题分析与解决方案

你的配置存在两个核心问题,导致插件报错:

  1. 缺少顶层appSync节点:官方示例中所有AppSync相关配置都嵌套在appSync根节点下,而你直接写了resolvers,这会让插件无法识别正确的配置结构,进而抛出「must have required property 'functions'」的错误。
  2. 内联Lambda函数配置不完整:即使补上appSync节点,内联定义的函数也需要指定runtime等必要参数,否则Serverless框架无法正确创建Lambda资源。

可运行配置示例

示例1:完全内联定义Lambda数据源

这种方式直接在Resolver配置里定义Lambda函数的所有属性:

service: your-app-service-name

appSync:
  name: your-appsync-api
  schema: ./schema.graphql # 需指定你的GraphQL schema路径
  resolvers:
    Query.get_data:
      dataSource:
        type: AWS_LAMBDA
        config:
          function:
            name: GetDataFunction # 自定义Lambda函数名
            runtime: nodejs18.x   # 必须指定运行时(根据你的代码环境调整)
            timeout: 30
            memorySize: 256
            handler: functions/get_data.handler

示例2:引用预定义的Lambda函数(更推荐)

这种方式先在functions块中统一定义Lambda函数,再在Resolver中引用,便于集中管理:

service: your-app-service-name

# 预定义Lambda函数
functions:
  GetDataFunction:
    handler: functions/get_data.handler
    runtime: nodejs18.x
    timeout: 30
    memorySize: 256

appSync:
  name: your-appsync-api
  schema: ./schema.graphql
  resolvers:
    Query.get_data:
      dataSource:
        type: AWS_LAMBDA
        config:
          function: GetDataFunction # 直接引用上方定义的函数名

关键注意事项

  • 所有AppSync配置必须放在appSync顶层节点下,这是插件识别配置的基础。
  • Lambda函数的runtime是必填项,必须与你的代码运行环境匹配(如nodejs18.x、python3.11等)。
  • 如果使用引用预定义函数的方式,Resolver中的function字段只需填写函数名,无需重复定义handler、timeout等属性。

内容的提问来源于stack exchange,提问作者berimbolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:21:46