Amazon s3 当数据源为Lambda函数时,使用AppSync将图像上载到AWS S3

Amazon s3 当数据源为Lambda函数时,使用AppSync将图像上载到AWS S3,amazon-s3,file-upload,aws-lambda,aws-appsync,Amazon S3,File Upload,Aws Lambda,Aws Appsync,当我使用配置为Lambda的AppSync将聊天信息发送到我的Aurora数据库时,我试图将图像上传到我的S3存储桶 我的突变解决方案是: { "version": "2017-02-28", "operation": "Invoke", "payload": { "field": "createMessage", "arguments": $utils.toJson($context.arguments) } } 消息正确保存

当我使用配置为Lambda的AppSync将聊天信息发送到我的Aurora数据库时,我试图将图像上传到我的S3存储桶

我的突变解决方案是:

{
    "version": "2017-02-28",
    "operation": "Invoke",
    "payload": {
        "field": "createMessage",
        "arguments":  $utils.toJson($context.arguments)
    }
}

消息正确保存在数据库中,但S3图像数据文件未保存在我的S3存储桶中。我相信我已经正确地配置了所有内容,除了我不确定的冲突解决程序。

当数据源为lambda时,使用AppSync上载文件与其他所有数据源基本相同,并且不依赖于冲突解决程序

只需确保设置了复杂对象的凭据(JS示例使用Amplify library进行授权):

此外,您还需要提供S3复杂对象作为突变的输入类型:

input S3ObjectInput {
    bucket: String!
    key: String!
    region: String!
    localUri: String
    mimeType: String
}

即使使用lambda数据源,其他一切都可以正常工作。在这里,您可以找到与您的问题相关的更多信息(在该示例中,使用了dynamoDB,但lambda基本相同:

那么您是否通过lambda函数将图像上载到S3?不,我正在使用appsync graphql上载我想问的是,您是否有lambda解析器上载到S3。或者您是否使用AWS SDK执行此操作?我正在使用AWS SDK执行此操作。app sync客户端NDL从图形ql架构上载
input S3ObjectInput {
    bucket: String!
    key: String!
    region: String!
    localUri: String
    mimeType: String
}