-
Notifications
You must be signed in to change notification settings - Fork 1
/
template.yaml
74 lines (74 loc) · 2.1 KB
/
template.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: Serverless Meetings with Amazon Chime Demo
Globals:
Function:
Runtime: nodejs12.x
Timeout: 30
MemorySize: 128
Resources:
# Create Chime Resources Access Policy
ChimeMeetingsAccessPolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: ChimeMeetingsAccess
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- 'chime:CreateMeeting'
- 'chime:DeleteMeeting'
- 'chime:GetMeeting'
- 'chime:ListMeetings'
- 'chime:BatchCreateAttendee'
- 'chime:CreateAttendee'
- 'chime:DeleteAttendee'
- 'chime:GetAttendee'
- 'chime:ListAttendees'
Resource: '*'
Roles:
# Which roles will have this policy
- Ref: MeetingJoinLambdaRole
- Ref: MeetingEndLambdaRole
MeetingIndexLambda:
Type: 'AWS::Serverless::Function'
Properties:
Handler: handlers.index
Events:
Api1:
Type: Api
Properties:
# since it is a static page, proxy+ will redirect all resources to that endpoint
Path: /{proxy+}
Method: GET
Auth:
# If you don't specify an empty authorizer, API Gateway requests an API Key by default
Authorizer: null
# Join function definition
MeetingJoinLambda:
Type: AWS::Serverless::Function
Properties:
Handler: handlers.join
Events:
Api1:
Type: Api
Properties:
Path: /join
Method: POST
# End function definition
MeetingEndLambda:
Type: AWS::Serverless::Function
Properties:
Handler: handlers.end
Events:
Api1:
Type: Api
Properties:
Path: /end
Method: POST
Outputs:
ApiURL:
Description: "API endpoint URL for Prod environment"
Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"