-
Notifications
You must be signed in to change notification settings - Fork 0
/
template.yml
130 lines (113 loc) · 4.26 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
# 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: >-
# 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'
Environment:
Variables:
CLUSTER_URL: !Ref ClusterUrl
Api:
Cors:
AllowMethods: "'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'"
AllowHeaders: "'*'"
AllowOrigin: "'*'"
Auth:
Authorizers:
PhysiosAuth:
UserPoolArn: "arn:aws:cognito-idp:eu-west-1:562666120389:userpool/eu-west-1_8FIYqRDvq"
Parameters:
AppId:
Type: String
ClusterUrl:
Type: String
Default: mongodb+srv://Javier:<password>@cluster0.crtxs.mongodb.net/clinica ?retryWrites=true&w=majority
# 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:
# Each Lambda function is defined by properties:
# https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
# This is a Lambda function config associated with the source code: get-all-items.js
getAllPatientsFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/bck/handlers/get-patients.getAllPatientsHandler
Runtime: nodejs12.x
MemorySize: 128
Timeout: 60
Description: Get http all patients in DB clinica
Events:
Api:
Type: Api
Properties:
Path: /clinica/getAllPatients
Method: GET
Auth:
Authorizer: PhysiosAuth
updatePatientByIdFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/bck/handlers/update-patient-by-id.updatePatientByIdHandler
Runtime: nodejs12.x
MemorySize: 128
Timeout: 60
Description: Edit http all patients in DB clinica
Events:
Api:
Type: Api
Properties:
Path: /clinica/updatePatientById
Method: POST
Auth:
Authorizer: PhysiosAuth
Environment:
Variables:
CLUSTER_URL: !Ref ClusterUrl
getPatientByIdFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/bck/handlers/get-patients.getPatientByIdHandler
Runtime: nodejs12.x
MemorySize: 128
Timeout: 60
Description: Get http patient by id in DB clinica
Events:
Api:
Type: Api
Properties:
Path: /clinica/getPatientById/{idDocument}
Method: GET
Auth:
Authorizer: PhysiosAuth
addPatientFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./
Handler: src/bck/handlers/add-patients.addPatientHandler
Runtime: nodejs12.x
MemorySize: 128
Timeout: 60
Description: Add patient in DB clinica
Events:
Api:
Type: Api
Properties:
Path: /clinica/addPatient
Method: POST
Auth:
Authorizer: PhysiosAuth