Я пытаюсь создать шаблон, чтобы при вызове api/divide/inputvalue
API отправлял ответ от DynamoDB
, который соответствует сопоставлению inputvalue
.
Это довольно просто, так как я извлекаю значение непосредственно из базы данных без какой-либо бизнес-логики, поэтому мне не нужна лямбда. Но все примеры, которые я гуглю, или все учебники используют лямбда-выражения, и теперь я не понимаю, как я могу заставить его работать без лямбда-выражений.
Это то, что у меня есть до сих пор. В этом шаблоне прямо сейчас есть ошибка, так как я не предоставил Uri
в ApiGateway::Method
. На чем я сейчас застрял.
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"Deployment": {
"Type": "AWS::ApiGateway::Deployment",
"Properties": {
"RestApiId": { "Ref": "restApiName" },
"Description": "First Deployment",
"StageName": "StagingStage"
},
"DependsOn" : ["restApiMethod"]
},
"restApiMethod": {
"Type": "AWS::ApiGateway::Method",
"Properties": {
"AuthorizationType": "NONE",
"HttpMethod": "GET",
"ResourceId": {"Ref": "apiRestResource"},
"RestApiId": {"Ref": "restApiName"},
"Integration": {
"Type": "AWS",
"IntegrationHttpMethod": "GET",
"IntegrationResponses": [{"StatusCode": 200}],
"Uri": { "Fn::Sub":"arn.aws.apigateway:${AWS::Region}:dynamodb:action/${restApiName.Arn}"}
},
"MethodResponses": [{"StatusCode": 200}]
},
"DependsOn": ["apiRestResource"]
},
"apiRestResource": {
"Type": "AWS::ApiGateway::Resource",
"Properties": {
"RestApiId": {"Ref": "restApiName"},
"ParentId": {
"Fn::GetAtt": ["restApiName","RootResourceId"]
},
"PathPart": "divide"
},
"DependsOn": ["restApiName"]
},
"restApiName": {
"Type": "AWS::ApiGateway::RestApi",
"Properties": {
"Name": "CalculationApi"
}
}
}
}
inputvalue
из URL-адресаapi/divide/inputvalue
и использовать его запрос dynamodb. Я просматривал docs.aws. amazon.com/AWSCloudFormation/latest/UserGuide/ пример, чтобы увидеть, как я могу это сделать, но полученный шаблон выдал мне ошибку, чтоresource attribute restApiName.Arn
недействителен. 03.02.2017