Ich versuche, eine Vorlage zu erstellen, so dass, wenn ich api/divide/inputvalue
aufrufen, sendet die API Antwort von DynamoDB
, die inputvalue
Zuordnung entspricht.ApiGateway CloudFormation ohne Lambda
Es ist ziemlich direkt, da ich Wert direkt von db ohne irgendeine Geschäftslogik abhole, folglich brauche ich kein Lambda. Aber alle Beispiele, die ich google oder alle Tutorials verwenden sie lambdas und ich bin jetzt verloren, wie kann ich es ohne Lambda arbeiten
Das ist, was ich bisher habe. Es gibt einen Bug in dieser Vorlage, da ich Uri
in ApiGateway::Method
nicht zur Verfügung gestellt habe. Woran ich gerade festhalte.
{
"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"
}
}
}
}
Danke. Das war hilfreich. Ich habe mir bereits die Service-URL angesehen, als ich deine Antwort gesehen habe. Ich habe die * Vorlage * aktualisiert. Nun ist der Teil, bei dem ich feststecke, den path-Parameter in meinem Fall 'inputvalue' von der URL' api/divide/inputvalue' zu erhalten und die Dynamodb-Abfrage zu verwenden. Ich schaute auf http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apgateway-method.html#d0e33813 Beispiel, um zu sehen, wie kann ich das tun, aber die resultierende Vorlage gab mir Fehler, dass ' Das Ressourcenattribut restApiName.Arn' ist ungültig. –
Sie sollten "requestParameters" in restApiMethod definieren können und in der Integrationsanforderungsvorlage darauf Bezug nehmen. – Balaji