我有一个 API 网关,可以访问 dynamo DB 中存储的表。存储的表看起来像 JSON,如下所示
{
"photos": {
"page": 1,
"pages": "1234",
"perpage": 100,
"photo": [
{
"farm": 1,
"id": "12345678901",
"isfamily": 0,
"isfriend": 0,
"ispublic": 1,
"owner": "23456789@A12",
"secret": "abc123d456",
"server": "1234",
"title": "Sample photo 1"
},
{
"farm": 2,
"id": "23456789012",
"isfamily": 0,
"isfriend": 0,
"ispublic": 1,
"owner": "34567890@B23",
"secret": "bcd234e567",
"server": "2345",
"title": "Sample photo 2"
}
],
"total": "123398"
},
"srini": "srini"
}
Run Code Online (Sandbox Code Playgroud)
如果没有集成响应映射模板,我得到的表格如下所示
{
"Count": 1, "Items": [
{
"photos": {
"M": { …Run Code Online (Sandbox Code Playgroud) 我正在尝试将表从 DynamoDB 导出到 S3。按照此处的文档,我创建了管道所需的两个角色:DataPipelineDefaultRole 和 DataPipelineDefaultResourceRole。尝试执行管道后,我发现我的 DataPipelineDefaultRole 不是使用实例配置文件创建的。
我一直在浏览论坛,亚马逊表示,人们在通过 CLI 创建 IAM 角色时会收到这样的错误。他们的建议是通过控制台创建角色,然后实例配置文件将自动附加到卷中。我正在通过控制台创建角色,但对于 DataPipelineDefaultRole,没有附加实例配置文件?
有没有办法手动附加实例配置文件?或者我是否遗漏了一些导致它无法自动生成的东西?
我们有一个在 DynamoDB 表中创建记录的自动化流程。我想在创建新记录/对象时收到一封电子邮件。我怎样才能做到这一点?
我尝试使用 Zapier,但 DynamoDB Zap 中有一个错误,因此它不起作用
我尝试使用 apiGateway 作为 dynamodb 的代理,但由于某种原因集成返回 404。
我在 apiGateway 中创建了一个 patch 方法资源。并在集成映射模板中使用以下数据进行测试:
{
"TableName": "Retool_Output",
"Item": {
"customerId": "1234",
"fav_movies": "Shalini"
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我测试这个网关时,它不会更新 dynamodb 并给出 404,如下所示。
Tue Aug 06 17:03:56 UTC 2019 : Endpoint request body after
transformations: {
"TableName": "Retool_Output",
"Item": {
"customerId": "1234",
"fav_movies": "Shalini"
}
}
Tue Aug 06 17:03:56 UTC 2019 : Sending request to https://dynamodb.ap-
south-1.amazonaws.com//
Tue Aug 06 17:03:56 UTC 2019 : Received response. Status: 404, Integration
latency: 13 ms
Run Code Online (Sandbox Code Playgroud)
有人可以建议我如何解决这个问题。
我正在学习 AWS Dynamodb。根据AWS文档,它由AWS设置和配置为分布式数据库集群,并且数据库中的数据可以跨AWS区域中的可用区进行故障转移。
我真的很想了解 Dynamodb 和可用区的底层架构。
正如我所想,在可用区中有多个服务器实例(可能是 EC2 实例)作为 DynamoDB 的数据库集群;一个可用区中的 dynamodb 将被复制到一个区域中的所有可用区。
欢迎任何想法、讨论或有用的链接。
我正在使用 Boto3 检索并返回小型 dynamoDB 表中的所有数据。我的目标是从输出中删除 attributeTypes。
以下是我的输出:
{"Items": [{"PresidentialCandidate_ID": {"S": "Trump"}, "Vote": {"N": "47"}}, {"PresidentialCandidate_ID": {"S": "Stein"}, "Vote": {"N": "16"}}, {"PresidentialCandidate_ID": {"S": "Dwayne"}, "Vote": {"N": "1"}}, {"PresidentialCandidate_ID": {"S": "none"}, "Vote": {"N": "11"}}, {"PresidentialCandidate_ID": {"S": "Johnson"}, "Vote": {"N": "13"}}, {"PresidentialCandidate_ID": {"S": "Clinton"}, "Vote": {"N": "22"}}], "Count": 6, "ScannedCount": 6}
Run Code Online (Sandbox Code Playgroud)
我想要的输出:
{"Items":[{"PresidentialCandidate_ID":"Trump","Vote":47},{"PresidentialCandidate_ID":"Stein","Vote":16},{"PresidentialCandidate_ID":"Dwayne","Vote":1},{"PresidentialCandidate_ID":"none","Vote":11},{"PresidentialCandidate_ID":"Johnson","Vote":13},{"PresidentialCandidate_ID":"Clinton","Vote":22}],"Count":6,"ScannedCount":6}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
{"Items": [{"PresidentialCandidate_ID": {"S": "Trump"}, "Vote": {"N": "47"}}, {"PresidentialCandidate_ID": {"S": "Stein"}, "Vote": {"N": "16"}}, {"PresidentialCandidate_ID": {"S": "Dwayne"}, "Vote": {"N": "1"}}, {"PresidentialCandidate_ID": {"S": "none"}, "Vote": {"N": "11"}}, {"PresidentialCandidate_ID": {"S": "Johnson"}, "Vote": …Run Code Online (Sandbox Code Playgroud) 我正在学习如何使用无服务器框架来创建和管理 AWS 服务。我已经使用无服务器站点上的文档逐步部署了无服务器项目,但由于某种原因,我无法在 AWS 管理控制台中看到 DynamoDB 表。
我已检查我使用的 AWS 配置文件是否正确,当我从终端使用 cURL 时,我能够从表中发布和获取数据,并且能够在浏览器中查看这些端点上的数据,但我无法在 serverless.yml 文件之外的任何地方看到对创建的表的任何引用。这是为什么?请参阅下面的代码(完整的演示存储库位于此链接: https: //github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb)。
感谢您帮助学习这里的细微差别。谢谢!
org: justinbell714
app: jb-test-from-docs
service: serverless-rest-api-with-dynamodb
frameworkVersion: ">=1.1.0 <2.0.0"
provider:
name: aws
runtime: nodejs10.x
environment:
DYNAMODB_TABLE: ${self:service}-${opt:stage, self:provider.stage}
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.DYNAMODB_TABLE}"
functions:
create:
handler: todos/create.create
events:
- http:
path: todos
method: post
cors: true
list:
handler: todos/list.list
events:
- http:
path: todos
method: get
cors: …Run Code Online (Sandbox Code Playgroud) 我正在开发一个仅支持 cURL 请求(仅 POST/GET/UPDATE 等)的平台。我需要在我的应用程序中使用 DynamoDB - 有没有办法通过 cURL 实施 DynamoDB?更清楚地说,我只需要四件事 - PutItem、Query、GetItem和Update ItemDynamoDB。
我在某处读到过有关“Lambda”函数的内容,但无法确切理解它创建 REST API 的目的是什么。它会以任何方式帮助我吗?
感谢任何帮助:) 谢谢!
amazon-web-services amazon-dynamodb aws-lambda aws-api-gateway
由于Dynamodb以键值对的形式存储数据,其中键是主键的类型,值是与其关联的数据。我想知道dynamo db是否真正理解值(json)?我所说的值是指json与键关联的对象(RDBMS 中的一行)。dynamo db 是否理解有一些属性以及它要存储的属性的一些值?
上下文:我在 dynamo 数据库中有一个人员表,它具有不同的属性,比如 100,其中之一是年龄,现在假设有一些要求,我想根据年龄获取一些记录。如果dynamo db逐一读取每个条目,然后读取其记录,并假设每条记录都非常大,那么dynamo db是否会读取记录的整个数据,或者无论记录的大小如何,它都可以在恒定时间内仅访问年龄属性吗?
我有一个 Dynamo 表,其中只有分区键 - “CreatedAt”和一些其他属性。
我想写一个查询,但我不会得到结果。CreatedAt 位于 LastSunday 和 Today 之间的项目的数量。
我已将日期以字符串格式存储为“2021-03-09T14:33:29Z”。
我不想使用 GSI。
使用以下查询时,我收到错误 - “不支持查询关键条件”
这是我的代码:
var queryRequest = new QueryRequest
{
TableName = myTableName,
KeyConditionExpression = "CreatedAt BETWEEN :LastMonday AND :TodaysDate",
};
Dictionary<string, AttributeValue> expressionAttributeValues = new Dictionary<string, AttributeValue>();
expressionAttributeValues.Add(":TodaysDate", new AttributeValue { S = "2021-03-09T14:33:29Z" });
expressionAttributeValues.Add(":LastMonday", new AttributeValue { S = "2021-03-02T14:33:29Z" });
queryRequest.ExpressionAttributeValues = expressionAttributeValues;
var response = await awsDynamoClient.QueryAsync(queryRequest);
Run Code Online (Sandbox Code Playgroud) amazon-dynamodb ×10
aws-lambda ×3
nosql ×2
.net ×1
amazon-iam ×1
amazon-s3 ×1
boto ×1
boto3 ×1
c# ×1
serverless ×1