-
Notifications
You must be signed in to change notification settings - Fork 0
/
template.yml
134 lines (123 loc) · 4.61 KB
/
template.yml
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# This is the SAM template that represents the architecture of your serverless application
# https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html
# The AWSTemplateFormatVersion identifies the capabilities of the template
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/format-version-structure.html
AWSTemplateFormatVersion: 2010-09-09
Description: >-
demo city temperature using mongodb atlas for storage
# Transform section specifies one or more macros that AWS CloudFormation uses to process your template
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html
Transform: AWS::Serverless-2016-10-31
# Shared configuration for all resources, more in
# https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
Function:
# The PermissionsBoundary allows users to safely develop with their function's permissions constrained
# to their current application. All the functions and roles in this application have to include it and
# it has to be manually updated when you add resources to your application.
# More information in https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
PermissionsBoundary: !Sub 'arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/${AppId}-${AWS::Region}-PermissionsBoundary'
Parameters:
AppId:
Type: String
# Resources declares the AWS resources that you want to include in the stack
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html
Resources:
MyQueue:
Type: AWS::SQS::Queue
# Each Lambda function is defined by properties:
# https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
helloFromLambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/handlers/hello-from-lambda.helloFromLambdaHandler
Runtime: nodejs10.x
MemorySize: 128
Timeout: 60
DeadLetterQueue:
Type: SQS
TargetArn: !GetAtt MyQueue.Arn
Description: A Lambda function that returns a static string.
Policies:
- SQSSendMessagePolicy:
QueueName: !GetAtt MyQueue.QueueName
# Give Lambda basic execution Permission to the helloFromLambda
- AWSLambdaBasicExecutionRole
hello2FromLambdaFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/handlers/hello2-from-lambda.hello2FromLambdaHandler
Runtime: nodejs10.x
MemorySize: 128
Timeout: 60
DeadLetterQueue:
Type: SQS
TargetArn: !GetAtt MyQueue.Arn
Description: A Lambda function 2 that returns a static string.
Policies:
- SQSSendMessagePolicy:
QueueName: !GetAtt MyQueue.QueueName
# Give Lambda basic execution Permission to the helloFromLambda
- AWSLambdaBasicExecutionRole
putEventFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/handlers/put-event.putEventHandler
Runtime: nodejs10.x
MemorySize: 128
Timeout: 60
Description: add one event to the MongoDb Atlas {stage}_events collection.
Events:
Api:
Type: Api
Properties:
Path: /
Method: POST
currenttempincovilha:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/handlers/currenttempincovilha.getEventHandler
Runtime: nodejs10.x
MemorySize: 128
Timeout: 60
Description: get event currenttempincovilha from the {stage}_events MongoDb Atlas collection.
Events:
Api:
Type: Api
Properties:
Path: /currenttempincovilha
Method: GET
avgtempinsfax:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/handlers/avgtempinsfax.getEventHandler
Runtime: nodejs10.x
MemorySize: 128
Timeout: 60
Description: get event avgtempinsfax from the {stage}_events MongoDb Atlas collection..
Events:
Api:
Type: Api
Properties:
Path: /avgtempinsfax
Method: GET
refresh:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/handlers/refresh.refreshHandler
Runtime: nodejs10.x
MemorySize: 128
Timeout: 60
Description: refresh the needed stage_events MongoDb Atlas collection city temperatures.
Events:
Api:
Type: Api
Properties:
Path: /refresh
Method: GET