ale*_*rea 3 amazon-dynamodb aws-api-gateway
您好,我需要通过 api 网关从 dynamodb 获取一个项目,并且我配置如下资源:
我配置集成方法如下图所示:
但是当我测试 apigateway 启动时出现此错误
Execution failed due to configuration error:
No match for output mapping and no default output mapping configured.
Endpoint Response Status Code: 200
Gateway response type: API_CONFIGURATION_ERROR with status code: 500
Run Code Online (Sandbox Code Playgroud)
小智 7
我按照这两个教程对我的 dynamoDB 表执行了 get 操作。
{
"TableName": "apiG",
"Key": {
"pk": {
"S": "key1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但如果我提出我的要求
{
"TableName": "apiG",
"PrimaryKey": "pk",
"KeyConditionExpression": "pk = :v1",
"ExpressionAttributeValues": {
":v1": {
"S": "key1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我从 dynamoDB 得到了所需的响应。
这将确保您的 DynamoDB 输出在不修改的情况下发送到您的浏览器/输出。
#set($inputRoot = $input.path('$'))
{
"content": [
#foreach($elem in $inputRoot.Items) {
"key": "$elem.pk.S",
"value": "$elem.pv.S"
}#if($foreach.hasNext),#end
#end
]
}
Run Code Online (Sandbox Code Playgroud)
它产生了以下输出。
{
"content": [
{
"key": "key1",
"value": "val1"
}
]
}
Run Code Online (Sandbox Code Playgroud)
PS 我有一个名为“apiG”的发电机表,其主键为“pk”,并遵循我的实验中导出的 swagger。希望能帮助到你。
openapi: "3.0.1"
info:
title: "dynamoProxy"
version: "2020-05-01T06:45:38Z"
servers:
- url: "https://aaaaaaaaaa.execute-api.us-east-2.amazonaws.com/{basePath}"
variables:
basePath:
default: "/test"
paths:
/db:
get:
responses:
200:
description: "200 response"
content:
application/json:
schema:
$ref: "#/components/schemas/Empty"
x-amazon-apigateway-integration:
credentials: "arn:aws:iam::111111111111:role/apiGddbRole"
uri: "arn:aws:apigateway:us-east-2:dynamodb:action/Query"
responses:
default:
statusCode: "200"
responseTemplates:
application/json: "#set($inputRoot = $input.path('$'))\n{\n \"content\"\
: [\n #foreach($elem in $inputRoot.Items) {\n \"\
key\": \"$elem.pk.S\",\n \"value\": \"$elem.pv.S\"\n \
\ }#if($foreach.hasNext),#end\n\t#end\n ]\n}"
passthroughBehavior: "when_no_templates"
httpMethod: "POST"
requestTemplates:
application/json: "{\n \"TableName\": \"apiG\",\n \"PrimaryKey\":\
\ \"pk\",\n \"KeyConditionExpression\": \"pk = :v1\",\n \"ExpressionAttributeValues\"\
: {\n \":v1\": {\n \"S\": \"key1\"\n }\n }\n\
}"
type: "aws"
components:
schemas:
Empty:
title: "Empty Schema"
type: "object"
Run Code Online (Sandbox Code Playgroud)
干杯!
| 归档时间: |
|
| 查看次数: |
1755 次 |
| 最近记录: |