80 lines
1.9 KiB
YAML
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/**
|