mongodb - AppSync 中的 S3Object GraphQL 类型与 Lambda 数据源?

标签 mongodb amazon-s3 aws-lambda graphql aws-appsync

AppSync 中可用的 S3Object GraphQL 类型(请参阅 https://docs.aws.amazon.com/appsync/latest/devguide/building-a-client-app-ios.html 中的复杂对象部分)是否与 dynamoDB 绑定(bind),或者它是否可以与 Lambda 数据源(比如连接到 mongoDB 的数据源)一起使用?

来自上面链接的 AWS 文档...

type Post {
    id: ID!
    author: String!
    title: String
    content: String
    url: String
    ups: Int
    downs: Int
    file: S3Object
    version: Int!
}

type S3Object {
    bucket: String!
    key: String!
    region: String!
}

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

最佳答案

我还没有尝试过这个,但您应该能够完成您想要完成的事情,并使用 Lambda 数据源读取/写入其他东西,例如 Mongo 甚至 RDS。 AppSync 需要 S3ObjectS3ObjectInput 的 GraphQL 类型以及上面列出的 bucket 等字段,以便客户端 SDK 和代码生成器正确构建out 对象,但是 S3Link 功能是在解析器本身中完成的,用于读取和写入。您可以将其移动到 Lambda 中的逻辑层。

如果你看https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html#dynamodb-helpers-in-util-dynamodb您将看到映射函数签名和输出:

$util.dynamodb.toS3Object(String key, String bucket, String region) : Map
$util.dynamodb.toS3ObjectJson(String key, String bucket, String region) : String
$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map
$util.dynamodb.toS3ObjectJson(String key, String bucket, String region, String version) : String
$util.dynamodb.fromS3ObjectJson(String) : Map

因此,如果您想将此逻辑移动到写入/读取到 Lambda 中,那是完全可能的。如果你站起来这个样本,你将能够对其进行逆向工程:https://github.com/aws-samples/aws-amplify-graphql

关于mongodb - AppSync 中的 S3Object GraphQL 类型与 Lambda 数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734222/

相关文章:

node.js - 需要用mongodb中的条件更新字段

mongodb - 如果我不指定要更新的字段, Mongoose findOneAndUpdate 将无法正常工作

hadoop - Amazon/EMR 上的 BZip2 原生拆分

node.js - 是否可以将用户从我的 mongodb 数据库迁移到 aws cognito 用户池?

java - 触发浏览器PDF下载 Spring MVC

python - Django-compressor:如何写入 S3,从 CloudFront 读取?

node.js - 将 Cloudformation 模板中自定义资源支持的 lambda 从 6.10 更新到 8.10,不再发送请求

aws-lambda - AWS Lambda 连接到 RedShift 超时

javascript - Auth0 授权者拒绝来自服务的 JWT token - "jwt issuer invalid. expected: https://myservice.auth0.com"

javascript - Mongoose 模型模式引用不起作用 - 电子商务模型