amazon-web-services - AWS API Gateway 将 JSON 存储到 DynamoDB

标签 amazon-web-services amazon-dynamodb aws-api-gateway

我在尝试使用 API Gateway 作为 DynamoDB 的代理时遇到问题。

基本上,如果我知道要存储的数据的结构,它会很好用,但无论有效负载结构如何,我都无法使其动态化。

有很多网站解释了如何使用 API Gateway 作为 DynamoDB 的代理。
我发现没有解释如何存储 JSON 对象。

基本上我将此 JSON 发送到我的 API 端点:

{
    "entryId":"abc",
    "data":{
        "key1":"123",
        "key2":123
    }
}

如果我使用以下模板进行映射,数据将正确放入我的数据库中
{ 
    "TableName": "Events",
    "Item": {
        "entryId": {
            "S": "abc"
        },
        "data": {
            "M": {
              "key1": {
                "S": "123"
              },
              "key2": {
                "N": "123"
              }
            }
        }
    }
}

但是,我不知道“数据”的结构,因此为什么我希望映射是动态的,或者甚至更好,我想完全避免任何映射。

我设法使它成为动态的,但我所有的条目现在都是 String 类型:
      "data": { "M" : {
      #foreach($key in $input.path('$.data').keySet())
      "$key" : {"S": "$input.path('$.data').get($key)"}#if($foreach.hasNext),#end
      #end }
              }

是否可以动态获取类型?
我还不太确定 API 网关映射是如何工作的。

谢谢你的帮助。

塞伯

最佳答案

插入 Dynamodb 时,您不会避免某种映射。我建议使用 Lambda 函数而不是服务代理,以便在将数据映射到 Dynamodb 架构时提供更多控制权和灵活性。

关于amazon-web-services - AWS API Gateway 将 JSON 存储到 DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993822/

相关文章:

amazon-web-services - 如何在数据加载前截断 AWS Glue 作业中的 RDS 表?

javascript - AWS JS SDK、IAM 和 DynamoDB 问题

spring-boot - 使用Java将数据从AWS DynamoDB索引到Elasticssearch云

amazon-web-services - 保护外部最终用户和内部系统的 AWS API Gateway 安全

amazon-web-services - AWS 云信息 : Security group is not valid

amazon-web-services - E2507 IAM 策略 key 版本不存在

amazon-web-services - 模板包含错误。 : Invalid template resource property 'Fn::ImportValue'

amazon-web-services - "Strong Consistency"与 "Read-after-write Consistency"

amazon-web-services - 如何限制 AWS API Gateway 对特定 CloudFront 分配或 Route53 子域的访问

amazon-web-services - Open API 中指定的文档不会从 AWS API Gateway 导出