使用无服务器框架设置AppSyncAPI时,单个文件中是否可以有多个速度模板?

时间:2019-01-13 02:44:57

标签: velocity serverless-framework aws-appsync

按照存储库https://github.com/sid88in/serverless-appsync-plugin上的说明,我能够成功设置AWS AppSyncAPI,但是最终我得到了很多映射模板,例如。 customer-create.vtl,因为每个域对象都需要在serverless.yml上引用请求和响应.vtl文件。

我想知道是否可以在一个文件中放置多个模板?

我的意思是,不是让customer-create.vtl和customer-delete.vtl将这两个内容粘贴到单个文件(例如customer.vtl)中,然后通过属性名称指向模板。

尝试过此方法,但没有成功:

{"create":{
  "version": "2017-02-28",
  "operation": "PutItem",
  "key": {
    "customerId": $util.dynamodb.toDynamoDBJson($ctx.identity.username),
    "attributeValues": $util.dynamodb.toMapValuesJson($ctx.args.input),  
  },
},
"delete":{
  "version": "2017-02-28",
  "operation": "DeleteItem",
  "key": {
    "customerId": $util.dynamodb.toDynamoDBJson($ctx.args.input.customerId)
  },
 }
}
mappingTemplates:
  # Customer
  - dataSource: Dynamo_customer
    type: Mutation 
    field: createCustomer
    request: ${file(customer-templates.vtl):create}
    response: common-response.vtl
  - dataSource: Dynamo_customer
    type: Mutation 
    field: deleteCustomer
    request: ${file(customer-templates.vtl):delete}
    response: common-response.vtl 
  - dataSource: Dynamo_customer

1 个答案:

答案 0 :(得分:1)

不幸的是,目前AppSync无法做到这一点。不过,我已经注意到这是对服务的功能要求,并将在以后的版本中将其带回给团队进行优先级排序。

感谢您的反馈!