added API gateway v2

main
Gabe Farrell 3 years ago
parent 70192929ca
commit 366ee3ff5d

@ -0,0 +1 @@
{"openapi":"3.0.3","info":{"title":"MusicAPI","version":"1.0","x-logo":{"url":""}},"paths":{"/":{"summary":"home page","get":{"tags":[]},"x-last-modified":1667004520934},"/add":{"summary":"add a song to the database","post":{"tags":[]},"x-last-modified":1667004538430},"/search?s={query}":{"get":{"tags":[]},"x-last-modified":1667004563860}},"components":{"securitySchemes":{},"schemas":{"home page":{"type":"string","format":"text/html","x-last-modified":1667004601418},"add response":{"type":"boolean","format":"boolean","x-last-modified":1667004629755},"search response":{"type":"object","required":["Title","Artist","File"],"x-last-modified":1667004679899}},"headers":{},"responses":{},"parameters":{}},"tags":[],"servers":[{"url":"https://api.example.io"}],"security":[]}

@ -65,6 +65,55 @@ Metadata:
embeds: []
isassociatedwith:
- 80500ba5-1749-47bc-8cfa-3e9a0f0d0572
d701293c-6494-4f90-b758-31f57f52e379:
size:
width: 60
height: 60
position:
x: -190
'y': 250
z: 0
embeds: []
7d399dae-9f6c-4026-9286-d33113777902:
size:
width: 60
height: 60
position:
x: -360
'y': 250
z: 0
embeds: []
b27ea063-d0ac-40c1-8c49-9147a53ea072:
size:
width: 60
height: 60
position:
x: -270
'y': 380
z: 0
embeds: []
88fe53b7-5e96-416e-ad00-9ebe8d04269a:
size:
width: 60
height: 60
position:
x: -200
'y': 140
z: 0
embeds: []
dependson:
- 80500ba5-1749-47bc-8cfa-3e9a0f0d0572
badaa010-8776-4159-8720-9ee8be16806e:
size:
width: 60
height: 60
position:
x: 80
'y': 380
z: 0
embeds: []
isassociatedwith:
- 80500ba5-1749-47bc-8cfa-3e9a0f0d0572
Resources:
URL:
Type: 'AWS::Lambda::Url'
@ -85,7 +134,7 @@ Resources:
Handler: index.handler
Runtime: nodejs16.x
Code:
S3Bucket: ${bucketname}
S3Bucket: '${bucketname}'
S3Key: index.zip
Role: !GetAtt SiteRole.Arn
Metadata:
@ -148,10 +197,70 @@ Resources:
Type: 'AWS::Lambda::Permission'
Properties:
Action: 'lambda:invokeFunctionUrl'
FunctionUrlAuthType: 'NONE'
FunctionUrlAuthType: NONE
FunctionName: !Ref Server
Principal: '*'
Metadata:
'AWS::CloudFormation::Designer':
id: 161bd476-b869-4c2e-968b-05cd0b73052f
MusicAPI:
Type: 'AWS::ApiGatewayV2::Api'
Properties:
Target: !GetAtt Server.Arn
Name: MusicAPI
ProtocolType: HTTP
Metadata:
'AWS::CloudFormation::Designer':
id: d701293c-6494-4f90-b758-31f57f52e379
HomeRoute:
Type: 'AWS::ApiGatewayV2::Route'
Properties:
ApiId: !Ref MusicAPI
RouteKey: Get /
Target: !Join
- /
- - integrations
- !Ref APIIntegration
Metadata:
'AWS::CloudFormation::Designer':
id: 7d399dae-9f6c-4026-9286-d33113777902
DependsOn:
- MusicAPI
AddRoute:
Type: 'AWS::ApiGatewayV2::Route'
Properties:
ApiId: !Ref MusicAPI
RouteKey: POST /add
Target: !Join
- /
- - integrations
- !Ref APIIntegration
Metadata:
'AWS::CloudFormation::Designer':
id: b27ea063-d0ac-40c1-8c49-9147a53ea072
DependsOn:
- MusicAPI
APIIntegration:
Type: 'AWS::ApiGatewayV2::Integration'
Properties:
ApiId: !Ref MusicAPI
IntegrationType: AWS_PROXY
PayloadFormatVersion: 2.0
IntegrationUri:
'Fn::Sub': >-
arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${Server.Arn}/invocations
Metadata:
'AWS::CloudFormation::Designer':
id: 88fe53b7-5e96-416e-ad00-9ebe8d04269a
DependsOn:
- Server
APIPermission:
Type: 'AWS::Lambda::Permission'
Properties:
Action: 'lambda:InvokeFunction'
FunctionName: !Ref Server
Principal: apigateway.amazonaws.com
SourceArn: !Sub 'arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${MusicAPI}/*/*/'
Metadata:
'AWS::CloudFormation::Designer':
id: badaa010-8776-4159-8720-9ee8be16806e

Loading…
Cancel
Save