UNPKG

@kalarrs/serverless-shared-api-gateway

Version:

Share a single AWS Api Gatewy between multiple serverless projects

405 lines 12.8 kB
{ "service": { "service": "panda", "serviceObject": { "name": "panda" }, "provider": { "stage": "dev", "region": "us-east-1", "variableSyntax": "\\${([ ~:a-zA-Z0-9._'\",\\-\\/\\(\\)]+?)}", "name": "aws", "runtime": "nodejs8.10", "environment": { "NODE_ENV": "dev", "SERVICE_NAME": "panda" }, "versionFunctions": true, "remoteFunctionData": null, "apiGatewayRestApiName": "generated", "compiledCloudFormationTemplate": { "AWSTemplateFormatVersion": "2010-09-09", "Description": "The AWS CloudFormation template for this Serverless application", "Resources": { "ServerlessDeploymentBucket": { "Type": "AWS::S3::Bucket" }, "CreateLogGroup": { "Type": "AWS::Logs::LogGroup", "Properties": { "LogGroupName": "/aws/lambda/panda-dev-create" } }, "IamRoleLambdaExecution": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Policies": [ { "PolicyName": { "Fn::Join": [ "-", [ "dev", "panda", "lambda" ] ] }, "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/panda-dev-create:*" } ] }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/panda-dev-create:*:*" } ] } ] } } ], "Path": "/", "RoleName": { "Fn::Join": [ "-", [ "panda", "dev", "us-east-1", "lambdaRole" ] ] } } }, "CreateLambdaFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Code": { "S3Bucket": { "Ref": "ServerlessDeploymentBucket" }, "S3Key": "serverless/panda/dev/1544117610766-2018-12-06T17:33:30.766Z/panda.zip" }, "FunctionName": "panda-dev-create", "Handler": "src/handler.create", "MemorySize": 1024, "Role": { "Fn::GetAtt": [ "IamRoleLambdaExecution", "Arn" ] }, "Runtime": "nodejs8.10", "Timeout": 6, "Environment": { "Variables": { "NODE_ENV": "test", "SERVICE_NAME": "panda" } } }, "DependsOn": [ "CreateLogGroup", "IamRoleLambdaExecution" ] }, "CreateLambdaVersionnT19tKLrQ9agg63HItePiL0qHSJC6ckA3YDP8YCeJU": { "Type": "AWS::Lambda::Version", "DeletionPolicy": "Retain", "Properties": { "FunctionName": { "Ref": "CreateLambdaFunction" }, "CodeSha256": "cvOcCEpf0i9CXmEaKdkxXEMymqtI7ZrAcxfONPWGDN4=" } }, "ApiGatewayResourcePandas": { "Type": "AWS::ApiGateway::Resource", "Properties": { "ParentId": "abcde1fghi", "PathPart": "pandas", "RestApiId": "ijklmn12op" } }, "ApiGatewayMethodPandasOptions": { "Type": "AWS::ApiGateway::Method", "Properties": { "AuthorizationType": "NONE", "HttpMethod": "OPTIONS", "MethodResponses": [ { "StatusCode": "200", "ResponseParameters": { "method.response.header.Access-Control-Allow-Origin": true, "method.response.header.Access-Control-Allow-Headers": true, "method.response.header.Access-Control-Allow-Methods": true, "method.response.header.Access-Control-Allow-Credentials": true }, "ResponseModels": {} } ], "RequestParameters": {}, "Integration": { "Type": "MOCK", "RequestTemplates": { "application/json": "{statusCode:200}" }, "ContentHandling": "CONVERT_TO_TEXT", "IntegrationResponses": [ { "StatusCode": "200", "ResponseParameters": { "method.response.header.Access-Control-Allow-Origin": "'*'", "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent'", "method.response.header.Access-Control-Allow-Methods": "'OPTIONS,POST'", "method.response.header.Access-Control-Allow-Credentials": "'false'" }, "ResponseTemplates": { "application/json": "" } } ] }, "ResourceId": { "Ref": "ApiGatewayResourcePandas" }, "RestApiId": "ijklmn12op" } }, "ApiGatewayMethodPandasPost": { "Type": "AWS::ApiGateway::Method", "Properties": { "HttpMethod": "POST", "RequestParameters": {}, "ResourceId": { "Ref": "ApiGatewayResourcePandas" }, "RestApiId": "ijklmn12op", "ApiKeyRequired": false, "AuthorizationType": "NONE", "Integration": { "IntegrationHttpMethod": "POST", "Type": "AWS_PROXY", "Uri": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":apigateway:", { "Ref": "AWS::Region" }, ":lambda:path/2015-03-31/functions/", { "Fn::GetAtt": [ "CreateLambdaFunction", "Arn" ] }, "/invocations" ] ] } }, "MethodResponses": [] } }, "ApiGatewayDeployment1544117610768": { "Type": "AWS::ApiGateway::Deployment", "Properties": { "RestApiId": "ijklmn12op", "StageName": "dev" }, "DependsOn": [ "ApiGatewayMethodPandasOptions", "ApiGatewayMethodPandasPost" ] }, "CreateLambdaPermissionApiGateway": { "Type": "AWS::Lambda::Permission", "Properties": { "FunctionName": { "Fn::GetAtt": [ "CreateLambdaFunction", "Arn" ] }, "Action": "lambda:InvokeFunction", "Principal": { "Fn::Join": [ "", [ "apigateway.", { "Ref": "AWS::URLSuffix" } ] ] }, "SourceArn": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":execute-api:", { "Ref": "AWS::Region" }, ":", { "Ref": "AWS::AccountId" }, ":", "ijklmn12op", "/*/*" ] ] } } } }, "Outputs": { "ServerlessDeploymentBucketName": { "Value": { "Ref": "ServerlessDeploymentBucket" } }, "CreateLambdaFunctionQualifiedArn": { "Description": "Current Lambda function version", "Value": { "Ref": "CreateLambdaVersionnT19tKLrQ9agg63HItePiL0qHSJC6ckA3YDP8YCeJU" } }, "ServiceEndpoint": { "Description": "URL of the service endpoint", "Value": { "Fn::Join": [ "", [ "https://", "ijklmn12op", ".execute-api.us-east-1.", { "Ref": "AWS::URLSuffix" }, "/dev" ] ] } } } }, "coreCloudFormationTemplate": { "AWSTemplateFormatVersion": "2010-09-09", "Description": "The AWS CloudFormation template for this Serverless application", "Resources": { "ServerlessDeploymentBucket": { "Type": "AWS::S3::Bucket" } }, "Outputs": { "ServerlessDeploymentBucketName": { "Value": { "Ref": "ServerlessDeploymentBucket" } } } }, "vpc": {}, "apiGatewayRestApiId": "ijklmn12op", "restApiResourceId": "abcde1fghi" }, "custom": { "localDevPort": 5999, "debug": true }, "pluginsData": {}, "functions": { "create": { "handler": "src/handler.create", "events": [ { "http": { "method": "post", "path": "pandas", "cors": { "origins": [ "*" ], "origin": "*", "methods": [ "OPTIONS", "POST" ], "headers": [ "Content-Type", "X-Amz-Date", "Authorization", "X-Api-Key", "X-Amz-Security-Token", "X-Amz-User-Agent" ], "allowCredentials": false }, "integration": "AWS_PROXY" } } ], "environment": { "NODE_ENV": "test" }, "name": "panda-dev-create", "package": {}, "memory": 1024, "timeout": 6, "runtime": "nodejs8.10", "vpc": {} } }, "layers": {}, "artifact": "/Users/kalarrs/projects/@kalarrs/plugins/serverless-shared-api-gateway/test/.serverless/panda.zip" }, "package": { "artifactDirectoryName": "serverless/panda/dev/1544117610766-2018-12-06T17:33:30.766Z", "artifact": "panda.zip" } }