content/hifi-content/DomainContent/production/groupTeleport/api/serverless.yml
2022-02-13 22:49:05 +01:00

80 lines
1.9 KiB
YAML

# serverless.yml
service: group-teleport-api
plugins:
- serverless-dynamodb-local
- serverless-offline
custom:
usersTableName: 'group-teleport-api-users-${self:provider.stage}'
groupsTableName: 'group-teleport-api-groups-${self:provider.stage}'
dynamodb:
start:
migrate: true
provider:
name: aws
runtime: nodejs6.10
stage: ${opt:stage,'dev'}
region: us-east-1
iamRoleStatements:
-
Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- { "Fn::GetAtt": ["UsersDynamoDBTable", "Arn" ] }
- { "Fn::GetAtt": ["GroupsDynamoDBTable", "Arn" ] }
environment:
USERS_TABLE: ${self:custom.usersTableName}
GROUPS_TABLE: ${self:custom.groupsTableName}
functions:
app:
handler: index.handler
events:
- http: ANY /
- http: 'ANY {proxy+}'
resources:
Description: 'HIFI Group teleport API'
Resources:
UsersDynamoDBTable:
Type: 'AWS::DynamoDB::Table'
Properties:
AttributeDefinitions:
-
AttributeName: username
AttributeType: S
KeySchema:
-
AttributeName: username
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:custom.usersTableName}
GroupsDynamoDBTable:
Type: 'AWS::DynamoDB::Table'
Properties:
AttributeDefinitions:
-
AttributeName: groupName
AttributeType: S
KeySchema:
-
AttributeName: groupName
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:custom.groupsTableName}
package:
exclude:
- .idea/**