Я пытаюсь создать шаблон, чтобы при вызове api/divide/inputvalue
, api отправляет ответ от DynamoDB
, который соответствует отображению inputvalue
.ApiGateway CloudFormation без lambda
Его довольно прямой вперед, так как я получаю значение непосредственно из db без какой-либо бизнес-логики, поэтому мне не нужна никакая лямбда. Но все примеры, что я google или все учебники они используют lambdas, и теперь я потерял, что как я могу заставить его работать без лямбда
Это то, что у меня есть до сих пор. В этом шаблоне есть ошибка, так как я не предоставил 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"
}
}
}
}
Спасибо. Это было полезно. Я уже смотрел URL-адрес службы, когда увидел ваш ответ. Я обновил * шаблон *. Теперь часть, за которой я застрял, - это получить параметр path в моем случае 'inputvalue' из url' api/divide/inputvalue' и использовать этот запрос dynamodb. Я смотрел пример http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#d0e33813, чтобы посмотреть, как я могу это сделать, но полученный в результате шаблон дал мне ошибку, атрибут ресурсаApiName.Arn' недействителен. –
Вы должны уметь определять «RequestParameters» в restApiMethod и ссылаться на это в шаблоне запроса интеграции. – Balaji