当我使用配置为Lambda作为数据源的AppSync将聊天消息发送到Aurora数据库时,我试图将图像上传到S3存储桶中。
我对该突变的解析器是:
{
"version": "2017-02-28",
"operation": "Invoke",
"payload": {
"field": "createMessage",
"arguments": $utils.toJson($context.arguments)
}
}
消息已正确保存在数据库中,但是S3图像数据文件未保存在我的S3存储桶中。我相信我已经正确配置了所有内容,除了不确定的解析器。
答案 0 :(得分:1)
当数据源为lambda时,使用AppSync上载文件与其他所有数据源基本相同,并且不依赖于解析器。
只需确保已设置复杂对象的凭据(使用Amplify库进行授权的JS示例):
import { Auth } from 'aws-amplify'
const client = new AWSAppSyncClient({
url: /*your endpoint*/,
region: /*your region*/,
complexObjectsCredentials: () => Auth.currentCredentials(),
})
此外,您还需要提供S3复杂对象作为您的突变的输入类型:
input S3ObjectInput {
bucket: String!
key: String!
region: String!
localUri: String
mimeType: String
}
即使使用lambda数据源,其他所有内容也可以正常工作。在这里,您可以找到与您的问题相关的更多信息(在该示例中,使用了dynamoDB,但对于lambda基本上相同:https://stackoverflow.com/a/50218870/9359164